commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r11062 - in gnuradio/trunk/grc: data/platforms/python


From: jblum
Subject: [Commit-gnuradio] r11062 - in gnuradio/trunk/grc: data/platforms/python data/platforms/python/blocks examples examples/simple src/grc_gnuradio/blks2
Date: Tue, 19 May 2009 17:56:09 -0600 (MDT)

Author: jblum
Date: 2009-05-19 17:56:09 -0600 (Tue, 19 May 2009)
New Revision: 11062

Added:
   gnuradio/trunk/grc/data/platforms/python/blocks/blks2_variable_sink_x.xml
   gnuradio/trunk/grc/examples/simple/var_sink_taps.grc
   gnuradio/trunk/grc/src/grc_gnuradio/blks2/variable_sink.py
Removed:
   gnuradio/trunk/grc/data/platforms/python/blocks/variable_sink.xml
Modified:
   gnuradio/trunk/grc/data/platforms/python/block_tree.xml
   gnuradio/trunk/grc/data/platforms/python/blocks/Makefile.am
   gnuradio/trunk/grc/examples/Makefile.am
   gnuradio/trunk/grc/src/grc_gnuradio/blks2/Makefile.am
   gnuradio/trunk/grc/src/grc_gnuradio/blks2/__init__.py
Log:
Re-implemented variable sink so that it can pass vector-aligned samples.
Created backend grc blks2 block to sample the stream and set callback.
Renamed variable sink and moved it into the sinks category.
Added example of variable sink reading taps from a stream and setting them to a 
FIR filter.



Modified: gnuradio/trunk/grc/data/platforms/python/block_tree.xml
===================================================================
--- gnuradio/trunk/grc/data/platforms/python/block_tree.xml     2009-05-19 
23:44:48 UTC (rev 11061)
+++ gnuradio/trunk/grc/data/platforms/python/block_tree.xml     2009-05-19 
23:56:09 UTC (rev 11062)
@@ -23,6 +23,7 @@
        </cat>
        <cat>
                <name>Sinks</name>
+               <block>blks2_variable_sink_x</block>
                <block>gr_vector_sink_x</block>
                <block>gr_null_sink</block>
                <block>gr_file_sink</block>
@@ -263,7 +264,6 @@
                <block>variable_slider</block>
                <block>variable_chooser</block>
                <block>variable_text_box</block>
-               <block>variable_sink</block>
                <block>parameter</block>
        </cat>
        <cat>

Modified: gnuradio/trunk/grc/data/platforms/python/blocks/Makefile.am
===================================================================
--- gnuradio/trunk/grc/data/platforms/python/blocks/Makefile.am 2009-05-19 
23:44:48 UTC (rev 11061)
+++ gnuradio/trunk/grc/data/platforms/python/blocks/Makefile.am 2009-05-19 
23:56:09 UTC (rev 11062)
@@ -53,6 +53,7 @@
        blks2_stream_to_vector_decimator.xml \
        blks2_synthesis_filterbank.xml \
        blks2_valve.xml \
+       blks2_variable_sink_x.xml \
        blks2_wfm_rcv.xml \
        blks2_wfm_rcv_pll.xml \
        blks2_wfm_tx.xml \
@@ -205,7 +206,6 @@
        usrp_simple_source_x.xml \
        variable.xml \
        variable_chooser.xml \
-       variable_sink.xml \
        variable_slider.xml \
        variable_text_box.xml \
        wxgui_constellationsink2.xml \

Copied: 
gnuradio/trunk/grc/data/platforms/python/blocks/blks2_variable_sink_x.xml (from 
rev 11059, gnuradio/trunk/grc/data/platforms/python/blocks/variable_sink.xml)
===================================================================
--- gnuradio/trunk/grc/data/platforms/python/blocks/blks2_variable_sink_x.xml   
                        (rev 0)
+++ gnuradio/trunk/grc/data/platforms/python/blocks/blks2_variable_sink_x.xml   
2009-05-19 23:56:09 UTC (rev 11062)
@@ -0,0 +1,77 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+##Variable Sink: Custom blks2 block
+###################################################
+ -->
+<block>
+       <name>Variable Sink</name>
+       <key>blks2_variable_sink_x</key>
+       <import>from grc_gnuradio import blks2 as grc_blks2</import>
+       <make>grc_blks2.variable_sink_$(type.fcn)(
+       vlen=$vlen,
+       decim=$decim,
+       callback=self.set_$(variable()),
+)</make>
+       <callback>set_decim($decim)</callback>
+       <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>Decimation</name>
+               <key>decim</key>
+               <value>1</value>
+               <type>int</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 one in every decimation samples to the variable.
+
+The variable must be the id of an existing variable block.
+       </doc>
+</block>


Property changes on: 
gnuradio/trunk/grc/data/platforms/python/blocks/blks2_variable_sink_x.xml
___________________________________________________________________
Added: svn:mergeinfo
   + 
/gnuradio/branches/developers/eb/t348/grc/data/platforms/python/blocks/variable_sink.xml:10638-10648
/gnuradio/branches/developers/eb/t364/grc/data/platforms/python/blocks/variable_sink.xml:11016-11017
/gnuradio/branches/developers/eb/t367/grc/data/platforms/python/blocks/variable_sink.xml:11021-11025
/gnuradio/branches/developers/eb/t371/grc/data/platforms/python/blocks/variable_sink.xml:10958-10971
/gnuradio/branches/developers/eb/t378/grc/data/platforms/python/blocks/variable_sink.xml:10683-10688
/gnuradio/branches/developers/jblum/grc/grc/data/platforms/python/blocks/variable_sink.xml:10680-10938
/gnuradio/branches/developers/jblum/gui_guts/grc/data/platforms/python/blocks/variable_sink.xml:10464-10658
/gnuradio/branches/developers/jblum/vlen/grc/data/platforms/python/blocks/variable_sink.xml:10667-10677
/gnuradio/branches/developers/jcorgan/cpphier/grc/data/platforms/python/blocks/variable_sink.xml:10818-10858
/gnuradio/branches/developers/jcorgan/deb/grc/data/platforms/python/blocks/variable_sink.xml:10949-10959,11013-11022
/gnuradio/branches/developers/jcorgan/fw-optimize/grc/data/platforms/python/blocks/variable_sink.xml:10428-10429
/gnuradio/branches/developers/jcorgan/gpio2/grc/data/platforms/python/blocks/variable_sink.xml:10713-10765
/gnuradio/branches/developers/jcorgan/iad2/grc/data/platforms/python/blocks/variable_sink.xml:10771-10887
/gnuradio/branches/developers/jcorgan/t161/grc/data/platforms/python/blocks/variable_sink.xml:10876-10880
/gnuradio/branches/developers/michaelld/am_swig_4/grc/data/platforms/python/blocks/variable_sink.xml:10555-10595
/gnuradio/branches/developers/michaelld/two_mods/grc/data/platforms/python/blocks/variable_sink.xml:10540-10546

Modified: gnuradio/trunk/grc/examples/Makefile.am
===================================================================
--- gnuradio/trunk/grc/examples/Makefile.am     2009-05-19 23:44:48 UTC (rev 
11061)
+++ gnuradio/trunk/grc/examples/Makefile.am     2009-05-19 23:56:09 UTC (rev 
11062)
@@ -30,7 +30,8 @@
 simpledatadir = $(grc_examples_prefix)/simple
 dist_simpledata_DATA = \
        simple/ber_simulation.grc \
-       simple/dpsk_loopback.grc
+       simple/dpsk_loopback.grc \
+       simple/var_sink_taps.grc
 
 trellisdatadir = $(grc_examples_prefix)/trellis
 dist_trellisdata_DATA = \

Added: gnuradio/trunk/grc/examples/simple/var_sink_taps.grc
===================================================================
--- gnuradio/trunk/grc/examples/simple/var_sink_taps.grc                        
        (rev 0)
+++ gnuradio/trunk/grc/examples/simple/var_sink_taps.grc        2009-05-19 
23:56:09 UTC (rev 11062)
@@ -0,0 +1,488 @@
+<?xml version='1.0' encoding='ASCII'?>
+<flow_graph>
+  <timestamp>Tue May 19 16:45:51 2009</timestamp>
+  <block>
+    <key>options</key>
+    <param>
+      <key>id</key>
+      <value>var_sink_taps</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>title</key>
+      <value>Variable Sink + Taps</value>
+    </param>
+    <param>
+      <key>author</key>
+      <value>Example</value>
+    </param>
+    <param>
+      <key>description</key>
+      <value>gnuradio flow graph</value>
+    </param>
+    <param>
+      <key>window_size</key>
+      <value>1280, 1024</value>
+    </param>
+    <param>
+      <key>generate_options</key>
+      <value>wx_gui</value>
+    </param>
+    <param>
+      <key>category</key>
+      <value>Custom</value>
+    </param>
+    <param>
+      <key>realtime_scheduling</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(10, 10)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gr_noise_source_x</key>
+    <param>
+      <key>id</key>
+      <value>gr_noise_source_x_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>complex</value>
+    </param>
+    <param>
+      <key>noise_type</key>
+      <value>gr.GR_GAUSSIAN</value>
+    </param>
+    <param>
+      <key>amp</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>seed</key>
+      <value>42</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(619, 36)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gr_fir_filter_xxx</key>
+    <param>
+      <key>id</key>
+      <value>gr_fir_filter_xxx_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>ccc</value>
+    </param>
+    <param>
+      <key>decim</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>taps</key>
+      <value>dest_taps</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(831, 47)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gr_throttle</key>
+    <param>
+      <key>id</key>
+      <value>gr_throttle_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>complex</value>
+    </param>
+    <param>
+      <key>samples_per_second</key>
+      <value>samp_rate</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(999, 198)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>270</value>
+    </param>
+  </block>
+  <block>
+    <key>wxgui_fftsink2</key>
+    <param>
+      <key>id</key>
+      <value>wxgui_fftsink2_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>complex</value>
+    </param>
+    <param>
+      <key>title</key>
+      <value>FFT Plot</value>
+    </param>
+    <param>
+      <key>samp_rate</key>
+      <value>samp_rate</value>
+    </param>
+    <param>
+      <key>baseband_freq</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>y_per_div</key>
+      <value>10</value>
+    </param>
+    <param>
+      <key>y_divs</key>
+      <value>10</value>
+    </param>
+    <param>
+      <key>ref_level</key>
+      <value>50</value>
+    </param>
+    <param>
+      <key>fft_size</key>
+      <value>1024</value>
+    </param>
+    <param>
+      <key>fft_rate</key>
+      <value>30</value>
+    </param>
+    <param>
+      <key>peak_hold</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>average</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>avg_alpha</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>grid_pos</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(629, 184)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>180</value>
+    </param>
+  </block>
+  <block>
+    <key>import</key>
+    <param>
+      <key>id</key>
+      <value>import_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>import</key>
+      <value>from gnuradio.gr import firdes</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(330, 120)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>variable</key>
+    <param>
+      <key>id</key>
+      <value>dest_taps</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>[0]</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(836, 223)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>variable</key>
+    <param>
+      <key>id</key>
+      <value>samp_rate</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>32000</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(831, 130)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>variable</key>
+    <param>
+      <key>id</key>
+      <value>source_taps</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>firdes.low_pass(1, samp_rate, 4000, 2000)</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(397, 191)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>variable</key>
+    <param>
+      <key>id</key>
+      <value>taps_rate</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>10</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(268, 189)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gr_vector_source_x</key>
+    <param>
+      <key>id</key>
+      <value>gr_vector_source_x_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>complex</value>
+    </param>
+    <param>
+      <key>vector</key>
+      <value>source_taps</value>
+    </param>
+    <param>
+      <key>repeat</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>len(source_taps)</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(205, 33)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>note</key>
+    <param>
+      <key>id</key>
+      <value>note_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>note</key>
+      <value>Pass the FIR taps via a variable sink.</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(14, 141)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gr_throttle</key>
+    <param>
+      <key>id</key>
+      <value>gr_throttle</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>complex</value>
+    </param>
+    <param>
+      <key>samples_per_second</key>
+      <value>taps_rate</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>len(source_taps)</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(440, 41)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>blks2_variable_sink_x</key>
+    <param>
+      <key>id</key>
+      <value>blks2_variable_sink_x_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>complex</value>
+    </param>
+    <param>
+      <key>variable</key>
+      <value>dest_taps</value>
+    </param>
+    <param>
+      <key>decim</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>len(source_taps)</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(305, 283)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>180</value>
+    </param>
+  </block>
+  <connection>
+    <source_block_id>gr_noise_source_x_0</source_block_id>
+    <sink_block_id>gr_fir_filter_xxx_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>gr_fir_filter_xxx_0</source_block_id>
+    <sink_block_id>gr_throttle_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>gr_throttle_0</source_block_id>
+    <sink_block_id>wxgui_fftsink2_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>gr_vector_source_x_0</source_block_id>
+    <sink_block_id>gr_throttle</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>gr_throttle</source_block_id>
+    <sink_block_id>blks2_variable_sink_x_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+</flow_graph>

Modified: gnuradio/trunk/grc/src/grc_gnuradio/blks2/Makefile.am
===================================================================
--- gnuradio/trunk/grc/src/grc_gnuradio/blks2/Makefile.am       2009-05-19 
23:44:48 UTC (rev 11061)
+++ gnuradio/trunk/grc/src/grc_gnuradio/blks2/Makefile.am       2009-05-19 
23:56:09 UTC (rev 11062)
@@ -1,5 +1,5 @@
 #
-# Copyright 2008 Free Software Foundation, Inc.
+# Copyright 2008, 2009 Free Software Foundation, Inc.
 # 
 # This file is part of GNU Radio
 # 
@@ -28,4 +28,5 @@
        error_rate.py \
        packet.py \
        probe.py \
-       selector.py
+       selector.py \
+       variable_sink.py

Modified: gnuradio/trunk/grc/src/grc_gnuradio/blks2/__init__.py
===================================================================
--- gnuradio/trunk/grc/src/grc_gnuradio/blks2/__init__.py       2009-05-19 
23:44:48 UTC (rev 11061)
+++ gnuradio/trunk/grc/src/grc_gnuradio/blks2/__init__.py       2009-05-19 
23:56:09 UTC (rev 11062)
@@ -24,3 +24,4 @@
        packet_demod_b, packet_demod_s, packet_demod_i, packet_demod_f, 
packet_demod_c
 from error_rate import error_rate
 from probe import probe_function, probe_avg_mag_sqrd_c, probe_avg_mag_sqrd_f, 
probe_density_b, probe_mpsk_snr_c
+from variable_sink import variable_sink_b, variable_sink_s, variable_sink_i, 
variable_sink_f, variable_sink_c

Added: gnuradio/trunk/grc/src/grc_gnuradio/blks2/variable_sink.py
===================================================================
--- gnuradio/trunk/grc/src/grc_gnuradio/blks2/variable_sink.py                  
        (rev 0)
+++ gnuradio/trunk/grc/src/grc_gnuradio/blks2/variable_sink.py  2009-05-19 
23:56:09 UTC (rev 11062)
@@ -0,0 +1,64 @@
+#
+# Copyright 2009 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 threading
+import numpy
+
+class _variable_sink_base(gr.hier_block2, threading.Thread):
+       """
+       The thread polls the message queue for values and writes to a callback.
+       """
+
+       def __init__(self, vlen, decim, callback):
+               self._vlen = vlen
+               self._callback = callback
+               self._item_size = self._size*self._vlen
+               #init hier block
+               gr.hier_block2.__init__(
+                       self, 'variable_sink',
+                       gr.io_signature(1, 1, self._item_size),
+                       gr.io_signature(0, 0, 0),
+               )
+               #create blocks
+               self._decimator = gr.keep_one_in_n(self._item_size, decim)
+               self._msgq = gr.msg_queue(2)
+               message_sink = gr.message_sink(self._item_size, self._msgq, 
False)
+               #connect
+               self.connect(self, self._decimator, message_sink)
+               #setup thread
+               threading.Thread.__init__(self)
+               self.setDaemon(True)
+               self.start() 
+
+       def set_decim(self, decim): self._decimator.set_n(decim)
+
+       def run(self):
+               while True: #truncate to item size, convert to array, callback
+                       msg = 
self._msgq.delete_head().to_string()[-self._item_size:]
+                       arr = map(self._cast, numpy.fromstring(msg, 
self._numpy))
+                       self._callback(self._vlen > 1 and arr or arr[0])
+
+class variable_sink_b(_variable_sink_base): _numpy, _size, _cast = numpy.int8, 
gr.sizeof_char, int
+class variable_sink_s(_variable_sink_base): _numpy, _size, _cast = 
numpy.int16, gr.sizeof_short, int
+class variable_sink_i(_variable_sink_base): _numpy, _size, _cast = 
numpy.int32, gr.sizeof_int, int
+class variable_sink_f(_variable_sink_base): _numpy, _size, _cast = 
numpy.float32, gr.sizeof_float, float
+class variable_sink_c(_variable_sink_base): _numpy, _size, _cast = 
numpy.complex64, gr.sizeof_gr_complex, complex





reply via email to

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