summaryrefslogtreecommitdiff
path: root/gr-uhd
diff options
context:
space:
mode:
Diffstat (limited to 'gr-uhd')
-rw-r--r--gr-uhd/doc/uhd.dox56
-rw-r--r--gr-uhd/examples/grc/uhd_const_wave.grc468
-rw-r--r--gr-uhd/examples/grc/uhd_dpsk_mod.grc2173
-rw-r--r--gr-uhd/examples/grc/uhd_fft.grc1433
-rw-r--r--gr-uhd/examples/grc/uhd_msg_tune.grc1132
-rw-r--r--gr-uhd/examples/grc/uhd_rx_dpsk.grc907
-rw-r--r--gr-uhd/examples/grc/uhd_two_tone_loopback.grc940
-rw-r--r--gr-uhd/examples/grc/uhd_tx_dpsk.grc562
-rw-r--r--gr-uhd/examples/grc/uhd_wbfm_receive.grc784
-rwxr-xr-xgr-uhd/examples/python/freq_hopping.py6
-rw-r--r--gr-uhd/grc/gen_uhd_usrp_blocks.py5
-rw-r--r--gr-uhd/include/gnuradio/uhd/usrp_sink.h46
-rw-r--r--gr-uhd/include/gnuradio/uhd/usrp_source.h42
-rw-r--r--gr-uhd/lib/usrp_common.h198
-rw-r--r--gr-uhd/lib/usrp_sink_impl.cc233
-rw-r--r--gr-uhd/lib/usrp_sink_impl.h26
-rw-r--r--gr-uhd/lib/usrp_source_impl.cc94
-rw-r--r--gr-uhd/lib/usrp_source_impl.h31
18 files changed, 6841 insertions, 2295 deletions
diff --git a/gr-uhd/doc/uhd.dox b/gr-uhd/doc/uhd.dox
index 538c98c438..7a71b240b4 100644
--- a/gr-uhd/doc/uhd.dox
+++ b/gr-uhd/doc/uhd.dox
@@ -1,4 +1,3 @@
-// vim: set ft=doxygen:
/*! \page page_uhd UHD Interface
\section Introduction
@@ -22,15 +21,61 @@ by using:
\endcode
-\section External Documentation
+\section uhd_external_docs External Documentation
-Ettus Research keeps the comprehensive documentation to the underlying UHD driver, which can be found:
+Ettus Research maintains the comprehensive documentation to the underlying UHD driver, which can be found at:
- http://files.ettus.com/uhd_docs/manual/html/
+http://files.ettus.com/uhd_docs/manual/html/
The UHD Doxygen page is located at:
- http://files.ettus.com/uhd_docs/doxygen/html/index.html
+http://files.ettus.com/uhd_docs/doxygen/html/index.html
+
+
+\section uhd_command_syntax Command Syntax
+
+The UHD sink and source can be controlled by a message port. These message ports
+take commands, which are PMTs formatted as such:
+
+ (command, value, [channel])
+
+A command PMT is either a pair or a tuple. If it's a tuple, it must have either 2 or 3 elements.
+Any other type of PMT will throw an error.
+
+The `command` part is a string, which defines the command. `value` is a PMT whose format depends
+on the command issued. Finally, `channel` is an integer PMT value that specifies which channel
+this command shall be specified on. If this value is omitted, then it either applies this command
+to all channels or channel zero, depending on which command is used.
+
+Example:
+\code{.cpp}
+pmt::pmt_t command = pmt::cons( // We make a pair, but pmt::make_tuple() is also valid!
+ pmt::mp("freq"), // Use the 'freq' command, which sets the frequency
+ pmt::mp(1.1e9) // Set the frequency to 1.1 GHz
+);
+\endcode
+
+This PMT would set the frequency to 1.1 GHz on all channels. We make use of the pmt::mp() function
+which automatically sets the PMT types. Assume we only want to set the frequency on channel 1
+(i.e. the second channel). In this case, we must construct a tuple:
+\code{.cpp}
+pmt::pmt_t command = pmt::make_tuple(
+ pmt::mp("freq"), // Use the 'freq' command, which sets the frequency
+ pmt::mp(1.1e9) // Set the frequency to 1.1 GHz
+ pmt::mp(1) // Select channel 1
+);
+\endcode
+
+
+\subsection uhd_command_syntax_cmds Common commands
+
+The following commands are understood by both UHD Source and Sink:
+
+Command name | Value Type | Description
+-------------|------------|-------------------------------------------------------------
+`freq` | double | Sets the Tx or Rx frequency. Defaults to all channels.
+`lo_offset` | double | Sets an LO offset. Defaults to all channels.
+`gain` | double | Sets the Tx or Rx gain (in dB). Defaults to all channels.
\section Configuring a UHD object
@@ -100,3 +145,4 @@ resampler to take care of the difference.
\endcode
*/
+// vim: set ft=doxygen:
diff --git a/gr-uhd/examples/grc/uhd_const_wave.grc b/gr-uhd/examples/grc/uhd_const_wave.grc
index 46596109de..dfbbea6e88 100644
--- a/gr-uhd/examples/grc/uhd_const_wave.grc
+++ b/gr-uhd/examples/grc/uhd_const_wave.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Mon Mar 18 11:04:05 2013</timestamp>
+ <timestamp>Sat Jul 12 14:52:24 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -29,7 +29,7 @@
</param>
<param>
<key>generate_options</key>
- <value>wx_gui</value>
+ <value>qt_gui</value>
</param>
<param>
<key>category</key>
@@ -52,208 +52,12 @@
<value></value>
</param>
<param>
- <key>_coordinate</key>
- <value>(10, 10)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable_slider</key>
- <param>
- <key>id</key>
- <value>ampl</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>label</key>
- <value>Amplitude</value>
- </param>
- <param>
- <key>value</key>
- <value>.1</value>
- </param>
- <param>
- <key>min</key>
- <value>0</value>
- </param>
- <param>
- <key>max</key>
- <value>1</value>
- </param>
- <param>
- <key>num_steps</key>
- <value>100</value>
- </param>
- <param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
- </param>
- <param>
- <key>converver</key>
- <value>float_converter</value>
- </param>
- <param>
- <key>grid_pos</key>
- <value></value>
- </param>
- <param>
- <key>notebook</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(174, 313)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable_slider</key>
- <param>
- <key>id</key>
- <value>tun_gain</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>label</key>
- <value>UHD Gain</value>
- </param>
- <param>
- <key>value</key>
- <value>gain</value>
- </param>
- <param>
- <key>min</key>
- <value>0</value>
- </param>
- <param>
- <key>max</key>
- <value>20</value>
- </param>
- <param>
- <key>num_steps</key>
- <value>100</value>
- </param>
- <param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
- </param>
- <param>
- <key>converver</key>
- <value>float_converter</value>
- </param>
- <param>
- <key>grid_pos</key>
- <value></value>
- </param>
- <param>
- <key>notebook</key>
+ <key>alias</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(318, 314)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable_slider</key>
- <param>
- <key>id</key>
- <value>tun_freq</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>label</key>
- <value>UHD Freq (Hz)</value>
- </param>
- <param>
- <key>value</key>
- <value>freq</value>
- </param>
- <param>
- <key>min</key>
- <value>2.4e9</value>
- </param>
- <param>
- <key>max</key>
- <value>2.5e9</value>
- </param>
- <param>
- <key>num_steps</key>
- <value>100</value>
- </param>
- <param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
- </param>
- <param>
- <key>converver</key>
- <value>float_converter</value>
- </param>
- <param>
- <key>grid_pos</key>
- <value></value>
- </param>
- <param>
- <key>notebook</key>
- <value></value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(24, 315)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>parameter</key>
- <param>
- <key>id</key>
- <value>address</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>label</key>
- <value>IP Address</value>
- </param>
- <param>
- <key>value</key>
- <value>addr=192.168.11.2</value>
- </param>
- <param>
- <key>type</key>
- <value>string</value>
- </param>
- <param>
- <key>short_id</key>
- <value>a</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(188, 12)</value>
+ <value>(10, 9)</value>
</param>
<param>
<key>_rotation</key>
@@ -287,6 +91,10 @@
<value>s</value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(342, 14)</value>
</param>
@@ -322,6 +130,10 @@
<value>f</value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(468, 14)</value>
</param>
@@ -357,6 +169,10 @@
<value>g</value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(616, 13)</value>
</param>
@@ -388,10 +204,18 @@
<value></value>
</param>
<param>
+ <key>stream_chans</key>
+ <value>[]</value>
+ </param>
+ <param>
<key>dev_addr</key>
<value>address</value>
</param>
<param>
+ <key>dev_args</key>
+ <value>""</value>
+ </param>
+ <param>
<key>sync</key>
<value></value>
</param>
@@ -1020,6 +844,18 @@
<value>0</value>
</param>
<param>
+ <key>len_tag_name</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(308, 169)</value>
</param>
@@ -1047,6 +883,22 @@
<value>ampl</value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
<value>(74, 193)</value>
</param>
@@ -1055,6 +907,222 @@
<value>0</value>
</param>
</block>
+ <block>
+ <key>variable_qtgui_range</key>
+ <param>
+ <key>id</key>
+ <value>ampl</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>Amplitude</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>0.1</value>
+ </param>
+ <param>
+ <key>start</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>stop</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>step</key>
+ <value>0.01</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(170, 314)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_qtgui_range</key>
+ <param>
+ <key>id</key>
+ <value>tun_freq</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>UHD Freq (Hz)</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>2.45e9</value>
+ </param>
+ <param>
+ <key>start</key>
+ <value>2.4e9</value>
+ </param>
+ <param>
+ <key>stop</key>
+ <value>2.5e9</value>
+ </param>
+ <param>
+ <key>step</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(31, 317)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_qtgui_range</key>
+ <param>
+ <key>id</key>
+ <value>tun_gain</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>UHD Gain</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>start</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>stop</key>
+ <value>20</value>
+ </param>
+ <param>
+ <key>step</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(302, 307)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>parameter</key>
+ <param>
+ <key>id</key>
+ <value>address</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>IP Address</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>addr=192.168.10.2</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>string</value>
+ </param>
+ <param>
+ <key>short_id</key>
+ <value>a</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(188, 12)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
<connection>
<source_block_id>analog_const_source_x_0</source_block_id>
<sink_block_id>uhd_usrp_sink_0</sink_block_id>
diff --git a/gr-uhd/examples/grc/uhd_dpsk_mod.grc b/gr-uhd/examples/grc/uhd_dpsk_mod.grc
index 1e5bfd5ddb..be6ec55b01 100644
--- a/gr-uhd/examples/grc/uhd_dpsk_mod.grc
+++ b/gr-uhd/examples/grc/uhd_dpsk_mod.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Sat Oct 8 14:44:48 2011</timestamp>
+ <timestamp>Sat Jul 12 15:58:18 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -29,7 +29,7 @@
</param>
<param>
<key>generate_options</key>
- <value>wx_gui</value>
+ <value>qt_gui</value>
</param>
<param>
<key>category</key>
@@ -44,12 +44,20 @@
<value>True</value>
</param>
<param>
+ <key>max_nouts</key>
+ <value>0</value>
+ </param>
+ <param>
<key>realtime_scheduling</key>
<value></value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(10, 10)</value>
+ <value>(-5, -2)</value>
</param>
<param>
<key>_rotation</key>
@@ -71,8 +79,12 @@
<value>8</value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(33, 280)</value>
+ <value>(743, 124)</value>
</param>
<param>
<key>_rotation</key>
@@ -80,86 +92,92 @@
</param>
</block>
<block>
- <key>wxgui_fftsink2</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>wxgui_fftsink2_0</value>
+ <value>rolloff</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
+ <key>value</key>
+ <value>.35</value>
</param>
<param>
- <key>title</key>
- <value>FFT Plot</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>_coordinate</key>
+ <value>(566, 548)</value>
</param>
<param>
- <key>baseband_freq</key>
- <value>tun_freq</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable</key>
<param>
- <key>y_per_div</key>
- <value>10</value>
+ <key>id</key>
+ <value>nfilts</value>
</param>
<param>
- <key>y_divs</key>
- <value>10</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>ref_level</key>
- <value>10</value>
+ <key>value</key>
+ <value>32</value>
</param>
<param>
- <key>ref_scale</key>
- <value>2.0</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>fft_size</key>
- <value>1024</value>
+ <key>_coordinate</key>
+ <value>(653, 548)</value>
</param>
<param>
- <key>fft_rate</key>
- <value>30</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>parameter</key>
<param>
- <key>peak_hold</key>
- <value>False</value>
+ <key>id</key>
+ <value>tx_gain</value>
</param>
<param>
- <key>average</key>
- <value>False</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>avg_alpha</key>
- <value>0</value>
+ <key>label</key>
+ <value>Default TX Gain</value>
</param>
<param>
- <key>win</key>
- <value>None</value>
+ <key>value</key>
+ <value>0</value>
</param>
<param>
- <key>win_size</key>
- <value></value>
+ <key>type</key>
+ <value>eng_float</value>
</param>
<param>
- <key>grid_pos</key>
+ <key>short_id</key>
<value></value>
</param>
<param>
- <key>notebook</key>
+ <key>alias</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(697, 248)</value>
+ <value>(968, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -167,74 +185,77 @@
</param>
</block>
<block>
- <key>wxgui_scopesink2</key>
+ <key>parameter</key>
<param>
<key>id</key>
- <value>wxgui_scopesink2_0</value>
+ <value>freq</value>
</param>
<param>
<key>_enabled</key>
- <value>False</value>
+ <value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
+ <key>label</key>
+ <value>Default Frequency</value>
</param>
<param>
- <key>title</key>
- <value>Scope Plot</value>
+ <key>value</key>
+ <value>2.45e9</value>
</param>
<param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>type</key>
+ <value>eng_float</value>
</param>
<param>
- <key>v_scale</key>
- <value>0</value>
+ <key>short_id</key>
+ <value>f</value>
</param>
<param>
- <key>v_offset</key>
- <value>0</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>t_scale</key>
- <value>1e-6</value>
+ <key>_coordinate</key>
+ <value>(634, 0)</value>
</param>
<param>
- <key>ac_couple</key>
- <value>False</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>parameter</key>
<param>
- <key>xy_mode</key>
- <value>True</value>
+ <key>id</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>num_inputs</key>
- <value>1</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>win_size</key>
- <value></value>
+ <key>label</key>
+ <value>Sample Rate</value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>value</key>
+ <value>1e6</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>type</key>
+ <value>eng_float</value>
</param>
<param>
- <key>trig_mode</key>
- <value>wxgui.TRIG_MODE_AUTO</value>
+ <key>short_id</key>
+ <value>s</value>
</param>
<param>
- <key>y_axis_label</key>
- <value>Counts</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(469, 355)</value>
+ <value>(508, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -242,38 +263,38 @@
</param>
</block>
<block>
- <key>analog_random_source_x</key>
+ <key>parameter</key>
<param>
<key>id</key>
- <value>analog_random_source_x_0</value>
+ <value>address0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>byte</value>
+ <key>label</key>
+ <value>IP Address, Dev 0</value>
</param>
<param>
- <key>min</key>
- <value>0</value>
+ <key>value</key>
+ <value>addr=192.168.10.2</value>
</param>
<param>
- <key>max</key>
- <value>256</value>
+ <key>type</key>
+ <value>string</value>
</param>
<param>
- <key>num_samps</key>
- <value>1000</value>
+ <key>short_id</key>
+ <value></value>
</param>
<param>
- <key>repeat</key>
- <value>True</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(245, 139)</value>
+ <value>(162, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -281,30 +302,38 @@
</param>
</block>
<block>
- <key>blocks_multiply_const_vxx</key>
+ <key>parameter</key>
<param>
<key>id</key>
- <value>blocks_multiply_const_vxx_0</value>
+ <value>freq_offset</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
+ <key>label</key>
+ <value>Rx Frequency Offset</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>0</value>
+ </param>
+ <param>
<key>type</key>
- <value>complex</value>
+ <value>eng_float</value>
</param>
<param>
- <key>const</key>
- <value>ampl</value>
+ <key>short_id</key>
+ <value>o</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(647, 163)</value>
+ <value>(789, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -312,10 +341,10 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>parameter</key>
<param>
<key>id</key>
- <value>tun_rx_gain</value>
+ <value>rx_gain</value>
</param>
<param>
<key>_enabled</key>
@@ -323,43 +352,27 @@
</param>
<param>
<key>label</key>
- <value>UHD RX Gain</value>
+ <value>Default RX Gain</value>
</param>
<param>
<key>value</key>
- <value>rx_gain</value>
- </param>
- <param>
- <key>min</key>
<value>0</value>
</param>
<param>
- <key>max</key>
- <value>20</value>
- </param>
- <param>
- <key>num_steps</key>
- <value>100</value>
- </param>
- <param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
- </param>
- <param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>type</key>
+ <value>eng_float</value>
</param>
<param>
- <key>grid_pos</key>
+ <key>short_id</key>
<value></value>
</param>
<param>
- <key>notebook</key>
+ <key>alias</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(477, 509)</value>
+ <value>(1102, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -367,54 +380,73 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>import</key>
<param>
<key>id</key>
- <value>rx_freq_off</value>
+ <value>import_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>RX Freq Offset (Hz)</value>
+ <key>import</key>
+ <value>from gnuradio import digital</value>
</param>
<param>
- <key>value</key>
- <value>freq_offset</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>min</key>
- <value>-50e3</value>
+ <key>_coordinate</key>
+ <value>(169, 93)</value>
</param>
<param>
- <key>max</key>
- <value>+50e3</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>blocks_multiply_const_vxx</key>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>id</key>
+ <value>blocks_multiply_const_vxx_0</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>grid_pos</key>
+ <key>const</key>
+ <value>ampl</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>notebook</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(190, 507)</value>
+ <value>(396, 161)</value>
</param>
<param>
<key>_rotation</key>
@@ -422,10 +454,10 @@
</param>
</block>
<block>
- <key>parameter</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>rx_gain</value>
+ <value>ampl</value>
</param>
<param>
<key>_enabled</key>
@@ -433,23 +465,47 @@
</param>
<param>
<key>label</key>
- <value>Default RX Gain</value>
+ <value>Amplitude</value>
</param>
<param>
<key>value</key>
+ <value>0.1</value>
+ </param>
+ <param>
+ <key>start</key>
<value>0</value>
</param>
<param>
- <key>type</key>
- <value>eng_float</value>
+ <key>stop</key>
+ <value>1</value>
</param>
<param>
- <key>short_id</key>
+ <key>step</key>
+ <value>0.01</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(1137, 8)</value>
+ <value>(916, 115)</value>
</param>
<param>
<key>_rotation</key>
@@ -460,7 +516,7 @@
<key>parameter</key>
<param>
<key>id</key>
- <value>freq_offset</value>
+ <value>address1</value>
</param>
<param>
<key>_enabled</key>
@@ -468,23 +524,27 @@
</param>
<param>
<key>label</key>
- <value>Rx Frequency Offset</value>
+ <value>IP Address, Dev 1</value>
</param>
<param>
<key>value</key>
- <value>0</value>
+ <value>addr=192.168.10.2</value>
</param>
<param>
<key>type</key>
- <value>eng_float</value>
+ <value>string</value>
</param>
<param>
<key>short_id</key>
- <value>o</value>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(824, 8)</value>
+ <value>(322, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -492,10 +552,10 @@
</param>
</block>
<block>
- <key>uhd_usrp_source</key>
+ <key>uhd_usrp_sink</key>
<param>
<key>id</key>
- <value>uhd_usrp_source_0</value>
+ <value>uhd_usrp_sink_0</value>
</param>
<param>
<key>_enabled</key>
@@ -503,11 +563,27 @@
</param>
<param>
<key>type</key>
- <value>complex</value>
+ <value>fc32</value>
+ </param>
+ <param>
+ <key>otw</key>
+ <value></value>
+ </param>
+ <param>
+ <key>stream_args</key>
+ <value></value>
+ </param>
+ <param>
+ <key>stream_chans</key>
+ <value>[]</value>
</param>
<param>
<key>dev_addr</key>
- <value>address1</value>
+ <value>address0</value>
+ </param>
+ <param>
+ <key>dev_args</key>
+ <value>""</value>
</param>
<param>
<key>sync</key>
@@ -522,15 +598,23 @@
<value>1</value>
</param>
<param>
- <key>ref_source0</key>
+ <key>clock_source0</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source0</key>
<value></value>
</param>
<param>
<key>sd_spec0</key>
+ <value>B:0</value>
+ </param>
+ <param>
+ <key>clock_source1</key>
<value></value>
</param>
<param>
- <key>ref_source1</key>
+ <key>time_source1</key>
<value></value>
</param>
<param>
@@ -538,7 +622,11 @@
<value></value>
</param>
<param>
- <key>ref_source2</key>
+ <key>clock_source2</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source2</key>
<value></value>
</param>
<param>
@@ -546,7 +634,11 @@
<value></value>
</param>
<param>
- <key>ref_source3</key>
+ <key>clock_source3</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source3</key>
<value></value>
</param>
<param>
@@ -554,7 +646,11 @@
<value></value>
</param>
<param>
- <key>ref_source4</key>
+ <key>clock_source4</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source4</key>
<value></value>
</param>
<param>
@@ -562,7 +658,11 @@
<value></value>
</param>
<param>
- <key>ref_source5</key>
+ <key>clock_source5</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source5</key>
<value></value>
</param>
<param>
@@ -570,7 +670,11 @@
<value></value>
</param>
<param>
- <key>ref_source6</key>
+ <key>clock_source6</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source6</key>
<value></value>
</param>
<param>
@@ -578,7 +682,11 @@
<value></value>
</param>
<param>
- <key>ref_source7</key>
+ <key>clock_source7</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source7</key>
<value></value>
</param>
<param>
@@ -595,7 +703,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>tun_freq+rx_freq_off</value>
+ <value>tun_freq</value>
</param>
<param>
<key>gain0</key>
@@ -1106,8 +1214,20 @@
<value>0</value>
</param>
<param>
+ <key>len_tag_name</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(216, 288)</value>
+ <value>(576, 131)</value>
</param>
<param>
<key>_rotation</key>
@@ -1115,187 +1235,341 @@
</param>
</block>
<block>
- <key>wxgui_constellationsink2</key>
+ <key>qtgui_const_sink_x</key>
<param>
<key>id</key>
- <value>wxgui_constellationsink2_0</value>
+ <value>qtgui_const_sink_x_0</value>
</param>
<param>
<key>_enabled</key>
- <value>True</value>
+ <value>False</value>
</param>
<param>
- <key>title</key>
- <value>Constellation Plot</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>name</key>
+ <value>""</value>
</param>
<param>
- <key>frame_rate</key>
- <value>5</value>
+ <key>size</key>
+ <value>1024</value>
</param>
<param>
- <key>const_size</key>
- <value>2048</value>
+ <key>autoscale</key>
+ <value>False</value>
</param>
<param>
- <key>M</key>
- <value>4</value>
+ <key>ymin</key>
+ <value>-2</value>
</param>
<param>
- <key>theta</key>
+ <key>ymax</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>xmin</key>
+ <value>-2</value>
+ </param>
+ <param>
+ <key>xmax</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>update_time</key>
+ <value>0.10</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>tr_mode</key>
+ <value>qtgui.TRIG_MODE_FREE</value>
+ </param>
+ <param>
+ <key>tr_slope</key>
+ <value>qtgui.TRIG_SLOPE_POS</value>
+ </param>
+ <param>
+ <key>tr_level</key>
+ <value>0.0</value>
+ </param>
+ <param>
+ <key>tr_chan</key>
<value>0</value>
</param>
<param>
- <key>loop_bw</key>
- <value>6.28/100.0</value>
+ <key>tr_tag</key>
+ <value>""</value>
+ </param>
+ <param>
+ <key>label1</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color1</key>
+ <value>"blue"</value>
+ </param>
+ <param>
+ <key>style1</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>marker1</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>alpha1</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label2</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color2</key>
+ <value>"red"</value>
+ </param>
+ <param>
+ <key>style2</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>marker2</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>alpha2</key>
+ <value>1.0</value>
</param>
<param>
- <key>fmax</key>
- <value>0.06</value>
+ <key>label3</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width3</key>
+ <value>1</value>
</param>
<param>
- <key>mu</key>
- <value>0.5</value>
+ <key>color3</key>
+ <value>"red"</value>
</param>
<param>
- <key>gain_mu</key>
- <value>0.005</value>
+ <key>style3</key>
+ <value>0</value>
</param>
<param>
- <key>symbol_rate</key>
- <value>samp_rate/samps_per_sym</value>
+ <key>marker3</key>
+ <value>0</value>
</param>
<param>
- <key>omega_limit</key>
- <value>0.005</value>
+ <key>alpha3</key>
+ <value>1.0</value>
</param>
<param>
- <key>win_size</key>
+ <key>label4</key>
<value></value>
</param>
<param>
- <key>grid_pos</key>
+ <key>width4</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color4</key>
+ <value>"red"</value>
+ </param>
+ <param>
+ <key>style4</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>marker4</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>alpha4</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label5</key>
<value></value>
</param>
<param>
- <key>notebook</key>
+ <key>width5</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color5</key>
+ <value>"red"</value>
+ </param>
+ <param>
+ <key>style5</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>marker5</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>alpha5</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label6</key>
<value></value>
</param>
<param>
- <key>_coordinate</key>
- <value>(862, 336)</value>
+ <key>width6</key>
+ <value>1</value>
</param>
<param>
- <key>_rotation</key>
+ <key>color6</key>
+ <value>"red"</value>
+ </param>
+ <param>
+ <key>style6</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>digital_dxpsk_mod</key>
<param>
- <key>id</key>
- <value>digital_dxpsk_mod_0</value>
+ <key>marker6</key>
+ <value>0</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>alpha6</key>
+ <value>1.0</value>
</param>
<param>
- <key>type</key>
- <value>dqpsk</value>
+ <key>label7</key>
+ <value></value>
</param>
<param>
- <key>samples_per_symbol</key>
- <value>samps_per_sym</value>
+ <key>width7</key>
+ <value>1</value>
</param>
<param>
- <key>excess_bw</key>
- <value>0.35</value>
+ <key>color7</key>
+ <value>"red"</value>
</param>
<param>
- <key>gray_coded</key>
- <value>True</value>
+ <key>style7</key>
+ <value>0</value>
</param>
<param>
- <key>verbose</key>
- <value>False</value>
+ <key>marker7</key>
+ <value>0</value>
</param>
<param>
- <key>log</key>
- <value>False</value>
+ <key>alpha7</key>
+ <value>1.0</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(426, 139)</value>
+ <key>label8</key>
+ <value></value>
</param>
<param>
- <key>_rotation</key>
+ <key>width8</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color8</key>
+ <value>"red"</value>
+ </param>
+ <param>
+ <key>style8</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>variable_slider</key>
<param>
- <key>id</key>
- <value>ampl</value>
+ <key>marker8</key>
+ <value>0</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>alpha8</key>
+ <value>1.0</value>
</param>
<param>
- <key>label</key>
- <value>Amplitude</value>
+ <key>label9</key>
+ <value></value>
</param>
<param>
- <key>value</key>
- <value>.1</value>
+ <key>width9</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color9</key>
+ <value>"red"</value>
+ </param>
+ <param>
+ <key>style9</key>
+ <value>0</value>
</param>
<param>
- <key>min</key>
+ <key>marker9</key>
<value>0</value>
</param>
<param>
- <key>max</key>
+ <key>alpha9</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label10</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width10</key>
<value>1</value>
</param>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>color10</key>
+ <value>"red"</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>style10</key>
+ <value>0</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>marker10</key>
+ <value>0</value>
</param>
<param>
- <key>grid_pos</key>
+ <key>alpha10</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>notebook</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(33, 353)</value>
+ <value>(1, 367)</value>
</param>
<param>
<key>_rotation</key>
- <value>0</value>
+ <value>180</value>
</param>
</block>
<block>
- <key>uhd_usrp_sink</key>
+ <key>uhd_usrp_source</key>
<param>
<key>id</key>
- <value>uhd_usrp_sink_0</value>
+ <value>uhd_usrp_source_0</value>
</param>
<param>
<key>_enabled</key>
@@ -1303,11 +1577,27 @@
</param>
<param>
<key>type</key>
- <value>complex</value>
+ <value>fc32</value>
+ </param>
+ <param>
+ <key>otw</key>
+ <value></value>
+ </param>
+ <param>
+ <key>stream_args</key>
+ <value></value>
+ </param>
+ <param>
+ <key>stream_chans</key>
+ <value>[]</value>
</param>
<param>
<key>dev_addr</key>
- <value>address0</value>
+ <value>address1</value>
+ </param>
+ <param>
+ <key>dev_args</key>
+ <value>""</value>
</param>
<param>
<key>sync</key>
@@ -1322,15 +1612,23 @@
<value>1</value>
</param>
<param>
- <key>ref_source0</key>
+ <key>clock_source0</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source0</key>
<value></value>
</param>
<param>
<key>sd_spec0</key>
+ <value>A:0</value>
+ </param>
+ <param>
+ <key>clock_source1</key>
<value></value>
</param>
<param>
- <key>ref_source1</key>
+ <key>time_source1</key>
<value></value>
</param>
<param>
@@ -1338,7 +1636,11 @@
<value></value>
</param>
<param>
- <key>ref_source2</key>
+ <key>clock_source2</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source2</key>
<value></value>
</param>
<param>
@@ -1346,7 +1648,11 @@
<value></value>
</param>
<param>
- <key>ref_source3</key>
+ <key>clock_source3</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source3</key>
<value></value>
</param>
<param>
@@ -1354,7 +1660,11 @@
<value></value>
</param>
<param>
- <key>ref_source4</key>
+ <key>clock_source4</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source4</key>
<value></value>
</param>
<param>
@@ -1362,7 +1672,11 @@
<value></value>
</param>
<param>
- <key>ref_source5</key>
+ <key>clock_source5</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source5</key>
<value></value>
</param>
<param>
@@ -1370,7 +1684,11 @@
<value></value>
</param>
<param>
- <key>ref_source6</key>
+ <key>clock_source6</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source6</key>
<value></value>
</param>
<param>
@@ -1378,7 +1696,11 @@
<value></value>
</param>
<param>
- <key>ref_source7</key>
+ <key>clock_source7</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source7</key>
<value></value>
</param>
<param>
@@ -1395,7 +1717,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>tun_freq</value>
+ <value>tun_freq+rx_freq_off</value>
</param>
<param>
<key>gain0</key>
@@ -1906,8 +2228,24 @@
<value>0</value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(838, 139)</value>
+ <value>(-1, 242)</value>
</param>
<param>
<key>_rotation</key>
@@ -1915,54 +2253,113 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>digital_dxpsk_mod</key>
<param>
<key>id</key>
- <value>tun_tx_gain</value>
+ <value>digital_dxpsk_mod_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>UHD TX Gain</value>
+ <key>type</key>
+ <value>dqpsk</value>
</param>
<param>
- <key>value</key>
- <value>tx_gain</value>
+ <key>samples_per_symbol</key>
+ <value>samps_per_sym</value>
+ </param>
+ <param>
+ <key>excess_bw</key>
+ <value>0.35</value>
</param>
<param>
- <key>min</key>
+ <key>mod_code</key>
+ <value>"gray"</value>
+ </param>
+ <param>
+ <key>verbose</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>log</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(204, 138)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>blocks_vector_source_x</key>
<param>
- <key>max</key>
- <value>20</value>
+ <key>id</key>
+ <value>blocks_vector_source_x_0</value>
</param>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>vector</key>
+ <value>range(256)</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>tags</key>
+ <value>[]</value>
</param>
<param>
- <key>grid_pos</key>
+ <key>repeat</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>notebook</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(351, 508)</value>
+ <value>(6, 142)</value>
</param>
<param>
<key>_rotation</key>
@@ -1970,10 +2367,345 @@
</param>
</block>
<block>
- <key>parameter</key>
+ <key>qtgui_time_sink_x</key>
<param>
<key>id</key>
- <value>address0</value>
+ <value>qtgui_time_sink_x_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>name</key>
+ <value>Rx Time Signal</value>
+ </param>
+ <param>
+ <key>size</key>
+ <value>1024</value>
+ </param>
+ <param>
+ <key>srate</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>autoscale</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>ymin</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>ymax</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>update_time</key>
+ <value>0.10</value>
+ </param>
+ <param>
+ <key>entags</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>tr_mode</key>
+ <value>qtgui.TRIG_MODE_FREE</value>
+ </param>
+ <param>
+ <key>tr_slope</key>
+ <value>qtgui.TRIG_SLOPE_POS</value>
+ </param>
+ <param>
+ <key>tr_level</key>
+ <value>0.0</value>
+ </param>
+ <param>
+ <key>tr_delay</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>tr_chan</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>tr_tag</key>
+ <value>""</value>
+ </param>
+ <param>
+ <key>label1</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color1</key>
+ <value>"blue"</value>
+ </param>
+ <param>
+ <key>style1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker1</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha1</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label2</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color2</key>
+ <value>"red"</value>
+ </param>
+ <param>
+ <key>style2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker2</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha2</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label3</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width3</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color3</key>
+ <value>"green"</value>
+ </param>
+ <param>
+ <key>style3</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker3</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha3</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label4</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width4</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color4</key>
+ <value>"black"</value>
+ </param>
+ <param>
+ <key>style4</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker4</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha4</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label5</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width5</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color5</key>
+ <value>"cyan"</value>
+ </param>
+ <param>
+ <key>style5</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker5</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha5</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label6</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width6</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color6</key>
+ <value>"magenta"</value>
+ </param>
+ <param>
+ <key>style6</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker6</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha6</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label7</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width7</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color7</key>
+ <value>"yellow"</value>
+ </param>
+ <param>
+ <key>style7</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker7</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha7</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label8</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width8</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color8</key>
+ <value>"dark red"</value>
+ </param>
+ <param>
+ <key>style8</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker8</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha8</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label9</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width9</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color9</key>
+ <value>"dark green"</value>
+ </param>
+ <param>
+ <key>style9</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker9</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha9</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label10</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width10</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color10</key>
+ <value>"blue"</value>
+ </param>
+ <param>
+ <key>style10</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker10</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha10</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(294, 265)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_qtgui_range</key>
+ <param>
+ <key>id</key>
+ <value>tun_freq</value>
</param>
<param>
<key>_enabled</key>
@@ -1981,23 +2713,47 @@
</param>
<param>
<key>label</key>
- <value>IP Address, Dev 0</value>
+ <value>UHD Freq (Hz)</value>
</param>
<param>
<key>value</key>
- <value>addr=192.168.10.2</value>
+ <value>1.982e9</value>
</param>
<param>
- <key>type</key>
- <value>string</value>
+ <key>start</key>
+ <value>1.9e9</value>
</param>
<param>
- <key>short_id</key>
+ <key>stop</key>
+ <value>2.5e9</value>
+ </param>
+ <param>
+ <key>step</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(197, 11)</value>
+ <value>(5, 545)</value>
</param>
<param>
<key>_rotation</key>
@@ -2005,10 +2761,10 @@
</param>
</block>
<block>
- <key>parameter</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>address1</value>
+ <value>tun_rx_gain</value>
</param>
<param>
<key>_enabled</key>
@@ -2016,23 +2772,47 @@
</param>
<param>
<key>label</key>
- <value>IP Address, Dev 1</value>
+ <value>UHD Rx Gain</value>
</param>
<param>
<key>value</key>
- <value>addr=192.168.11.2</value>
+ <value>0</value>
</param>
<param>
- <key>type</key>
- <value>string</value>
+ <key>start</key>
+ <value>0</value>
</param>
<param>
- <key>short_id</key>
+ <key>stop</key>
+ <value>30</value>
+ </param>
+ <param>
+ <key>step</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(357, 11)</value>
+ <value>(391, 546)</value>
</param>
<param>
<key>_rotation</key>
@@ -2040,10 +2820,10 @@
</param>
</block>
<block>
- <key>parameter</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>samp_rate</value>
+ <value>tun_tx_gain</value>
</param>
<param>
<key>_enabled</key>
@@ -2051,23 +2831,47 @@
</param>
<param>
<key>label</key>
- <value>Sample Rate</value>
+ <value>UHD Tx Gain</value>
</param>
<param>
<key>value</key>
- <value>1e6</value>
+ <value>0</value>
</param>
<param>
- <key>type</key>
- <value>eng_float</value>
+ <key>start</key>
+ <value>0</value>
</param>
<param>
- <key>short_id</key>
- <value>s</value>
+ <key>stop</key>
+ <value>30</value>
+ </param>
+ <param>
+ <key>step</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(543, 8)</value>
+ <value>(277, 546)</value>
</param>
<param>
<key>_rotation</key>
@@ -2075,10 +2879,10 @@
</param>
</block>
<block>
- <key>parameter</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>freq</value>
+ <value>rx_freq_off</value>
</param>
<param>
<key>_enabled</key>
@@ -2086,23 +2890,122 @@
</param>
<param>
<key>label</key>
- <value>Default Frequency</value>
+ <value>Rx Freq Offset (Hz)</value>
</param>
<param>
<key>value</key>
- <value>2.45e9</value>
+ <value>0</value>
+ </param>
+ <param>
+ <key>start</key>
+ <value>-50e3</value>
+ </param>
+ <param>
+ <key>stop</key>
+ <value>50e3</value>
+ </param>
+ <param>
+ <key>step</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(130, 547)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>digital_dxpsk_demod</key>
+ <param>
+ <key>id</key>
+ <value>digital_dxpsk_demod_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
<key>type</key>
- <value>eng_float</value>
+ <value>dqpsk</value>
</param>
<param>
- <key>short_id</key>
- <value>f</value>
+ <key>samples_per_symbol</key>
+ <value>samps_per_sym</value>
+ </param>
+ <param>
+ <key>excess_bw</key>
+ <value>0.35</value>
+ </param>
+ <param>
+ <key>freq_bw</key>
+ <value>6.28/100.0</value>
+ </param>
+ <param>
+ <key>phase_bw</key>
+ <value>6.28/100.0</value>
+ </param>
+ <param>
+ <key>timing_bw</key>
+ <value>6.28/100.0</value>
+ </param>
+ <param>
+ <key>mod_code</key>
+ <value>"gray"</value>
+ </param>
+ <param>
+ <key>verbose</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>log</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>sync_out</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(669, 8)</value>
+ <value>(294, 375)</value>
</param>
<param>
<key>_rotation</key>
@@ -2110,34 +3013,420 @@
</param>
</block>
<block>
- <key>parameter</key>
+ <key>blocks_unpacked_to_packed_xx</key>
<param>
<key>id</key>
- <value>tx_gain</value>
+ <value>blocks_unpacked_to_packed_xx_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Default TX Gain</value>
+ <key>type</key>
+ <value>byte</value>
</param>
<param>
- <key>value</key>
+ <key>bits_per_chunk</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>endianness</key>
+ <value>gr.GR_LSB_FIRST</value>
+ </param>
+ <param>
+ <key>num_ports</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
<value>0</value>
</param>
<param>
+ <key>_coordinate</key>
+ <value>(542, 420)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_uchar_to_float</key>
+ <param>
+ <key>id</key>
+ <value>blocks_uchar_to_float_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(747, 431)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>qtgui_time_sink_x</key>
+ <param>
+ <key>id</key>
+ <value>qtgui_time_sink_x_1</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
<key>type</key>
- <value>eng_float</value>
+ <value>float</value>
</param>
<param>
- <key>short_id</key>
+ <key>name</key>
+ <value>Received Data</value>
+ </param>
+ <param>
+ <key>size</key>
+ <value>1024</value>
+ </param>
+ <param>
+ <key>srate</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>autoscale</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>ymin</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>ymax</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>update_time</key>
+ <value>0.10</value>
+ </param>
+ <param>
+ <key>entags</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>tr_mode</key>
+ <value>qtgui.TRIG_MODE_FREE</value>
+ </param>
+ <param>
+ <key>tr_slope</key>
+ <value>qtgui.TRIG_SLOPE_POS</value>
+ </param>
+ <param>
+ <key>tr_level</key>
+ <value>0.0</value>
+ </param>
+ <param>
+ <key>tr_delay</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>tr_chan</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>tr_tag</key>
+ <value>""</value>
+ </param>
+ <param>
+ <key>label1</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color1</key>
+ <value>"blue"</value>
+ </param>
+ <param>
+ <key>style1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker1</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha1</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label2</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color2</key>
+ <value>"red"</value>
+ </param>
+ <param>
+ <key>style2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker2</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha2</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label3</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width3</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color3</key>
+ <value>"green"</value>
+ </param>
+ <param>
+ <key>style3</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker3</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha3</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label4</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width4</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color4</key>
+ <value>"black"</value>
+ </param>
+ <param>
+ <key>style4</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker4</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha4</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label5</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width5</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color5</key>
+ <value>"cyan"</value>
+ </param>
+ <param>
+ <key>style5</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker5</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha5</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label6</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width6</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color6</key>
+ <value>"magenta"</value>
+ </param>
+ <param>
+ <key>style6</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker6</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha6</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label7</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width7</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color7</key>
+ <value>"yellow"</value>
+ </param>
+ <param>
+ <key>style7</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker7</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha7</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label8</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width8</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color8</key>
+ <value>"dark red"</value>
+ </param>
+ <param>
+ <key>style8</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker8</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha8</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label9</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width9</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color9</key>
+ <value>"dark green"</value>
+ </param>
+ <param>
+ <key>style9</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker9</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha9</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label10</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width10</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color10</key>
+ <value>"blue"</value>
+ </param>
+ <param>
+ <key>style10</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>marker10</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>alpha10</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(1003, 8)</value>
+ <value>(923, 405)</value>
</param>
<param>
<key>_rotation</key>
@@ -2145,54 +3434,238 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>qtgui_freq_sink_x</key>
<param>
<key>id</key>
- <value>tun_freq</value>
+ <value>qtgui_freq_sink_x_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Freq (Hz)</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>value</key>
- <value>freq</value>
+ <key>name</key>
+ <value>Received Spectrum</value>
</param>
<param>
- <key>min</key>
- <value>2.4e9</value>
+ <key>fftsize</key>
+ <value>1024</value>
</param>
<param>
- <key>max</key>
- <value>2.5e9</value>
+ <key>wintype</key>
+ <value>firdes.WIN_BLACKMAN_hARRIS</value>
+ </param>
+ <param>
+ <key>fc</key>
+ <value>tun_freq+rx_freq_off</value>
+ </param>
+ <param>
+ <key>bw</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>autoscale</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>average</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>ymin</key>
+ <value>-140</value>
+ </param>
+ <param>
+ <key>ymax</key>
+ <value>10</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>update_time</key>
+ <value>0.10</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>label1</key>
+ <value>Received Spectrum</value>
+ </param>
+ <param>
+ <key>width1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color1</key>
+ <value>"blue"</value>
+ </param>
+ <param>
+ <key>alpha1</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label2</key>
+ <value></value>
</param>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>width2</key>
+ <value>1</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>color2</key>
+ <value>"red"</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>alpha2</key>
+ <value>1.0</value>
</param>
<param>
- <key>grid_pos</key>
+ <key>label3</key>
<value></value>
</param>
<param>
- <key>notebook</key>
+ <key>width3</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color3</key>
+ <value>"green"</value>
+ </param>
+ <param>
+ <key>alpha3</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label4</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width4</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color4</key>
+ <value>"black"</value>
+ </param>
+ <param>
+ <key>alpha4</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label5</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width5</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color5</key>
+ <value>"cyan"</value>
+ </param>
+ <param>
+ <key>alpha5</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label6</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width6</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color6</key>
+ <value>"magenta"</value>
+ </param>
+ <param>
+ <key>alpha6</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label7</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width7</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color7</key>
+ <value>"yellow"</value>
+ </param>
+ <param>
+ <key>alpha7</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label8</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width8</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color8</key>
+ <value>"dark red"</value>
+ </param>
+ <param>
+ <key>alpha8</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label9</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width9</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color9</key>
+ <value>"dark green"</value>
+ </param>
+ <param>
+ <key>alpha9</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label10</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width10</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color10</key>
+ <value>"dark blue"</value>
+ </param>
+ <param>
+ <key>alpha10</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(35, 506)</value>
+ <value>(610, 254)</value>
</param>
<param>
<key>_rotation</key>
@@ -2201,19 +3674,19 @@
</block>
<connection>
<source_block_id>uhd_usrp_source_0</source_block_id>
- <sink_block_id>wxgui_fftsink2_0</sink_block_id>
+ <sink_block_id>qtgui_const_sink_x_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>uhd_usrp_source_0</source_block_id>
- <sink_block_id>wxgui_constellationsink2_0</sink_block_id>
+ <sink_block_id>qtgui_freq_sink_x_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>uhd_usrp_source_0</source_block_id>
- <sink_block_id>wxgui_scopesink2_0</sink_block_id>
+ <source_block_id>digital_dxpsk_mod_0</source_block_id>
+ <sink_block_id>blocks_multiply_const_vxx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
@@ -2224,14 +3697,38 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>analog_random_source_x_0</source_block_id>
+ <source_block_id>uhd_usrp_source_0</source_block_id>
+ <sink_block_id>digital_dxpsk_demod_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>uhd_usrp_source_0</source_block_id>
+ <sink_block_id>qtgui_time_sink_x_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_vector_source_x_0</source_block_id>
<sink_block_id>digital_dxpsk_mod_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_dxpsk_mod_0</source_block_id>
- <sink_block_id>blocks_multiply_const_vxx_0</sink_block_id>
+ <source_block_id>digital_dxpsk_demod_0</source_block_id>
+ <sink_block_id>blocks_unpacked_to_packed_xx_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_unpacked_to_packed_xx_0</source_block_id>
+ <sink_block_id>blocks_uchar_to_float_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_uchar_to_float_0</source_block_id>
+ <sink_block_id>qtgui_time_sink_x_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
diff --git a/gr-uhd/examples/grc/uhd_fft.grc b/gr-uhd/examples/grc/uhd_fft.grc
index 08e5f70edb..13271cae74 100644
--- a/gr-uhd/examples/grc/uhd_fft.grc
+++ b/gr-uhd/examples/grc/uhd_fft.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Mon Mar 18 15:42:27 2013</timestamp>
+ <timestamp>Sat Jul 12 16:12:28 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -29,7 +29,7 @@
</param>
<param>
<key>generate_options</key>
- <value>wx_gui</value>
+ <value>qt_gui</value>
</param>
<param>
<key>category</key>
@@ -52,8 +52,12 @@
<value></value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(15, 15)</value>
+ <value>(-1, -3)</value>
</param>
<param>
<key>_rotation</key>
@@ -61,22 +65,38 @@
</param>
</block>
<block>
- <key>import</key>
+ <key>parameter</key>
<param>
<key>id</key>
- <value>import_0</value>
+ <value>param_gain</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>import</key>
- <value>import numpy</value>
+ <key>label</key>
+ <value>Default Gain</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>eng_float</value>
+ </param>
+ <param>
+ <key>short_id</key>
+ <value>g</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(15, 121)</value>
+ <value>(642, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -110,8 +130,12 @@
<value>s</value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(358, 14)</value>
+ <value>(328, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -145,8 +169,39 @@
<value>f</value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(478, 0)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</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>import numpy</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(508, 14)</value>
+ <value>(4, 105)</value>
</param>
<param>
<key>_rotation</key>
@@ -157,7 +212,7 @@
<key>parameter</key>
<param>
<key>id</key>
- <value>param_gain</value>
+ <value>address</value>
</param>
<param>
<key>_enabled</key>
@@ -165,23 +220,78 @@
</param>
<param>
<key>label</key>
- <value>Default Gain</value>
+ <value>IP Address</value>
</param>
<param>
<key>value</key>
- <value>0</value>
+ <value>addr=192.168.10.2</value>
</param>
<param>
<key>type</key>
- <value>eng_float</value>
+ <value>string</value>
</param>
<param>
<key>short_id</key>
- <value>g</value>
+ <value>a</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(160, 0)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>qtgui_tab_widget</key>
+ <param>
+ <key>id</key>
+ <value>display</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>num_tabs</key>
+ <value>3</value>
+ </param>
+ <param>
+ <key>label0</key>
+ <value>Spectrum</value>
+ </param>
+ <param>
+ <key>label1</key>
+ <value>Waterfall</value>
+ </param>
+ <param>
+ <key>label2</key>
+ <value>Scope</value>
+ </param>
+ <param>
+ <key>label3</key>
+ <value>Tab 3</value>
+ </param>
+ <param>
+ <key>label4</key>
+ <value>Tab 4</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value>2,0,1,4</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(672, 13)</value>
+ <value>(6, 178)</value>
</param>
<param>
<key>_rotation</key>
@@ -189,10 +299,348 @@
</param>
</block>
<block>
- <key>wxgui_scopesink2</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>wxgui_scopesink2_0</value>
+ <value>gain</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>RX Gain</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>15</value>
+ </param>
+ <param>
+ <key>start</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>stop</key>
+ <value>31.5</value>
+ </param>
+ <param>
+ <key>step</key>
+ <value>.5</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value>1,2,1,2</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(694, 216)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_qtgui_range</key>
+ <param>
+ <key>id</key>
+ <value>freq</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>RX Tune Frequency</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>2.45e9</value>
+ </param>
+ <param>
+ <key>start</key>
+ <value>50e6</value>
+ </param>
+ <param>
+ <key>stop</key>
+ <value>6e9</value>
+ </param>
+ <param>
+ <key>step</key>
+ <value>100e3</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value>1,0,1,2</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(538, 214)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_qtgui_chooser</key>
+ <param>
+ <key>id</key>
+ <value>ant</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>Antenna</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>string</value>
+ </param>
+ <param>
+ <key>num_opts</key>
+ <value>4</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>RX2</value>
+ </param>
+ <param>
+ <key>options</key>
+ <value>[0, 1, 2]</value>
+ </param>
+ <param>
+ <key>labels</key>
+ <value>[]</value>
+ </param>
+ <param>
+ <key>option0</key>
+ <value>RX2</value>
+ </param>
+ <param>
+ <key>label0</key>
+ <value>RX2</value>
+ </param>
+ <param>
+ <key>option1</key>
+ <value>TX/RX</value>
+ </param>
+ <param>
+ <key>label1</key>
+ <value>TX/RX</value>
+ </param>
+ <param>
+ <key>option2</key>
+ <value>J1</value>
+ </param>
+ <param>
+ <key>label2</key>
+ <value>J1</value>
+ </param>
+ <param>
+ <key>option3</key>
+ <value>J2</value>
+ </param>
+ <param>
+ <key>label3</key>
+ <value>J2</value>
+ </param>
+ <param>
+ <key>option4</key>
+ <value>4</value>
+ </param>
+ <param>
+ <key>label4</key>
+ <value></value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>combo_box</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.QVBoxLayout</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value>0,2,1,2</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(810, 124)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_qtgui_label</key>
+ <param>
+ <key>id</key>
+ <value>lo_locked_probe</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>LO locked</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>bool</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>chan0_lo_locked.to_bool()</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value>0,1,1,1</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(662, 127)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_qtgui_label</key>
+ <param>
+ <key>id</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>Sample Rate</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>real</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>1e6</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value>0,0,1,1</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(543, 128)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_function_probe</key>
+ <param>
+ <key>id</key>
+ <value>chan0_lo_locked</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>uhd.sensor_value("", False, "")</value>
+ </param>
+ <param>
+ <key>block_id</key>
+ <value>uhd_usrp_source_0</value>
+ </param>
+ <param>
+ <key>function_name</key>
+ <value>get_sensor</value>
+ </param>
+ <param>
+ <key>function_args</key>
+ <value>"'lo_locked'"</value>
+ </param>
+ <param>
+ <key>poll_rate</key>
+ <value>10</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1014, 164)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>qtgui_waterfall_sink_x</key>
+ <param>
+ <key>id</key>
+ <value>qtgui_waterfall_sink_x_0</value>
</param>
<param>
<key>_enabled</key>
@@ -203,60 +651,407 @@
<value>complex</value>
</param>
<param>
- <key>title</key>
- <value>Scope Plot</value>
+ <key>name</key>
+ <value>Scope</value>
</param>
<param>
- <key>samp_rate</key>
+ <key>fftsize</key>
+ <value>1024</value>
+ </param>
+ <param>
+ <key>wintype</key>
+ <value>firdes.WIN_BLACKMAN_hARRIS</value>
+ </param>
+ <param>
+ <key>fc</key>
+ <value>freq</value>
+ </param>
+ <param>
+ <key>bw</key>
<value>samp_rate</value>
</param>
<param>
- <key>v_scale</key>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>update_time</key>
+ <value>0.10</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value>display@1:3,0,1,4</value>
+ </param>
+ <param>
+ <key>label1</key>
+ <value></value>
+ </param>
+ <param>
+ <key>color1</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>alpha1</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label2</key>
+ <value></value>
+ </param>
+ <param>
+ <key>color2</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>alpha2</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label3</key>
+ <value></value>
+ </param>
+ <param>
+ <key>color3</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>alpha3</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label4</key>
+ <value></value>
+ </param>
+ <param>
+ <key>color4</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>alpha4</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label5</key>
+ <value></value>
+ </param>
+ <param>
+ <key>color5</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>alpha5</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label6</key>
+ <value></value>
+ </param>
+ <param>
+ <key>color6</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>alpha6</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label7</key>
+ <value></value>
+ </param>
+ <param>
+ <key>color7</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>alpha7</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label8</key>
+ <value></value>
+ </param>
+ <param>
+ <key>color8</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>alpha8</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label9</key>
+ <value></value>
+ </param>
+ <param>
+ <key>color9</key>
<value>0</value>
</param>
<param>
- <key>v_offset</key>
+ <key>alpha9</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label10</key>
+ <value></value>
+ </param>
+ <param>
+ <key>color10</key>
<value>0</value>
</param>
<param>
- <key>t_scale</key>
+ <key>alpha10</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(325, 328)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>qtgui_freq_sink_x</key>
+ <param>
+ <key>id</key>
+ <value>qtgui_freq_sink_x_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>name</key>
+ <value>Spectrum</value>
+ </param>
+ <param>
+ <key>fftsize</key>
+ <value>1024</value>
+ </param>
+ <param>
+ <key>wintype</key>
+ <value>firdes.WIN_BLACKMAN_hARRIS</value>
+ </param>
+ <param>
+ <key>fc</key>
+ <value>freq</value>
+ </param>
+ <param>
+ <key>bw</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>autoscale</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>average</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>ymin</key>
+ <value>-140</value>
+ </param>
+ <param>
+ <key>ymax</key>
+ <value>10</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>update_time</key>
+ <value>0.10</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value>display@0:3,0,1,4</value>
+ </param>
+ <param>
+ <key>label1</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color1</key>
+ <value>"blue"</value>
+ </param>
+ <param>
+ <key>alpha1</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label2</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color2</key>
+ <value>"red"</value>
+ </param>
+ <param>
+ <key>alpha2</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label3</key>
+ <value></value>
+ </param>
<param>
- <key>ac_couple</key>
- <value>False</value>
+ <key>width3</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color3</key>
+ <value>"green"</value>
+ </param>
+ <param>
+ <key>alpha3</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label4</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width4</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color4</key>
+ <value>"black"</value>
+ </param>
+ <param>
+ <key>alpha4</key>
+ <value>1.0</value>
</param>
<param>
- <key>xy_mode</key>
- <value>False</value>
+ <key>label5</key>
+ <value></value>
</param>
<param>
- <key>num_inputs</key>
+ <key>width5</key>
<value>1</value>
</param>
<param>
- <key>win_size</key>
+ <key>color5</key>
+ <value>"cyan"</value>
+ </param>
+ <param>
+ <key>alpha5</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label6</key>
<value></value>
</param>
<param>
- <key>grid_pos</key>
+ <key>width6</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color6</key>
+ <value>"magenta"</value>
+ </param>
+ <param>
+ <key>alpha6</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label7</key>
<value></value>
</param>
<param>
- <key>notebook</key>
- <value>nb0, 2</value>
+ <key>width7</key>
+ <value>1</value>
</param>
<param>
- <key>trig_mode</key>
- <value>wxgui.TRIG_MODE_AUTO</value>
+ <key>color7</key>
+ <value>"yellow"</value>
</param>
<param>
- <key>y_axis_label</key>
- <value>Counts</value>
+ <key>alpha7</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label8</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width8</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color8</key>
+ <value>"dark red"</value>
+ </param>
+ <param>
+ <key>alpha8</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label9</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width9</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color9</key>
+ <value>"dark green"</value>
+ </param>
+ <param>
+ <key>alpha9</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label10</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width10</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color10</key>
+ <value>"dark blue"</value>
+ </param>
+ <param>
+ <key>alpha10</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(314, 250)</value>
+ <value>(311, 217)</value>
</param>
<param>
<key>_rotation</key>
@@ -286,10 +1081,18 @@
<value></value>
</param>
<param>
+ <key>stream_chans</key>
+ <value>[]</value>
+ </param>
+ <param>
<key>dev_addr</key>
<value>address</value>
</param>
<param>
+ <key>dev_args</key>
+ <value>""</value>
+ </param>
+ <param>
<key>sync</key>
<value></value>
</param>
@@ -918,176 +1721,24 @@
<value>0</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(37, 394)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable_function_probe</key>
- <param>
- <key>id</key>
- <value>chan0_lo_locked</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>uhd.sensor_value("", False, "")</value>
- </param>
- <param>
- <key>block_id</key>
- <value>uhd_usrp_source_0</value>
- </param>
- <param>
- <key>function_name</key>
- <value>get_sensor</value>
- </param>
- <param>
- <key>function_args</key>
- <value>"'lo_locked'"</value>
- </param>
- <param>
- <key>poll_rate</key>
- <value>10</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(583, 432)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>notebook</key>
- <param>
- <key>id</key>
- <value>nb0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>style</key>
- <value>wx.NB_TOP</value>
- </param>
- <param>
- <key>labels</key>
- <value>['FFT', 'Waterfall', 'Scope']</value>
- </param>
- <param>
- <key>grid_pos</key>
- <value>0, 0, 1, 8</value>
- </param>
- <param>
- <key>notebook</key>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>_coordinate</key>
- <value>(15, 172)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable_chooser</key>
- <param>
- <key>id</key>
- <value>ant_xcvr</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>False</value>
- </param>
- <param>
- <key>label</key>
- <value>Antenna</value>
- </param>
- <param>
- <key>value</key>
- <value>"J2"</value>
- </param>
- <param>
- <key>choices</key>
- <value>["J2","J1"]</value>
- </param>
- <param>
- <key>labels</key>
- <value>["J2","J1"]</value>
- </param>
- <param>
- <key>type</key>
- <value>radio_buttons</value>
- </param>
- <param>
- <key>style</key>
- <value>wx.RA_HORIZONTAL</value>
- </param>
- <param>
- <key>grid_pos</key>
- <value></value>
- </param>
- <param>
- <key>notebook</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
- <key>_coordinate</key>
- <value>(830, 278)</value>
- </param>
- <param>
- <key>_rotation</key>
+ <key>minoutbuf</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>variable_static_text</key>
- <param>
- <key>id</key>
- <value>lo_locked_probe</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>label</key>
- <value>LO Locked</value>
- </param>
<param>
- <key>value</key>
- <value>chan0_lo_locked.to_bool()</value>
- </param>
- <param>
- <key>converver</key>
- <value>str_converter</value>
- </param>
- <param>
- <key>formatter</key>
- <value>lambda x: x and "True" or "False"</value>
- </param>
- <param>
- <key>grid_pos</key>
- <value>1, 7, 1, 1</value>
- </param>
- <param>
- <key>notebook</key>
- <value></value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(583, 314)</value>
+ <value>(33, 295)</value>
</param>
<param>
<key>_rotation</key>
@@ -1095,412 +1746,334 @@
</param>
</block>
<block>
- <key>variable_chooser</key>
+ <key>qtgui_time_sink_x</key>
<param>
<key>id</key>
- <value>ant</value>
+ <value>qtgui_time_sink_x_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Antenna</value>
- </param>
- <param>
- <key>value</key>
- <value>"RX2"</value>
- </param>
- <param>
- <key>choices</key>
- <value>["RX2","TX/RX"]</value>
- </param>
- <param>
- <key>labels</key>
- <value>["RX2","TX/RX"]</value>
- </param>
- <param>
<key>type</key>
- <value>radio_buttons</value>
- </param>
- <param>
- <key>style</key>
- <value>wx.RA_HORIZONTAL</value>
- </param>
- <param>
- <key>grid_pos</key>
- <value>1, 4, 1, 2</value>
- </param>
- <param>
- <key>notebook</key>
- <value></value>
+ <value>complex</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(830, 130)</value>
+ <key>name</key>
+ <value>QT GUI Plot</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>size</key>
+ <value>1024</value>
</param>
- </block>
- <block>
- <key>wxgui_fftsink2</key>
<param>
- <key>id</key>
- <value>fft</value>
+ <key>srate</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>_enabled</key>
+ <key>autoscale</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>
+ <key>ymin</key>
+ <value>-1</value>
</param>
<param>
- <key>baseband_freq</key>
- <value>freq</value>
- </param>
- <param>
- <key>y_per_div</key>
- <value>10</value>
+ <key>ymax</key>
+ <value>1</value>
</param>
<param>
- <key>y_divs</key>
- <value>15</value>
+ <key>nconnections</key>
+ <value>1</value>
</param>
<param>
- <key>ref_level</key>
- <value>0</value>
+ <key>update_time</key>
+ <value>0.10</value>
</param>
<param>
- <key>ref_scale</key>
- <value>2.0</value>
+ <key>entags</key>
+ <value>True</value>
</param>
<param>
- <key>fft_size</key>
- <value>1024</value>
+ <key>gui_hint</key>
+ <value>display@2:3,0,1,4</value>
</param>
<param>
- <key>fft_rate</key>
- <value>15</value>
+ <key>tr_mode</key>
+ <value>qtgui.TRIG_MODE_FREE</value>
</param>
<param>
- <key>peak_hold</key>
- <value>False</value>
+ <key>tr_slope</key>
+ <value>qtgui.TRIG_SLOPE_POS</value>
</param>
<param>
- <key>average</key>
- <value>False</value>
+ <key>tr_level</key>
+ <value>0.0</value>
</param>
<param>
- <key>avg_alpha</key>
+ <key>tr_delay</key>
<value>0</value>
</param>
<param>
- <key>win</key>
- <value>None</value>
+ <key>tr_chan</key>
+ <value>0</value>
</param>
<param>
- <key>win_size</key>
- <value>(-1, 400)</value>
+ <key>tr_tag</key>
+ <value>""</value>
</param>
<param>
- <key>grid_pos</key>
+ <key>label1</key>
<value></value>
</param>
<param>
- <key>notebook</key>
- <value>nb0, 0</value>
- </param>
- <param>
- <key>freqvar</key>
- <value>None</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(314, 359)</value>
+ <key>width1</key>
+ <value>1</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>color1</key>
+ <value>"blue"</value>
</param>
- </block>
- <block>
- <key>wxgui_waterfallsink2</key>
<param>
- <key>id</key>
- <value>wxgui_waterfallsink2_0</value>
+ <key>style1</key>
+ <value>1</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>marker1</key>
+ <value>-1</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
+ <key>alpha1</key>
+ <value>1.0</value>
</param>
<param>
- <key>title</key>
- <value>Waterfall Plot</value>
+ <key>label2</key>
+ <value></value>
</param>
<param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>width2</key>
+ <value>1</value>
</param>
<param>
- <key>baseband_freq</key>
- <value>0</value>
+ <key>color2</key>
+ <value>"red"</value>
</param>
<param>
- <key>dynamic_range</key>
- <value>100</value>
+ <key>style2</key>
+ <value>1</value>
</param>
<param>
- <key>ref_level</key>
- <value>0</value>
+ <key>marker2</key>
+ <value>-1</value>
</param>
<param>
- <key>ref_scale</key>
- <value>2.0</value>
+ <key>alpha2</key>
+ <value>1.0</value>
</param>
<param>
- <key>fft_size</key>
- <value>512</value>
+ <key>label3</key>
+ <value></value>
</param>
<param>
- <key>fft_rate</key>
- <value>15</value>
+ <key>width3</key>
+ <value>1</value>
</param>
<param>
- <key>average</key>
- <value>False</value>
+ <key>color3</key>
+ <value>"green"</value>
</param>
<param>
- <key>avg_alpha</key>
- <value>0</value>
+ <key>style3</key>
+ <value>1</value>
</param>
<param>
- <key>win</key>
- <value>None</value>
+ <key>marker3</key>
+ <value>-1</value>
</param>
<param>
- <key>win_size</key>
- <value>(-1, 400)</value>
+ <key>alpha3</key>
+ <value>1.0</value>
</param>
<param>
- <key>grid_pos</key>
+ <key>label4</key>
<value></value>
</param>
<param>
- <key>notebook</key>
- <value>nb0, 1</value>
+ <key>width4</key>
+ <value>1</value>
</param>
<param>
- <key>freqvar</key>
- <value>None</value>
+ <key>color4</key>
+ <value>"black"</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(313, 573)</value>
+ <key>style4</key>
+ <value>1</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>marker4</key>
+ <value>-1</value>
</param>
- </block>
- <block>
- <key>variable_text_box</key>
<param>
- <key>id</key>
- <value>samp_rate</value>
+ <key>alpha4</key>
+ <value>1.0</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>label5</key>
+ <value></value>
</param>
<param>
- <key>label</key>
- <value>Sample Rate</value>
+ <key>width5</key>
+ <value>1</value>
</param>
<param>
- <key>value</key>
- <value>param_samp_rate</value>
+ <key>color5</key>
+ <value>"cyan"</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>style5</key>
+ <value>1</value>
</param>
<param>
- <key>formatter</key>
- <value>None</value>
+ <key>marker5</key>
+ <value>-1</value>
</param>
<param>
- <key>grid_pos</key>
- <value>1, 0, 1, 3</value>
+ <key>alpha5</key>
+ <value>1.0</value>
</param>
<param>
- <key>notebook</key>
+ <key>label6</key>
<value></value>
</param>
<param>
- <key>_coordinate</key>
- <value>(358, 129)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
+ <key>width6</key>
+ <value>1</value>
</param>
- </block>
- <block>
- <key>variable_slider</key>
<param>
- <key>id</key>
- <value>freq</value>
+ <key>color6</key>
+ <value>"magenta"</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>style6</key>
+ <value>1</value>
</param>
<param>
- <key>label</key>
- <value>RX Tune Frequency</value>
+ <key>marker6</key>
+ <value>-1</value>
</param>
<param>
- <key>value</key>
- <value>param_freq</value>
+ <key>alpha6</key>
+ <value>1.0</value>
</param>
<param>
- <key>min</key>
- <value>50e6</value>
+ <key>label7</key>
+ <value></value>
</param>
<param>
- <key>max</key>
- <value>6e9</value>
+ <key>width7</key>
+ <value>1</value>
</param>
<param>
- <key>num_steps</key>
- <value>1000</value>
+ <key>color7</key>
+ <value>"yellow"</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>style7</key>
+ <value>1</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>marker7</key>
+ <value>-1</value>
</param>
<param>
- <key>grid_pos</key>
- <value>3, 0, 1, 8</value>
+ <key>alpha7</key>
+ <value>1.0</value>
</param>
<param>
- <key>notebook</key>
+ <key>label8</key>
<value></value>
</param>
<param>
- <key>_coordinate</key>
- <value>(510, 128)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
+ <key>width8</key>
+ <value>1</value>
</param>
- </block>
- <block>
- <key>variable_slider</key>
<param>
- <key>id</key>
- <value>gain</value>
+ <key>color8</key>
+ <value>"dark red"</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>style8</key>
+ <value>1</value>
</param>
<param>
- <key>label</key>
- <value>RX Gain</value>
+ <key>marker8</key>
+ <value>-1</value>
</param>
<param>
- <key>value</key>
- <value>param_gain</value>
+ <key>alpha8</key>
+ <value>1.0</value>
</param>
<param>
- <key>min</key>
- <value>0</value>
+ <key>label9</key>
+ <value></value>
</param>
<param>
- <key>max</key>
- <value>31.5</value>
+ <key>width9</key>
+ <value>1</value>
</param>
<param>
- <key>num_steps</key>
- <value>63</value>
+ <key>color9</key>
+ <value>"dark green"</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>style9</key>
+ <value>1</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>marker9</key>
+ <value>-1</value>
</param>
<param>
- <key>grid_pos</key>
- <value>2, 0, 1, 8</value>
+ <key>alpha9</key>
+ <value>1.0</value>
</param>
<param>
- <key>notebook</key>
+ <key>label10</key>
<value></value>
</param>
<param>
- <key>_coordinate</key>
- <value>(679, 130)</value>
+ <key>width10</key>
+ <value>1</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>color10</key>
+ <value>"blue"</value>
</param>
- </block>
- <block>
- <key>parameter</key>
<param>
- <key>id</key>
- <value>address</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
+ <key>style10</key>
+ <value>1</value>
</param>
<param>
- <key>label</key>
- <value>IP Address</value>
+ <key>marker10</key>
+ <value>-1</value>
</param>
<param>
- <key>value</key>
- <value>addr=192.168.11.2</value>
+ <key>alpha10</key>
+ <value>1.0</value>
</param>
<param>
- <key>type</key>
- <value>string</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>short_id</key>
- <value>a</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(190, 15)</value>
+ <value>(333, 436)</value>
</param>
<param>
<key>_rotation</key>
@@ -1509,19 +2082,19 @@
</block>
<connection>
<source_block_id>uhd_usrp_source_0</source_block_id>
- <sink_block_id>wxgui_scopesink2_0</sink_block_id>
+ <sink_block_id>qtgui_time_sink_x_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>uhd_usrp_source_0</source_block_id>
- <sink_block_id>wxgui_waterfallsink2_0</sink_block_id>
+ <sink_block_id>qtgui_waterfall_sink_x_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>uhd_usrp_source_0</source_block_id>
- <sink_block_id>fft</sink_block_id>
+ <sink_block_id>qtgui_freq_sink_x_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
diff --git a/gr-uhd/examples/grc/uhd_msg_tune.grc b/gr-uhd/examples/grc/uhd_msg_tune.grc
new file mode 100644
index 0000000000..89022278be
--- /dev/null
+++ b/gr-uhd/examples/grc/uhd_msg_tune.grc
@@ -0,0 +1,1132 @@
+<?xml version='1.0' encoding='ASCII'?>
+<flow_graph>
+ <timestamp>Tue Jul 8 12:08:19 2014</timestamp>
+ <block>
+ <key>options</key>
+ <param>
+ <key>id</key>
+ <value>uhd_tune_msg</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>title</key>
+ <value>UHD Message Tuner</value>
+ </param>
+ <param>
+ <key>author</key>
+ <value></value>
+ </param>
+ <param>
+ <key>description</key>
+ <value>Tune a UHD source from a QT sink via messages.</value>
+ </param>
+ <param>
+ <key>window_size</key>
+ <value>1280, 1024</value>
+ </param>
+ <param>
+ <key>generate_options</key>
+ <value>qt_gui</value>
+ </param>
+ <param>
+ <key>category</key>
+ <value>Custom</value>
+ </param>
+ <param>
+ <key>run_options</key>
+ <value>prompt</value>
+ </param>
+ <param>
+ <key>run</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>max_nouts</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>realtime_scheduling</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(-1, -2)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>initial_fc</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>100e6</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(-2, 172)</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>2e6</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1, 102)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_qtgui_range</key>
+ <param>
+ <key>id</key>
+ <value>gain</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value></value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>20</value>
+ </param>
+ <param>
+ <key>start</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>stop</key>
+ <value>60</value>
+ </param>
+ <param>
+ <key>step</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(103, 99)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>uhd_usrp_source</key>
+ <param>
+ <key>id</key>
+ <value>uhd_usrp_source_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>fc32</value>
+ </param>
+ <param>
+ <key>otw</key>
+ <value></value>
+ </param>
+ <param>
+ <key>stream_args</key>
+ <value></value>
+ </param>
+ <param>
+ <key>stream_chans</key>
+ <value>[]</value>
+ </param>
+ <param>
+ <key>dev_addr</key>
+ <value>""</value>
+ </param>
+ <param>
+ <key>dev_args</key>
+ <value>""</value>
+ </param>
+ <param>
+ <key>sync</key>
+ <value></value>
+ </param>
+ <param>
+ <key>clock_rate</key>
+ <value>0.0</value>
+ </param>
+ <param>
+ <key>num_mboards</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>clock_source0</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source0</key>
+ <value></value>
+ </param>
+ <param>
+ <key>sd_spec0</key>
+ <value></value>
+ </param>
+ <param>
+ <key>clock_source1</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source1</key>
+ <value></value>
+ </param>
+ <param>
+ <key>sd_spec1</key>
+ <value></value>
+ </param>
+ <param>
+ <key>clock_source2</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source2</key>
+ <value></value>
+ </param>
+ <param>
+ <key>sd_spec2</key>
+ <value></value>
+ </param>
+ <param>
+ <key>clock_source3</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source3</key>
+ <value></value>
+ </param>
+ <param>
+ <key>sd_spec3</key>
+ <value></value>
+ </param>
+ <param>
+ <key>clock_source4</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source4</key>
+ <value></value>
+ </param>
+ <param>
+ <key>sd_spec4</key>
+ <value></value>
+ </param>
+ <param>
+ <key>clock_source5</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source5</key>
+ <value></value>
+ </param>
+ <param>
+ <key>sd_spec5</key>
+ <value></value>
+ </param>
+ <param>
+ <key>clock_source6</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source6</key>
+ <value></value>
+ </param>
+ <param>
+ <key>sd_spec6</key>
+ <value></value>
+ </param>
+ <param>
+ <key>clock_source7</key>
+ <value></value>
+ </param>
+ <param>
+ <key>time_source7</key>
+ <value></value>
+ </param>
+ <param>
+ <key>sd_spec7</key>
+ <value></value>
+ </param>
+ <param>
+ <key>nchan</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>center_freq0</key>
+ <value>initial_fc</value>
+ </param>
+ <param>
+ <key>gain0</key>
+ <value>gain</value>
+ </param>
+ <param>
+ <key>ant0</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw0</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq1</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain1</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant1</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw1</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq2</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain2</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant2</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw2</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq3</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain3</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant3</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw3</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq4</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain4</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant4</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw4</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq5</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain5</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant5</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw5</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq6</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain6</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant6</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw6</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq7</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain7</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant7</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw7</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq8</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain8</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant8</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw8</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq9</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain9</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant9</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw9</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq10</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain10</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant10</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw10</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq11</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain11</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant11</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw11</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq12</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain12</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant12</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw12</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq13</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain13</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant13</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw13</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq14</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain14</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant14</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw14</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq15</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain15</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant15</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw15</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq16</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain16</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant16</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw16</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq17</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain17</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant17</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw17</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq18</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain18</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant18</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw18</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq19</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain19</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant19</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw19</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq20</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain20</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant20</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw20</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq21</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain21</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant21</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw21</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq22</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain22</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant22</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw22</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq23</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain23</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant23</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw23</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq24</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain24</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant24</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw24</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq25</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain25</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant25</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw25</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq26</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain26</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant26</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw26</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq27</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain27</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant27</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw27</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq28</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain28</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant28</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw28</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq29</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain29</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant29</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw29</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq30</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain30</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant30</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw30</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>center_freq31</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gain31</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ant31</key>
+ <value></value>
+ </param>
+ <param>
+ <key>bw31</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(336, 8)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>qtgui_freq_sink_x</key>
+ <param>
+ <key>id</key>
+ <value>qtgui_freq_sink_x_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>name</key>
+ <value>QT GUI Plot</value>
+ </param>
+ <param>
+ <key>fftsize</key>
+ <value>1024</value>
+ </param>
+ <param>
+ <key>wintype</key>
+ <value>firdes.WIN_BLACKMAN_hARRIS</value>
+ </param>
+ <param>
+ <key>fc</key>
+ <value>initial_fc</value>
+ </param>
+ <param>
+ <key>bw</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>autoscale</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>average</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>ymin</key>
+ <value>-140</value>
+ </param>
+ <param>
+ <key>ymax</key>
+ <value>10</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>update_time</key>
+ <value>0.10</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>label1</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color1</key>
+ <value>"blue"</value>
+ </param>
+ <param>
+ <key>alpha1</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label2</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color2</key>
+ <value>"red"</value>
+ </param>
+ <param>
+ <key>alpha2</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label3</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width3</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color3</key>
+ <value>"green"</value>
+ </param>
+ <param>
+ <key>alpha3</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label4</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width4</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color4</key>
+ <value>"black"</value>
+ </param>
+ <param>
+ <key>alpha4</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label5</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width5</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color5</key>
+ <value>"cyan"</value>
+ </param>
+ <param>
+ <key>alpha5</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label6</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width6</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color6</key>
+ <value>"magenta"</value>
+ </param>
+ <param>
+ <key>alpha6</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label7</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width7</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color7</key>
+ <value>"yellow"</value>
+ </param>
+ <param>
+ <key>alpha7</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label8</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width8</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color8</key>
+ <value>"dark red"</value>
+ </param>
+ <param>
+ <key>alpha8</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label9</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width9</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color9</key>
+ <value>"dark green"</value>
+ </param>
+ <param>
+ <key>alpha9</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label10</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width10</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color10</key>
+ <value>"dark blue"</value>
+ </param>
+ <param>
+ <key>alpha10</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(330, 104)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>180</value>
+ </param>
+ </block>
+ <connection>
+ <source_block_id>uhd_usrp_source_0</source_block_id>
+ <sink_block_id>qtgui_freq_sink_x_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>qtgui_freq_sink_x_0</source_block_id>
+ <sink_block_id>uhd_usrp_source_0</sink_block_id>
+ <source_key>freq</source_key>
+ <sink_key>command</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>qtgui_freq_sink_x_0</source_block_id>
+ <sink_block_id>qtgui_freq_sink_x_0</sink_block_id>
+ <source_key>freq</source_key>
+ <sink_key>freq</sink_key>
+ </connection>
+</flow_graph>
diff --git a/gr-uhd/examples/grc/uhd_rx_dpsk.grc b/gr-uhd/examples/grc/uhd_rx_dpsk.grc
index 8a9faa4b73..96b92c4484 100644
--- a/gr-uhd/examples/grc/uhd_rx_dpsk.grc
+++ b/gr-uhd/examples/grc/uhd_rx_dpsk.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Mon Mar 18 11:10:25 2013</timestamp>
+ <timestamp>Sat Jul 12 15:58:45 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -29,7 +29,7 @@
</param>
<param>
<key>generate_options</key>
- <value>wx_gui</value>
+ <value>qt_gui</value>
</param>
<param>
<key>category</key>
@@ -52,31 +52,12 @@
<value></value>
</param>
<param>
- <key>_coordinate</key>
- <value>(12, 9)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable</key>
- <param>
- <key>id</key>
- <value>samps_per_sym</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>value</key>
- <value>4</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(12, 88)</value>
+ <value>(-1, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -84,34 +65,26 @@
</param>
</block>
<block>
- <key>parameter</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>samp_rate</value>
+ <value>rolloff</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Sample Rate</value>
- </param>
- <param>
<key>value</key>
- <value>1e6</value>
+ <value>.35</value>
</param>
<param>
- <key>type</key>
- <value>eng_float</value>
- </param>
- <param>
- <key>short_id</key>
- <value>s</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(339, 11)</value>
+ <value>(570, 579)</value>
</param>
<param>
<key>_rotation</key>
@@ -119,34 +92,26 @@
</param>
</block>
<block>
- <key>parameter</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>freq</value>
+ <value>samps_per_sym</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Default Frequency</value>
- </param>
- <param>
<key>value</key>
- <value>2.45e9</value>
- </param>
- <param>
- <key>type</key>
- <value>eng_float</value>
+ <value>4</value>
</param>
<param>
- <key>short_id</key>
- <value>f</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(466, 11)</value>
+ <value>(881, -1)</value>
</param>
<param>
<key>_rotation</key>
@@ -154,34 +119,26 @@
</param>
</block>
<block>
- <key>parameter</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>gain</value>
+ <value>nfilts</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Default Gain</value>
- </param>
- <param>
<key>value</key>
- <value>0</value>
- </param>
- <param>
- <key>type</key>
- <value>eng_float</value>
+ <value>32</value>
</param>
<param>
- <key>short_id</key>
- <value>g</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(624, 14)</value>
+ <value>(657, 579)</value>
</param>
<param>
<key>_rotation</key>
@@ -215,8 +172,12 @@
<value>a</value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(186, 10)</value>
+ <value>(158, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -227,7 +188,7 @@
<key>parameter</key>
<param>
<key>id</key>
- <value>freq_offset</value>
+ <value>gain</value>
</param>
<param>
<key>_enabled</key>
@@ -235,7 +196,7 @@
</param>
<param>
<key>label</key>
- <value>Rx Frequency Offset</value>
+ <value>Default Gain</value>
</param>
<param>
<key>value</key>
@@ -247,93 +208,15 @@
</param>
<param>
<key>short_id</key>
- <value>o</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(748, 15)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable_slider</key>
- <param>
- <key>id</key>
- <value>tun_freq</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>label</key>
- <value>Freq (Hz)</value>
- </param>
- <param>
- <key>value</key>
- <value>freq</value>
- </param>
- <param>
- <key>min</key>
- <value>2.4e9</value>
- </param>
- <param>
- <key>max</key>
- <value>2.5e9</value>
- </param>
- <param>
- <key>num_steps</key>
- <value>100</value>
- </param>
- <param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
- </param>
- <param>
- <key>converver</key>
- <value>float_converter</value>
- </param>
- <param>
- <key>grid_pos</key>
- <value></value>
+ <value>g</value>
</param>
<param>
- <key>notebook</key>
+ <key>alias</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(12, 436)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>blocks_null_sink</key>
- <param>
- <key>id</key>
- <value>blocks_null_sink_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>byte</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(615, 144)</value>
+ <value>(596, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -341,10 +224,10 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>parameter</key>
<param>
<key>id</key>
- <value>timing_bw</value>
+ <value>freq</value>
</param>
<param>
<key>_enabled</key>
@@ -352,43 +235,27 @@
</param>
<param>
<key>label</key>
- <value>Timing Loop BW</value>
+ <value>Default Frequency</value>
</param>
<param>
<key>value</key>
- <value>6.28/100.0</value>
- </param>
- <param>
- <key>min</key>
- <value>0</value>
- </param>
- <param>
- <key>max</key>
- <value>1</value>
- </param>
- <param>
- <key>num_steps</key>
- <value>100</value>
- </param>
- <param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <value>2.45e9</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>type</key>
+ <value>eng_float</value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>short_id</key>
+ <value>f</value>
</param>
<param>
- <key>notebook</key>
+ <key>alias</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(604, 436)</value>
+ <value>(438, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -396,10 +263,10 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>parameter</key>
<param>
<key>id</key>
- <value>phase_bw</value>
+ <value>samp_rate</value>
</param>
<param>
<key>_enabled</key>
@@ -407,43 +274,27 @@
</param>
<param>
<key>label</key>
- <value>Phase Loop BW</value>
+ <value>Sample Rate</value>
</param>
<param>
<key>value</key>
- <value>6.28/100.0</value>
- </param>
- <param>
- <key>min</key>
- <value>0</value>
- </param>
- <param>
- <key>max</key>
- <value>1.0</value>
- </param>
- <param>
- <key>num_steps</key>
- <value>100</value>
- </param>
- <param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <value>1e6</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>type</key>
+ <value>eng_float</value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>short_id</key>
+ <value>s</value>
</param>
<param>
- <key>notebook</key>
+ <key>alias</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(461, 436)</value>
+ <value>(311, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -451,78 +302,38 @@
</param>
</block>
<block>
- <key>wxgui_constellationsink2</key>
+ <key>parameter</key>
<param>
<key>id</key>
- <value>wxgui_constellationsink2_0</value>
+ <value>freq_offset</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>title</key>
- <value>Constellation Plot</value>
- </param>
- <param>
- <key>samp_rate</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>frame_rate</key>
- <value>5</value>
- </param>
- <param>
- <key>const_size</key>
- <value>2048</value>
- </param>
- <param>
- <key>M</key>
- <value>4</value>
+ <key>label</key>
+ <value>Rx Frequency Offset</value>
</param>
<param>
- <key>theta</key>
+ <key>value</key>
<value>0</value>
</param>
<param>
- <key>loop_bw</key>
- <value>6.28/100.0</value>
- </param>
- <param>
- <key>fmax</key>
- <value>0.06</value>
- </param>
- <param>
- <key>mu</key>
- <value>0.5</value>
- </param>
- <param>
- <key>gain_mu</key>
- <value>0.005</value>
- </param>
- <param>
- <key>symbol_rate</key>
- <value>samp_rate/samps_per_sym</value>
- </param>
- <param>
- <key>omega_limit</key>
- <value>0.005</value>
- </param>
- <param>
- <key>win_size</key>
- <value></value>
+ <key>type</key>
+ <value>eng_float</value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>short_id</key>
+ <value>o</value>
</param>
<param>
- <key>notebook</key>
+ <key>alias</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(931, 313)</value>
+ <value>(720, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -530,90 +341,58 @@
</param>
</block>
<block>
- <key>wxgui_fftsink2</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>wxgui_fftsink2_0</value>
+ <value>tun_freq</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>tun_freq</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>10</value>
- </param>
- <param>
- <key>ref_scale</key>
- <value>2.0</value>
+ <key>label</key>
+ <value>UHD Freq (Hz)</value>
</param>
<param>
- <key>fft_size</key>
- <value>1024</value>
+ <key>value</key>
+ <value>2.45e9</value>
</param>
<param>
- <key>fft_rate</key>
- <value>30</value>
+ <key>start</key>
+ <value>2.4e9</value>
</param>
<param>
- <key>peak_hold</key>
- <value>False</value>
+ <key>stop</key>
+ <value>2.5e9</value>
</param>
<param>
- <key>average</key>
- <value>False</value>
+ <key>step</key>
+ <value>1</value>
</param>
<param>
- <key>avg_alpha</key>
- <value>0</value>
+ <key>widget</key>
+ <value>counter_slider</value>
</param>
<param>
- <key>win</key>
- <value>None</value>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
</param>
<param>
- <key>win_size</key>
- <value></value>
+ <key>min_len</key>
+ <value>200</value>
</param>
<param>
- <key>grid_pos</key>
+ <key>gui_hint</key>
<value></value>
</param>
<param>
- <key>notebook</key>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>freqvar</key>
- <value>None</value>
- </param>
- <param>
<key>_coordinate</key>
- <value>(710, 236)</value>
+ <value>(6, 448)</value>
</param>
<param>
<key>_rotation</key>
@@ -621,66 +400,7 @@
</param>
</block>
<block>
- <key>digital_dxpsk_demod</key>
- <param>
- <key>id</key>
- <value>digital_dxpsk_demod_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>type</key>
- <value>dqpsk</value>
- </param>
- <param>
- <key>samples_per_symbol</key>
- <value>samps_per_sym</value>
- </param>
- <param>
- <key>excess_bw</key>
- <value>0.35</value>
- </param>
- <param>
- <key>freq_bw</key>
- <value>6.28/100.0</value>
- </param>
- <param>
- <key>phase_bw</key>
- <value>6.28/100.0</value>
- </param>
- <param>
- <key>timing_bw</key>
- <value>6.28/100.0</value>
- </param>
- <param>
- <key>mod_code</key>
- <value>"gray"</value>
- </param>
- <param>
- <key>verbose</key>
- <value>False</value>
- </param>
- <param>
- <key>log</key>
- <value>False</value>
- </param>
- <param>
- <key>sync_out</key>
- <value>False</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(303, 154)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable_slider</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
<value>rx_freq_off</value>
@@ -691,43 +411,47 @@
</param>
<param>
<key>label</key>
- <value>RX Freq Offset (Hz)</value>
+ <value>Rx Freq Offset (Hz)</value>
</param>
<param>
<key>value</key>
- <value>freq_offset</value>
+ <value>0</value>
</param>
<param>
- <key>min</key>
+ <key>start</key>
<value>-100e3</value>
</param>
<param>
- <key>max</key>
- <value>+100e3</value>
+ <key>stop</key>
+ <value>100e3</value>
</param>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>step</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>min_len</key>
+ <value>200</value>
</param>
<param>
- <key>grid_pos</key>
+ <key>gui_hint</key>
<value></value>
</param>
<param>
- <key>notebook</key>
+ <key>alias</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(149, 437)</value>
+ <value>(134, 448)</value>
</param>
<param>
<key>_rotation</key>
@@ -735,7 +459,7 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
<value>tun_gain</value>
@@ -746,43 +470,47 @@
</param>
<param>
<key>label</key>
- <value>UHD Gain</value>
+ <value>UHD Tx Gain</value>
</param>
<param>
<key>value</key>
- <value>gain</value>
+ <value>0</value>
</param>
<param>
- <key>min</key>
+ <key>start</key>
<value>0</value>
</param>
<param>
- <key>max</key>
+ <key>stop</key>
<value>20</value>
</param>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>step</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>min_len</key>
+ <value>200</value>
</param>
<param>
- <key>grid_pos</key>
+ <key>gui_hint</key>
<value></value>
</param>
<param>
- <key>notebook</key>
+ <key>alias</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(306, 438)</value>
+ <value>(286, 447)</value>
</param>
<param>
<key>_rotation</key>
@@ -812,10 +540,18 @@
<value></value>
</param>
<param>
+ <key>stream_chans</key>
+ <value>[]</value>
+ </param>
+ <param>
<key>dev_addr</key>
<value>address</value>
</param>
<param>
+ <key>dev_args</key>
+ <value>""</value>
+ </param>
+ <param>
<key>sync</key>
<value></value>
</param>
@@ -1444,8 +1180,381 @@
<value>0</value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(0, 143)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_null_sink</key>
+ <param>
+ <key>id</key>
+ <value>blocks_null_sink_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>num_inputs</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>bus_conns</key>
+ <value>[[0,],]</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(620, 168)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>digital_dxpsk_demod</key>
+ <param>
+ <key>id</key>
+ <value>digital_dxpsk_demod_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>dqpsk</value>
+ </param>
+ <param>
+ <key>samples_per_symbol</key>
+ <value>samps_per_sym</value>
+ </param>
+ <param>
+ <key>excess_bw</key>
+ <value>0.35</value>
+ </param>
+ <param>
+ <key>freq_bw</key>
+ <value>6.28/100.0</value>
+ </param>
+ <param>
+ <key>phase_bw</key>
+ <value>6.28/100.0</value>
+ </param>
+ <param>
+ <key>timing_bw</key>
+ <value>6.28/100.0</value>
+ </param>
+ <param>
+ <key>mod_code</key>
+ <value>"gray"</value>
+ </param>
+ <param>
+ <key>verbose</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>log</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>sync_out</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(325, 112)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>qtgui_freq_sink_x</key>
+ <param>
+ <key>id</key>
+ <value>qtgui_freq_sink_x_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>name</key>
+ <value>""</value>
+ </param>
+ <param>
+ <key>fftsize</key>
+ <value>1024</value>
+ </param>
+ <param>
+ <key>wintype</key>
+ <value>firdes.WIN_BLACKMAN_hARRIS</value>
+ </param>
+ <param>
+ <key>fc</key>
+ <value>tun_freq</value>
+ </param>
+ <param>
+ <key>bw</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>autoscale</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>average</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>ymin</key>
+ <value>-140</value>
+ </param>
+ <param>
+ <key>ymax</key>
+ <value>10</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>update_time</key>
+ <value>0.10</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>label1</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color1</key>
+ <value>"blue"</value>
+ </param>
+ <param>
+ <key>alpha1</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label2</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color2</key>
+ <value>"red"</value>
+ </param>
+ <param>
+ <key>alpha2</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label3</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width3</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color3</key>
+ <value>"green"</value>
+ </param>
+ <param>
+ <key>alpha3</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label4</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width4</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color4</key>
+ <value>"black"</value>
+ </param>
+ <param>
+ <key>alpha4</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label5</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width5</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color5</key>
+ <value>"cyan"</value>
+ </param>
+ <param>
+ <key>alpha5</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label6</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width6</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color6</key>
+ <value>"magenta"</value>
+ </param>
+ <param>
+ <key>alpha6</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label7</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width7</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color7</key>
+ <value>"yellow"</value>
+ </param>
+ <param>
+ <key>alpha7</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label8</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width8</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color8</key>
+ <value>"dark red"</value>
+ </param>
+ <param>
+ <key>alpha8</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label9</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width9</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color9</key>
+ <value>"dark green"</value>
+ </param>
+ <param>
+ <key>alpha9</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label10</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width10</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color10</key>
+ <value>"dark blue"</value>
+ </param>
+ <param>
+ <key>alpha10</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(18, 276)</value>
+ <value>(340, 283)</value>
</param>
<param>
<key>_rotation</key>
@@ -1466,13 +1575,7 @@
</connection>
<connection>
<source_block_id>uhd_usrp_source_0</source_block_id>
- <sink_block_id>wxgui_constellationsink2_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>uhd_usrp_source_0</source_block_id>
- <sink_block_id>wxgui_fftsink2_0</sink_block_id>
+ <sink_block_id>qtgui_freq_sink_x_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
diff --git a/gr-uhd/examples/grc/uhd_two_tone_loopback.grc b/gr-uhd/examples/grc/uhd_two_tone_loopback.grc
index 1884dd3ebf..f164d8522a 100644
--- a/gr-uhd/examples/grc/uhd_two_tone_loopback.grc
+++ b/gr-uhd/examples/grc/uhd_two_tone_loopback.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Sat Nov 10 14:55:26 2012</timestamp>
+ <timestamp>Sat Jul 12 14:48:02 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -29,7 +29,7 @@
</param>
<param>
<key>generate_options</key>
- <value>wx_gui</value>
+ <value>qt_gui</value>
</param>
<param>
<key>category</key>
@@ -52,8 +52,12 @@
<value></value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(10, 10)</value>
+ <value>(1, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -64,7 +68,7 @@
<key>parameter</key>
<param>
<key>id</key>
- <value>tx_gain</value>
+ <value>samp_rate</value>
</param>
<param>
<key>_enabled</key>
@@ -72,7 +76,46 @@
</param>
<param>
<key>label</key>
- <value>Default TX Gain</value>
+ <value>Sample Rate</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>500e3</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>eng_float</value>
+ </param>
+ <param>
+ <key>short_id</key>
+ <value>s</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(523, 0)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>parameter</key>
+ <param>
+ <key>id</key>
+ <value>rx_gain</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>Default RX Gain</value>
</param>
<param>
<key>value</key>
@@ -87,8 +130,51 @@
<value></value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(999, 11)</value>
+ <value>(1123, 0)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>parameter</key>
+ <param>
+ <key>id</key>
+ <value>freq_offset</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>Rx Frequency Offset</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>eng_float</value>
+ </param>
+ <param>
+ <key>short_id</key>
+ <value>o</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(804, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -122,8 +208,12 @@
<value>f</value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(665, 11)</value>
+ <value>(649, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -134,7 +224,7 @@
<key>parameter</key>
<param>
<key>id</key>
- <value>freq_offset</value>
+ <value>tx_gain</value>
</param>
<param>
<key>_enabled</key>
@@ -142,7 +232,7 @@
</param>
<param>
<key>label</key>
- <value>Rx Frequency Offset</value>
+ <value>Default TX Gain</value>
</param>
<param>
<key>value</key>
@@ -154,11 +244,15 @@
</param>
<param>
<key>short_id</key>
- <value>o</value>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(820, 11)</value>
+ <value>(983, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -169,7 +263,7 @@
<key>parameter</key>
<param>
<key>id</key>
- <value>address1</value>
+ <value>address0</value>
</param>
<param>
<key>_enabled</key>
@@ -177,11 +271,11 @@
</param>
<param>
<key>label</key>
- <value>IP Address, Dev 1</value>
+ <value>IP Address, Dev 0</value>
</param>
<param>
<key>value</key>
- <value>addr=192.168.11.2</value>
+ <value>addr=192.168.10.2</value>
</param>
<param>
<key>type</key>
@@ -192,8 +286,12 @@
<value></value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(353, 14)</value>
+ <value>(177, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -204,7 +302,7 @@
<key>parameter</key>
<param>
<key>id</key>
- <value>address0</value>
+ <value>address1</value>
</param>
<param>
<key>_enabled</key>
@@ -212,7 +310,7 @@
</param>
<param>
<key>label</key>
- <value>IP Address, Dev 0</value>
+ <value>IP Address, Dev 1</value>
</param>
<param>
<key>value</key>
@@ -227,8 +325,12 @@
<value></value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(193, 14)</value>
+ <value>(337, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -236,10 +338,10 @@
</param>
</block>
<block>
- <key>uhd_usrp_sink</key>
+ <key>uhd_usrp_source</key>
<param>
<key>id</key>
- <value>uhd_usrp_sink_0</value>
+ <value>uhd_usrp_source_0</value>
</param>
<param>
<key>_enabled</key>
@@ -258,8 +360,16 @@
<value></value>
</param>
<param>
+ <key>stream_chans</key>
+ <value>[]</value>
+ </param>
+ <param>
<key>dev_addr</key>
- <value>address0</value>
+ <value>address1</value>
+ </param>
+ <param>
+ <key>dev_args</key>
+ <value>""</value>
</param>
<param>
<key>sync</key>
@@ -283,7 +393,7 @@
</param>
<param>
<key>sd_spec0</key>
- <value></value>
+ <value>B:0</value>
</param>
<param>
<key>clock_source1</key>
@@ -890,8 +1000,24 @@
<value>0</value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(669, 178)</value>
+ <value>(813, 281)</value>
</param>
<param>
<key>_rotation</key>
@@ -899,34 +1025,50 @@
</param>
</block>
<block>
- <key>parameter</key>
+ <key>analog_noise_source_x</key>
<param>
<key>id</key>
- <value>rx_gain</value>
+ <value>analog_noise_source_x_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Default RX Gain</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>value</key>
- <value>0</value>
+ <key>noise_type</key>
+ <value>analog.GR_GAUSSIAN</value>
</param>
<param>
- <key>type</key>
- <value>eng_float</value>
+ <key>amp</key>
+ <value>noise_ampl</value>
</param>
<param>
- <key>short_id</key>
+ <key>seed</key>
+ <value>-42</value>
+ </param>
+ <param>
+ <key>alias</key>
<value></value>
</param>
<param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(1139, 12)</value>
+ <value>(551, 324)</value>
</param>
<param>
<key>_rotation</key>
@@ -934,54 +1076,58 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>analog_sig_source_x</key>
<param>
<key>id</key>
- <value>tone1</value>
+ <value>analog_sig_source_x_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Tone 1</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>value</key>
- <value>50e3</value>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>min</key>
- <value>-samp_rate/2</value>
+ <key>waveform</key>
+ <value>analog.GR_COS_WAVE</value>
</param>
<param>
- <key>max</key>
- <value>samp_rate/2</value>
+ <key>freq</key>
+ <value>tone1</value>
+ </param>
+ <param>
+ <key>amp</key>
+ <value>tone_ampl</value>
</param>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>offset</key>
+ <value>0</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>grid_pos</key>
- <value>0, 0, 1, 4</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(161, 484)</value>
+ <value>(541, 98)</value>
</param>
<param>
<key>_rotation</key>
@@ -989,54 +1135,58 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>analog_sig_source_x</key>
<param>
<key>id</key>
- <value>tone2</value>
+ <value>analog_sig_source_x_1</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Tone 2</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>value</key>
- <value>75e3</value>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>min</key>
- <value>-samp_rate/2</value>
+ <key>waveform</key>
+ <value>analog.GR_COS_WAVE</value>
</param>
<param>
- <key>max</key>
- <value>samp_rate/2</value>
+ <key>freq</key>
+ <value>tone2</value>
</param>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>amp</key>
+ <value>tone_ampl</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>offset</key>
+ <value>0</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>grid_pos</key>
- <value>0, 4, 1, 4</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(308, 483)</value>
+ <value>(542, 209)</value>
</param>
<param>
<key>_rotation</key>
@@ -1044,54 +1194,46 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>blocks_add_xx</key>
<param>
<key>id</key>
- <value>tun_tx_gain</value>
+ <value>blocks_add_xx</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>UHD TX Gain</value>
- </param>
- <param>
- <key>value</key>
- <value>tx_gain</value>
- </param>
- <param>
- <key>min</key>
- <value>0</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>max</key>
- <value>20</value>
+ <key>num_inputs</key>
+ <value>3</value>
</param>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(655, 486)</value>
+ <value>(806, 134)</value>
</param>
<param>
<key>_rotation</key>
@@ -1099,109 +1241,238 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>qtgui_freq_sink_x</key>
<param>
<key>id</key>
- <value>tun_freq</value>
+ <value>qtgui_freq_sink_x_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Freq (Hz)</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>value</key>
- <value>freq</value>
+ <key>name</key>
+ <value>""</value>
</param>
<param>
- <key>min</key>
- <value>2.4e9</value>
+ <key>fftsize</key>
+ <value>1024</value>
</param>
<param>
- <key>max</key>
- <value>2.5e9</value>
+ <key>wintype</key>
+ <value>firdes.WIN_BLACKMAN_hARRIS</value>
+ </param>
+ <param>
+ <key>fc</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>bw</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>autoscale</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>average</key>
+ <value>1.0</value>
</param>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>ymin</key>
+ <value>-140</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>ymax</key>
+ <value>10</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>1</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>update_time</key>
+ <value>0.10</value>
</param>
<param>
- <key>grid_pos</key>
+ <key>gui_hint</key>
+ <value>2,0,1,4</value>
+ </param>
+ <param>
+ <key>label1</key>
<value></value>
</param>
<param>
- <key>notebook</key>
+ <key>width1</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color1</key>
+ <value>"blue"</value>
+ </param>
+ <param>
+ <key>alpha1</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label2</key>
<value></value>
</param>
<param>
- <key>_coordinate</key>
- <value>(514, 487)</value>
+ <key>width2</key>
+ <value>1</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>color2</key>
+ <value>"red"</value>
</param>
- </block>
- <block>
- <key>variable_slider</key>
<param>
- <key>id</key>
- <value>tun_rx_gain</value>
+ <key>alpha2</key>
+ <value>1.0</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>label3</key>
+ <value></value>
</param>
<param>
- <key>label</key>
- <value>UHD RX Gain</value>
+ <key>width3</key>
+ <value>1</value>
</param>
<param>
- <key>value</key>
- <value>rx_gain</value>
+ <key>color3</key>
+ <value>"green"</value>
</param>
<param>
- <key>min</key>
- <value>0</value>
+ <key>alpha3</key>
+ <value>1.0</value>
</param>
<param>
- <key>max</key>
- <value>20</value>
+ <key>label4</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width4</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color4</key>
+ <value>"black"</value>
+ </param>
+ <param>
+ <key>alpha4</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label5</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width5</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color5</key>
+ <value>"cyan"</value>
+ </param>
+ <param>
+ <key>alpha5</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label6</key>
+ <value></value>
</param>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>width6</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color6</key>
+ <value>"magenta"</value>
+ </param>
+ <param>
+ <key>alpha6</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label7</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width7</key>
+ <value>1</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>color7</key>
+ <value>"yellow"</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>alpha7</key>
+ <value>1.0</value>
</param>
<param>
- <key>grid_pos</key>
+ <key>label8</key>
<value></value>
</param>
<param>
- <key>notebook</key>
+ <key>width8</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color8</key>
+ <value>"dark red"</value>
+ </param>
+ <param>
+ <key>alpha8</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label9</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width9</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color9</key>
+ <value>"dark green"</value>
+ </param>
+ <param>
+ <key>alpha9</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label10</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width10</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color10</key>
+ <value>"dark blue"</value>
+ </param>
+ <param>
+ <key>alpha10</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(781, 487)</value>
+ <value>(1086, 281)</value>
</param>
<param>
<key>_rotation</key>
@@ -1209,10 +1480,10 @@
</param>
</block>
<block>
- <key>uhd_usrp_source</key>
+ <key>uhd_usrp_sink</key>
<param>
<key>id</key>
- <value>uhd_usrp_source_0</value>
+ <value>uhd_usrp_sink_0</value>
</param>
<param>
<key>_enabled</key>
@@ -1231,8 +1502,16 @@
<value></value>
</param>
<param>
+ <key>stream_chans</key>
+ <value>[]</value>
+ </param>
+ <param>
<key>dev_addr</key>
- <value>address1</value>
+ <value>address0</value>
+ </param>
+ <param>
+ <key>dev_args</key>
+ <value>""</value>
</param>
<param>
<key>sync</key>
@@ -1256,7 +1535,7 @@
</param>
<param>
<key>sd_spec0</key>
- <value></value>
+ <value>A:0</value>
</param>
<param>
<key>clock_source1</key>
@@ -1863,8 +2142,20 @@
<value>0</value>
</param>
<param>
+ <key>len_tag_name</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(672, 320)</value>
+ <value>(949, 140)</value>
</param>
<param>
<key>_rotation</key>
@@ -1872,10 +2163,10 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>tone_ampl</value>
+ <value>tun_freq</value>
</param>
<param>
<key>_enabled</key>
@@ -1883,43 +2174,47 @@
</param>
<param>
<key>label</key>
- <value>Tone Ampl</value>
+ <value>UHD Freq (Hz)</value>
</param>
<param>
<key>value</key>
- <value>0.15</value>
+ <value>2.45e9</value>
</param>
<param>
- <key>min</key>
- <value>0</value>
+ <key>start</key>
+ <value>2.4e9</value>
+ </param>
+ <param>
+ <key>stop</key>
+ <value>2.5e9</value>
</param>
<param>
- <key>max</key>
+ <key>step</key>
<value>1</value>
</param>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>widget</key>
+ <value>counter_slider</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_VERTICAL</value>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>min_len</key>
+ <value>200</value>
</param>
<param>
- <key>grid_pos</key>
- <value>1, 0, 2, 1</value>
+ <key>gui_hint</key>
+ <value>3,0,1,4</value>
</param>
<param>
- <key>notebook</key>
+ <key>alias</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(14, 485)</value>
+ <value>(80, 431)</value>
</param>
<param>
<key>_rotation</key>
@@ -1927,10 +2222,10 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>noise_ampl</value>
+ <value>tone1</value>
</param>
<param>
<key>_enabled</key>
@@ -1938,43 +2233,47 @@
</param>
<param>
<key>label</key>
- <value>Noise Ampl</value>
+ <value>Tone 1</value>
</param>
<param>
<key>value</key>
- <value>0.1</value>
+ <value>samp_rate/4</value>
</param>
<param>
- <key>min</key>
- <value>0</value>
+ <key>start</key>
+ <value>-samp_rate/2</value>
+ </param>
+ <param>
+ <key>stop</key>
+ <value>samp_rate/2</value>
</param>
<param>
- <key>max</key>
+ <key>step</key>
<value>1</value>
</param>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>widget</key>
+ <value>counter_slider</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_VERTICAL</value>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>min_len</key>
+ <value>200</value>
</param>
<param>
- <key>grid_pos</key>
- <value>1, 1, 2, 1</value>
+ <key>gui_hint</key>
+ <value>0,0,1,2</value>
</param>
<param>
- <key>notebook</key>
+ <key>alias</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(15, 335)</value>
+ <value>(1, 131)</value>
</param>
<param>
<key>_rotation</key>
@@ -1982,125 +2281,117 @@
</param>
</block>
<block>
- <key>wxgui_fftsink2</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>wxgui_fftsink2</value>
+ <value>noise_ampl</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>
+ <key>label</key>
+ <value>Noise Amplitude</value>
</param>
<param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>value</key>
+ <value>0.1</value>
</param>
<param>
- <key>baseband_freq</key>
+ <key>start</key>
<value>0</value>
</param>
<param>
- <key>y_per_div</key>
- <value>10</value>
+ <key>stop</key>
+ <value>1</value>
</param>
<param>
- <key>y_divs</key>
- <value>10</value>
+ <key>step</key>
+ <value>.001</value>
</param>
<param>
- <key>ref_level</key>
- <value>0</value>
+ <key>widget</key>
+ <value>counter_slider</value>
</param>
<param>
- <key>ref_scale</key>
- <value>2.0</value>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
</param>
<param>
- <key>fft_size</key>
- <value>512*2</value>
+ <key>min_len</key>
+ <value>200</value>
</param>
<param>
- <key>fft_rate</key>
- <value>15</value>
+ <key>gui_hint</key>
+ <value>1,0,1,2</value>
</param>
<param>
- <key>peak_hold</key>
- <value>False</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>average</key>
- <value>False</value>
+ <key>_coordinate</key>
+ <value>(0, 283)</value>
</param>
<param>
- <key>avg_alpha</key>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable_qtgui_range</key>
<param>
- <key>win</key>
- <value>window.blackmanharris</value>
- </param>
- <param>
- <key>win_size</key>
- <value></value>
+ <key>id</key>
+ <value>tun_tx_gain</value>
</param>
<param>
- <key>grid_pos</key>
- <value>1, 2, 2, 4</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>label</key>
+ <value>UHD Tx Gain</value>
</param>
<param>
- <key>freqvar</key>
- <value>None</value>
+ <key>value</key>
+ <value>0</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(1114, 264)</value>
+ <key>start</key>
+ <value>0</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>stop</key>
+ <value>20</value>
</param>
- </block>
- <block>
- <key>parameter</key>
<param>
- <key>id</key>
- <value>samp_rate</value>
+ <key>step</key>
+ <value>1</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>widget</key>
+ <value>counter_slider</value>
</param>
<param>
- <key>label</key>
- <value>Sample Rate</value>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
</param>
<param>
- <key>value</key>
- <value>500e3</value>
+ <key>min_len</key>
+ <value>200</value>
</param>
<param>
- <key>type</key>
- <value>eng_float</value>
+ <key>gui_hint</key>
+ <value>4,0,1,2</value>
</param>
<param>
- <key>short_id</key>
- <value>s</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(539, 11)</value>
+ <value>(-1, 573)</value>
</param>
<param>
<key>_rotation</key>
@@ -2108,42 +2399,58 @@
</param>
</block>
<block>
- <key>analog_sig_source_x</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>analog_sig_source_x_0</value>
+ <value>tone2</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
+ <key>label</key>
+ <value>Tone 2</value>
</param>
<param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>value</key>
+ <value>samp_rate/5</value>
</param>
<param>
- <key>waveform</key>
- <value>analog.GR_COS_WAVE</value>
+ <key>start</key>
+ <value>-samp_rate/2</value>
</param>
<param>
- <key>freq</key>
- <value>tone1</value>
+ <key>stop</key>
+ <value>samp_rate/2</value>
</param>
<param>
- <key>amp</key>
- <value>tone_ampl</value>
+ <key>step</key>
+ <value>1</value>
</param>
<param>
- <key>offset</key>
- <value>0</value>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value>0,2,1,2</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(264, 136)</value>
+ <value>(126, 132)</value>
</param>
<param>
<key>_rotation</key>
@@ -2151,42 +2458,58 @@
</param>
</block>
<block>
- <key>analog_sig_source_x</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>analog_sig_source_x_1</value>
+ <value>tone_ampl</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
+ <key>label</key>
+ <value>Tone Amplitude</value>
</param>
<param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>value</key>
+ <value>0.15</value>
</param>
<param>
- <key>waveform</key>
- <value>analog.GR_COS_WAVE</value>
+ <key>start</key>
+ <value>0</value>
</param>
<param>
- <key>freq</key>
- <value>tone2</value>
+ <key>stop</key>
+ <value>1</value>
</param>
<param>
- <key>amp</key>
- <value>tone_ampl</value>
+ <key>step</key>
+ <value>.001</value>
</param>
<param>
- <key>offset</key>
- <value>0</value>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value>1,2,1,2</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(265, 247)</value>
+ <value>(152, 286)</value>
</param>
<param>
<key>_rotation</key>
@@ -2194,65 +2517,58 @@
</param>
</block>
<block>
- <key>blocks_add_xx</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>blocks_add_xx</value>
+ <value>tun_rx_gain</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>num_inputs</key>
- <value>3</value>
+ <key>label</key>
+ <value>UHD Rx Gain</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>value</key>
+ <value>0</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(529, 172)</value>
+ <key>start</key>
+ <value>0</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>stop</key>
+ <value>20</value>
</param>
- </block>
- <block>
- <key>analog_noise_source_x</key>
<param>
- <key>id</key>
- <value>analog_noise_source_x_0</value>
+ <key>step</key>
+ <value>1</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>widget</key>
+ <value>counter_slider</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
</param>
<param>
- <key>noise_type</key>
- <value>analog.GR_GAUSSIAN</value>
+ <key>min_len</key>
+ <value>200</value>
</param>
<param>
- <key>amp</key>
- <value>noise_ampl</value>
+ <key>gui_hint</key>
+ <value>4,2,1,2</value>
</param>
<param>
- <key>seed</key>
- <value>-42</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(288, 359)</value>
+ <value>(120, 571)</value>
</param>
<param>
<key>_rotation</key>
@@ -2260,14 +2576,8 @@
</param>
</block>
<connection>
- <source_block_id>blocks_add_xx</source_block_id>
- <sink_block_id>uhd_usrp_sink_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
<source_block_id>uhd_usrp_source_0</source_block_id>
- <sink_block_id>wxgui_fftsink2</sink_block_id>
+ <sink_block_id>qtgui_freq_sink_x_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
@@ -2289,4 +2599,10 @@
<source_key>0</source_key>
<sink_key>2</sink_key>
</connection>
+ <connection>
+ <source_block_id>blocks_add_xx</source_block_id>
+ <sink_block_id>uhd_usrp_sink_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
</flow_graph>
diff --git a/gr-uhd/examples/grc/uhd_tx_dpsk.grc b/gr-uhd/examples/grc/uhd_tx_dpsk.grc
index 5d57617673..815d87b742 100644
--- a/gr-uhd/examples/grc/uhd_tx_dpsk.grc
+++ b/gr-uhd/examples/grc/uhd_tx_dpsk.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Mon Mar 18 11:11:06 2013</timestamp>
+ <timestamp>Sat Jul 12 14:07:03 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -29,7 +29,7 @@
</param>
<param>
<key>generate_options</key>
- <value>wx_gui</value>
+ <value>qt_gui</value>
</param>
<param>
<key>category</key>
@@ -52,8 +52,12 @@
<value></value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(10, 10)</value>
+ <value>(-1, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -75,8 +79,12 @@
<value>4</value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(10, 100)</value>
+ <value>(-1, 84)</value>
</param>
<param>
<key>_rotation</key>
@@ -84,10 +92,10 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>parameter</key>
<param>
<key>id</key>
- <value>ampl</value>
+ <value>gain</value>
</param>
<param>
<key>_enabled</key>
@@ -95,43 +103,66 @@
</param>
<param>
<key>label</key>
- <value>Amplitude</value>
+ <value>Default Gain</value>
</param>
<param>
<key>value</key>
- <value>.1</value>
+ <value>0</value>
</param>
<param>
- <key>min</key>
+ <key>type</key>
+ <value>eng_float</value>
+ </param>
+ <param>
+ <key>short_id</key>
+ <value>g</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(589, 0)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>parameter</key>
<param>
- <key>max</key>
- <value>1</value>
+ <key>id</key>
+ <value>freq</value>
</param>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>label</key>
+ <value>Default Frequency</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>value</key>
+ <value>2.45e9</value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>type</key>
+ <value>eng_float</value>
+ </param>
+ <param>
+ <key>short_id</key>
+ <value>f</value>
</param>
<param>
- <key>notebook</key>
+ <key>alias</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(7, 299)</value>
+ <value>(433, 1)</value>
</param>
<param>
<key>_rotation</key>
@@ -165,8 +196,12 @@
<value>s</value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(334, 15)</value>
+ <value>(304, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -177,7 +212,7 @@
<key>parameter</key>
<param>
<key>id</key>
- <value>freq</value>
+ <value>address</value>
</param>
<param>
<key>_enabled</key>
@@ -185,23 +220,27 @@
</param>
<param>
<key>label</key>
- <value>Default Frequency</value>
+ <value>IP Address</value>
</param>
<param>
<key>value</key>
- <value>2.45e9</value>
+ <value>addr=192.168.10.2</value>
</param>
<param>
<key>type</key>
- <value>eng_float</value>
+ <value>string</value>
</param>
<param>
<key>short_id</key>
- <value>f</value>
+ <value>a</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(463, 17)</value>
+ <value>(147, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -209,10 +248,10 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>tun_gain</value>
+ <value>ampl</value>
</param>
<param>
<key>_enabled</key>
@@ -220,43 +259,47 @@
</param>
<param>
<key>label</key>
- <value>UHD Gain</value>
+ <value>Amplitude</value>
</param>
<param>
<key>value</key>
- <value>gain</value>
+ <value>0.1</value>
</param>
<param>
- <key>min</key>
+ <key>start</key>
<value>0</value>
</param>
<param>
- <key>max</key>
- <value>20</value>
+ <key>stop</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>step</key>
+ <value>0.01</value>
</param>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>widget</key>
+ <value>counter_slider</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>min_len</key>
+ <value>200</value>
</param>
<param>
- <key>grid_pos</key>
+ <key>gui_hint</key>
<value></value>
</param>
<param>
- <key>notebook</key>
+ <key>alias</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(151, 441)</value>
+ <value>(-1, 307)</value>
</param>
<param>
<key>_rotation</key>
@@ -264,7 +307,7 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
<value>tun_freq</value>
@@ -275,43 +318,47 @@
</param>
<param>
<key>label</key>
- <value>Freq (Hz)</value>
+ <value>UHD Freq (Hz)</value>
</param>
<param>
<key>value</key>
- <value>freq</value>
+ <value>2.45e9</value>
</param>
<param>
- <key>min</key>
+ <key>start</key>
<value>2.4e9</value>
</param>
<param>
- <key>max</key>
+ <key>stop</key>
<value>2.5e9</value>
</param>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>step</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>min_len</key>
+ <value>200</value>
</param>
<param>
- <key>grid_pos</key>
+ <key>gui_hint</key>
<value></value>
</param>
<param>
- <key>notebook</key>
+ <key>alias</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(7, 441)</value>
+ <value>(0, 436)</value>
</param>
<param>
<key>_rotation</key>
@@ -319,38 +366,58 @@
</param>
</block>
<block>
- <key>analog_random_source_x</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>analog_random_source_x_0</value>
+ <value>tun_gain</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>byte</value>
+ <key>label</key>
+ <value>UHD Tx Gain</value>
</param>
<param>
- <key>min</key>
+ <key>value</key>
<value>0</value>
</param>
<param>
- <key>max</key>
- <value>2**8</value>
+ <key>start</key>
+ <value>0</value>
</param>
<param>
- <key>num_samps</key>
- <value>1000</value>
+ <key>stop</key>
+ <value>20</value>
</param>
<param>
- <key>repeat</key>
- <value>True</value>
+ <key>step</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(177, 162)</value>
+ <value>(137, 435)</value>
</param>
<param>
<key>_rotation</key>
@@ -358,10 +425,10 @@
</param>
</block>
<block>
- <key>digital_dxpsk_mod</key>
+ <key>analog_random_source_x</key>
<param>
<key>id</key>
- <value>digital_dxpsk_mod_0</value>
+ <value>analog_random_source_x_0</value>
</param>
<param>
<key>_enabled</key>
@@ -369,31 +436,43 @@
</param>
<param>
<key>type</key>
- <value>dqpsk</value>
+ <value>byte</value>
</param>
<param>
- <key>samples_per_symbol</key>
- <value>samps_per_sym</value>
+ <key>min</key>
+ <value>0</value>
</param>
<param>
- <key>excess_bw</key>
- <value>0.35</value>
+ <key>max</key>
+ <value>2**8</value>
</param>
<param>
- <key>mod_code</key>
- <value>"gray"</value>
+ <key>num_samps</key>
+ <value>1000</value>
</param>
<param>
- <key>verbose</key>
- <value>False</value>
+ <key>repeat</key>
+ <value>True</value>
</param>
<param>
- <key>log</key>
- <value>False</value>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(366, 162)</value>
+ <value>(-1, 171)</value>
</param>
<param>
<key>_rotation</key>
@@ -401,69 +480,58 @@
</param>
</block>
<block>
- <key>parameter</key>
+ <key>digital_dxpsk_mod</key>
<param>
<key>id</key>
- <value>gain</value>
+ <value>digital_dxpsk_mod_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Default Gain</value>
- </param>
- <param>
- <key>value</key>
- <value>0</value>
- </param>
- <param>
<key>type</key>
- <value>eng_float</value>
+ <value>dqpsk</value>
</param>
<param>
- <key>short_id</key>
- <value>g</value>
+ <key>samples_per_symbol</key>
+ <value>samps_per_sym</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(619, 15)</value>
+ <key>excess_bw</key>
+ <value>0.35</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>mod_code</key>
+ <value>"gray"</value>
</param>
- </block>
- <block>
- <key>parameter</key>
<param>
- <key>id</key>
- <value>address</value>
+ <key>verbose</key>
+ <value>False</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>log</key>
+ <value>False</value>
</param>
<param>
- <key>label</key>
- <value>IP Address</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>value</key>
- <value>addr=192.168.10.2</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>type</key>
- <value>string</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>short_id</key>
- <value>a</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(177, 14)</value>
+ <value>(190, 171)</value>
</param>
<param>
<key>_rotation</key>
@@ -493,10 +561,18 @@
<value></value>
</param>
<param>
+ <key>stream_chans</key>
+ <value>[]</value>
+ </param>
+ <param>
<key>dev_addr</key>
<value>address</value>
</param>
<param>
+ <key>dev_args</key>
+ <value>""</value>
+ </param>
+ <param>
<key>sync</key>
<value></value>
</param>
@@ -1125,8 +1201,20 @@
<value>0</value>
</param>
<param>
+ <key>len_tag_name</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(783, 162)</value>
+ <value>(617, 163)</value>
</param>
<param>
<key>_rotation</key>
@@ -1156,8 +1244,24 @@
<value>1</value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(566, 186)</value>
+ <value>(388, 193)</value>
</param>
<param>
<key>_rotation</key>
@@ -1165,10 +1269,10 @@
</param>
</block>
<block>
- <key>wxgui_fftsink2</key>
+ <key>qtgui_freq_sink_x</key>
<param>
<key>id</key>
- <value>wxgui_fftsink2_0</value>
+ <value>qtgui_freq_sink_x_0</value>
</param>
<param>
<key>_enabled</key>
@@ -1179,76 +1283,224 @@
<value>complex</value>
</param>
<param>
- <key>title</key>
+ <key>name</key>
<value>Transmit Spectrum</value>
</param>
<param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>fftsize</key>
+ <value>1024</value>
</param>
<param>
- <key>baseband_freq</key>
+ <key>wintype</key>
+ <value>firdes.WIN_BLACKMAN_hARRIS</value>
+ </param>
+ <param>
+ <key>fc</key>
<value>tun_freq</value>
</param>
<param>
- <key>y_per_div</key>
- <value>10</value>
+ <key>bw</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>autoscale</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>average</key>
+ <value>1.0</value>
</param>
<param>
- <key>y_divs</key>
+ <key>ymin</key>
+ <value>-140</value>
+ </param>
+ <param>
+ <key>ymax</key>
<value>10</value>
</param>
<param>
- <key>ref_level</key>
- <value>0</value>
+ <key>nconnections</key>
+ <value>1</value>
</param>
<param>
- <key>ref_scale</key>
- <value>2</value>
+ <key>update_time</key>
+ <value>0.10</value>
</param>
<param>
- <key>fft_size</key>
- <value>1024</value>
+ <key>gui_hint</key>
+ <value></value>
</param>
<param>
- <key>fft_rate</key>
- <value>20</value>
+ <key>label1</key>
+ <value></value>
</param>
<param>
- <key>peak_hold</key>
- <value>False</value>
+ <key>width1</key>
+ <value>1</value>
</param>
<param>
- <key>average</key>
- <value>False</value>
+ <key>color1</key>
+ <value>"blue"</value>
</param>
<param>
- <key>avg_alpha</key>
- <value>0</value>
+ <key>alpha1</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label2</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width2</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color2</key>
+ <value>"red"</value>
</param>
<param>
- <key>win</key>
- <value>None</value>
+ <key>alpha2</key>
+ <value>1.0</value>
</param>
<param>
- <key>win_size</key>
+ <key>label3</key>
<value></value>
</param>
<param>
- <key>grid_pos</key>
+ <key>width3</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color3</key>
+ <value>"green"</value>
+ </param>
+ <param>
+ <key>alpha3</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label4</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width4</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color4</key>
+ <value>"black"</value>
+ </param>
+ <param>
+ <key>alpha4</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label5</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width5</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color5</key>
+ <value>"cyan"</value>
+ </param>
+ <param>
+ <key>alpha5</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label6</key>
<value></value>
</param>
<param>
- <key>notebook</key>
+ <key>width6</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color6</key>
+ <value>"magenta"</value>
+ </param>
+ <param>
+ <key>alpha6</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label7</key>
<value></value>
</param>
<param>
- <key>freqvar</key>
- <value>None</value>
+ <key>width7</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color7</key>
+ <value>"yellow"</value>
+ </param>
+ <param>
+ <key>alpha7</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label8</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width8</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color8</key>
+ <value>"dark red"</value>
+ </param>
+ <param>
+ <key>alpha8</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label9</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width9</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color9</key>
+ <value>"dark green"</value>
+ </param>
+ <param>
+ <key>alpha9</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>label10</key>
+ <value></value>
+ </param>
+ <param>
+ <key>width10</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color10</key>
+ <value>"dark blue"</value>
+ </param>
+ <param>
+ <key>alpha10</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(827, 299)</value>
+ <value>(619, 285)</value>
</param>
<param>
<key>_rotation</key>
@@ -1263,19 +1515,19 @@
</connection>
<connection>
<source_block_id>blocks_multiply_const_vxx_0</source_block_id>
- <sink_block_id>wxgui_fftsink2_0</sink_block_id>
+ <sink_block_id>uhd_usrp_sink_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_multiply_const_vxx_0</source_block_id>
- <sink_block_id>uhd_usrp_sink_0</sink_block_id>
+ <source_block_id>digital_dxpsk_mod_0</source_block_id>
+ <sink_block_id>blocks_multiply_const_vxx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_dxpsk_mod_0</source_block_id>
- <sink_block_id>blocks_multiply_const_vxx_0</sink_block_id>
+ <source_block_id>blocks_multiply_const_vxx_0</source_block_id>
+ <sink_block_id>qtgui_freq_sink_x_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
diff --git a/gr-uhd/examples/grc/uhd_wbfm_receive.grc b/gr-uhd/examples/grc/uhd_wbfm_receive.grc
index e19015a790..153dbd94f3 100644
--- a/gr-uhd/examples/grc/uhd_wbfm_receive.grc
+++ b/gr-uhd/examples/grc/uhd_wbfm_receive.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Mon Mar 18 11:13:02 2013</timestamp>
+ <timestamp>Sat Jul 12 14:40:24 2014</timestamp>
<block>
<key>options</key>
<param>
@@ -29,7 +29,7 @@
</param>
<param>
<key>generate_options</key>
- <value>wx_gui</value>
+ <value>qt_gui</value>
</param>
<param>
<key>category</key>
@@ -52,8 +52,39 @@
<value></value>
</param>
<param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(-2, 0)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>audio_decim</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>10</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(10, 10)</value>
+ <value>(607, 192)</value>
</param>
<param>
<key>_rotation</key>
@@ -64,7 +95,7 @@
<key>parameter</key>
<param>
<key>id</key>
- <value>gain</value>
+ <value>address</value>
</param>
<param>
<key>_enabled</key>
@@ -72,23 +103,66 @@
</param>
<param>
<key>label</key>
- <value>Default Gain</value>
+ <value>IP Address</value>
</param>
<param>
<key>value</key>
+ <value>addr=192.168.10.2</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>string</value>
+ </param>
+ <param>
+ <key>short_id</key>
+ <value>a</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(162, 0)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>parameter</key>
+ <param>
+ <key>id</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>Sample Rate</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>400e3</value>
+ </param>
<param>
<key>type</key>
<value>eng_float</value>
</param>
<param>
<key>short_id</key>
- <value>g</value>
+ <value>s</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(631, 15)</value>
+ <value>(315, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -99,7 +173,7 @@
<key>parameter</key>
<param>
<key>id</key>
- <value>freq</value>
+ <value>gain</value>
</param>
<param>
<key>_enabled</key>
@@ -107,11 +181,11 @@
</param>
<param>
<key>label</key>
- <value>Default Frequency</value>
+ <value>Default Gain</value>
</param>
<param>
<key>value</key>
- <value>93.3e6</value>
+ <value>0</value>
</param>
<param>
<key>type</key>
@@ -119,11 +193,15 @@
</param>
<param>
<key>short_id</key>
- <value>f</value>
+ <value>g</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(479, 15)</value>
+ <value>(594, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -131,10 +209,10 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>parameter</key>
<param>
<key>id</key>
- <value>tun_freq</value>
+ <value>audio_output</value>
</param>
<param>
<key>_enabled</key>
@@ -142,43 +220,70 @@
</param>
<param>
<key>label</key>
- <value>Freq (Hz)</value>
+ <value>Audio Output Device</value>
</param>
<param>
<key>value</key>
- <value>freq</value>
+ <value></value>
</param>
<param>
- <key>min</key>
- <value>87.9e6</value>
+ <key>type</key>
+ <value>string</value>
</param>
<param>
- <key>max</key>
- <value>108.1e6</value>
+ <key>short_id</key>
+ <value>O</value>
</param>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>_coordinate</key>
+ <value>(732, 0)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>analog_wfm_rcv</key>
+ <param>
+ <key>id</key>
+ <value>analog_wfm_rcv</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>grid_pos</key>
+ <key>quad_rate</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>audio_decimation</key>
+ <value>audio_decim</value>
+ </param>
+ <param>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>notebook</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(15, 441)</value>
+ <value>(597, 127)</value>
</param>
<param>
<key>_rotation</key>
@@ -186,54 +291,89 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>audio_sink</key>
<param>
<key>id</key>
- <value>fine</value>
+ <value>audio_sink</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Fine Freq (MHz)</value>
+ <key>samp_rate</key>
+ <value>int(samp_rate/audio_decim)</value>
</param>
<param>
- <key>value</key>
+ <key>device_name</key>
+ <value>audio_output</value>
+ </param>
+ <param>
+ <key>ok_to_block</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>num_inputs</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(995, 135)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>blocks_multiply_const_vxx</key>
<param>
- <key>min</key>
- <value>-.1</value>
+ <key>id</key>
+ <value>blocks_multiply_const_vxx</value>
</param>
<param>
- <key>max</key>
- <value>.1</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>type</key>
+ <value>float</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>const</key>
+ <value>volume</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
- <key>grid_pos</key>
- <value>0, 2, 1, 2</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>notebook</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(277, 444)</value>
+ <value>(808, 135)</value>
</param>
<param>
<key>_rotation</key>
@@ -241,54 +381,70 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>low_pass_filter</key>
<param>
<key>id</key>
- <value>tun_gain</value>
+ <value>low_pass_filter_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>UHD Gain</value>
+ <key>type</key>
+ <value>fir_filter_ccf</value>
</param>
<param>
- <key>value</key>
- <value>gain</value>
+ <key>decim</key>
+ <value>1</value>
</param>
<param>
- <key>min</key>
- <value>0</value>
+ <key>interp</key>
+ <value>1</value>
</param>
<param>
- <key>max</key>
- <value>20</value>
+ <key>gain</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>cutoff_freq</key>
+ <value>115e3</value>
</param>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>width</key>
+ <value>30e3</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>win</key>
+ <value>firdes.WIN_HANN</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>beta</key>
+ <value>6.76</value>
</param>
<param>
- <key>grid_pos</key>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>notebook</key>
+ <key>affinity</key>
<value></value>
</param>
<param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(158, 440)</value>
+ <value>(261, 116)</value>
</param>
<param>
<key>_rotation</key>
@@ -296,7 +452,7 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
<value>volume</value>
@@ -314,36 +470,40 @@
<value>1</value>
</param>
<param>
- <key>min</key>
+ <key>start</key>
<value>0</value>
</param>
<param>
- <key>max</key>
+ <key>stop</key>
<value>10</value>
</param>
<param>
- <key>num_steps</key>
- <value>100</value>
+ <key>step</key>
+ <value>0.1</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>min_len</key>
+ <value>200</value>
</param>
<param>
- <key>grid_pos</key>
+ <key>gui_hint</key>
<value>1, 0, 1, 4</value>
</param>
<param>
- <key>notebook</key>
+ <key>alias</key>
<value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(436, 446)</value>
+ <value>(802, 188)</value>
</param>
<param>
<key>_rotation</key>
@@ -351,30 +511,117 @@
</param>
</block>
<block>
- <key>blocks_multiply_const_vxx</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>blocks_multiply_const_vxx</value>
+ <value>fine</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>float</value>
+ <key>label</key>
+ <value>Fine Freq (MHz)</value>
</param>
<param>
- <key>const</key>
- <value>volume</value>
+ <key>value</key>
+ <value>0</value>
</param>
<param>
- <key>vlen</key>
+ <key>start</key>
+ <value>-.1</value>
+ </param>
+ <param>
+ <key>stop</key>
+ <value>.1</value>
+ </param>
+ <param>
+ <key>step</key>
+ <value>.01</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value>0,2,1,2</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(253, 277)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_qtgui_range</key>
+ <param>
+ <key>id</key>
+ <value>tun_gain</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>UHD Gain</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>10</value>
+ </param>
+ <param>
+ <key>start</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>stop</key>
+ <value>20</value>
+ </param>
+ <param>
+ <key>step</key>
<value>1</value>
</param>
<param>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(836, 161)</value>
+ <value>(141, 275)</value>
</param>
<param>
<key>_rotation</key>
@@ -404,10 +651,18 @@
<value></value>
</param>
<param>
+ <key>stream_chans</key>
+ <value>[]</value>
+ </param>
+ <param>
<key>dev_addr</key>
<value>address</value>
</param>
<param>
+ <key>dev_args</key>
+ <value>""</value>
+ </param>
+ <param>
<key>sync</key>
<value></value>
</param>
@@ -525,7 +780,7 @@
</param>
<param>
<key>center_freq0</key>
- <value>tun_freq+fine</value>
+ <value>(tun_freq+fine)*1e6</value>
</param>
<param>
<key>gain0</key>
@@ -1036,43 +1291,24 @@
<value>0</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(14, 165)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>parameter</key>
- <param>
- <key>id</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>label</key>
- <value>Sample Rate</value>
+ <key>alias</key>
+ <value></value>
</param>
<param>
- <key>value</key>
- <value>400e3</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
- <key>type</key>
- <value>eng_float</value>
+ <key>minoutbuf</key>
+ <value>0</value>
</param>
<param>
- <key>short_id</key>
- <value>s</value>
+ <key>maxoutbuf</key>
+ <value>0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(352, 15)</value>
+ <value>(0, 139)</value>
</param>
<param>
<key>_rotation</key>
@@ -1080,238 +1316,238 @@
</param>
</block>
<block>
- <key>parameter</key>
+ <key>qtgui_freq_sink_x</key>
<param>
<key>id</key>
- <value>audio_output</value>
+ <value>qtgui_freq_sink_x_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Audio Output Device</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>value</key>
- <value></value>
+ <key>name</key>
+ <value>FFT Plot</value>
</param>
<param>
- <key>type</key>
- <value>string</value>
+ <key>fftsize</key>
+ <value>512</value>
</param>
<param>
- <key>short_id</key>
- <value>O</value>
+ <key>wintype</key>
+ <value>firdes.WIN_BLACKMAN_hARRIS</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(769, 13)</value>
+ <key>fc</key>
+ <value>(tun_freq+fine)*1e6</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>bw</key>
+ <value>samp_rate</value>
</param>
- </block>
- <block>
- <key>audio_sink</key>
<param>
- <key>id</key>
- <value>audio_sink</value>
+ <key>autoscale</key>
+ <value>False</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>average</key>
+ <value>1.0</value>
</param>
<param>
- <key>samp_rate</key>
- <value>int(samp_rate/audio_decim)</value>
+ <key>ymin</key>
+ <value>-140</value>
</param>
<param>
- <key>device_name</key>
- <value>audio_output</value>
+ <key>ymax</key>
+ <value>10</value>
</param>
<param>
- <key>ok_to_block</key>
- <value>True</value>
+ <key>nconnections</key>
+ <value>1</value>
</param>
<param>
- <key>num_inputs</key>
- <value>1</value>
+ <key>update_time</key>
+ <value>0.10</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(1023, 161)</value>
+ <key>gui_hint</key>
+ <value>2,0,2,4</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>label1</key>
+ <value></value>
</param>
- </block>
- <block>
- <key>low_pass_filter</key>
<param>
- <key>id</key>
- <value>low_pass_filter_0</value>
+ <key>width1</key>
+ <value>1</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>color1</key>
+ <value>"blue"</value>
</param>
<param>
- <key>type</key>
- <value>fir_filter_ccf</value>
+ <key>alpha1</key>
+ <value>1.0</value>
</param>
<param>
- <key>decim</key>
- <value>1</value>
+ <key>label2</key>
+ <value></value>
</param>
<param>
- <key>interp</key>
+ <key>width2</key>
<value>1</value>
</param>
<param>
- <key>gain</key>
- <value>1</value>
+ <key>color2</key>
+ <value>"red"</value>
</param>
<param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>alpha2</key>
+ <value>1.0</value>
</param>
<param>
- <key>cutoff_freq</key>
- <value>115e3</value>
+ <key>label3</key>
+ <value></value>
</param>
<param>
- <key>width</key>
- <value>30e3</value>
+ <key>width3</key>
+ <value>1</value>
</param>
<param>
- <key>win</key>
- <value>firdes.WIN_HANN</value>
+ <key>color3</key>
+ <value>"green"</value>
</param>
<param>
- <key>beta</key>
- <value>6.76</value>
+ <key>alpha3</key>
+ <value>1.0</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(326, 141)</value>
+ <key>label4</key>
+ <value></value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>width4</key>
+ <value>1</value>
</param>
- </block>
- <block>
- <key>variable</key>
<param>
- <key>id</key>
- <value>audio_decim</value>
+ <key>color4</key>
+ <value>"black"</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>alpha4</key>
+ <value>1.0</value>
</param>
<param>
- <key>value</key>
- <value>10</value>
+ <key>label5</key>
+ <value></value>
</param>
<param>
- <key>_coordinate</key>
- <value>(19, 351)</value>
+ <key>width5</key>
+ <value>1</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>color5</key>
+ <value>"cyan"</value>
</param>
- </block>
- <block>
- <key>wxgui_fftsink2</key>
<param>
- <key>id</key>
- <value>wxgui_fftsink2</value>
+ <key>alpha5</key>
+ <value>1.0</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>label6</key>
+ <value></value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
+ <key>width6</key>
+ <value>1</value>
</param>
<param>
- <key>title</key>
- <value>FFT Plot</value>
+ <key>color6</key>
+ <value>"magenta"</value>
</param>
<param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>alpha6</key>
+ <value>1.0</value>
</param>
<param>
- <key>baseband_freq</key>
- <value>(freq+fine)</value>
+ <key>label7</key>
+ <value></value>
</param>
<param>
- <key>y_per_div</key>
- <value>10</value>
+ <key>width7</key>
+ <value>1</value>
</param>
<param>
- <key>y_divs</key>
- <value>10</value>
+ <key>color7</key>
+ <value>"yellow"</value>
</param>
<param>
- <key>ref_level</key>
- <value>0</value>
+ <key>alpha7</key>
+ <value>1.0</value>
</param>
<param>
- <key>ref_scale</key>
- <value>2.0</value>
+ <key>label8</key>
+ <value></value>
</param>
<param>
- <key>fft_size</key>
- <value>512</value>
+ <key>width8</key>
+ <value>1</value>
</param>
<param>
- <key>fft_rate</key>
- <value>15</value>
+ <key>color8</key>
+ <value>"dark red"</value>
</param>
<param>
- <key>peak_hold</key>
- <value>False</value>
+ <key>alpha8</key>
+ <value>1.0</value>
</param>
<param>
- <key>average</key>
- <value>False</value>
+ <key>label9</key>
+ <value></value>
</param>
<param>
- <key>avg_alpha</key>
- <value>0</value>
+ <key>width9</key>
+ <value>1</value>
</param>
<param>
- <key>win</key>
- <value>None</value>
+ <key>color9</key>
+ <value>"dark green"</value>
+ </param>
+ <param>
+ <key>alpha9</key>
+ <value>1.0</value>
</param>
<param>
- <key>win_size</key>
+ <key>label10</key>
<value></value>
</param>
<param>
- <key>grid_pos</key>
- <value>2, 0, 2, 4</value>
+ <key>width10</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>color10</key>
+ <value>"dark blue"</value>
</param>
<param>
- <key>notebook</key>
+ <key>alpha10</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>alias</key>
<value></value>
</param>
<param>
- <key>freqvar</key>
- <value>None</value>
+ <key>affinity</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(624, 278)</value>
+ <value>(598, 272)</value>
</param>
<param>
<key>_rotation</key>
@@ -1319,26 +1555,38 @@
</param>
</block>
<block>
- <key>analog_wfm_rcv</key>
+ <key>parameter</key>
<param>
<key>id</key>
- <value>analog_wfm_rcv</value>
+ <value>freq</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>quad_rate</key>
- <value>samp_rate</value>
+ <key>label</key>
+ <value>Default Frequency</value>
</param>
<param>
- <key>audio_decimation</key>
- <value>audio_decim</value>
+ <key>value</key>
+ <value>93.3e6</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>eng_float</value>
+ </param>
+ <param>
+ <key>short_id</key>
+ <value>f</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(625, 153)</value>
+ <value>(442, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -1346,10 +1594,10 @@
</param>
</block>
<block>
- <key>parameter</key>
+ <key>variable_qtgui_range</key>
<param>
<key>id</key>
- <value>address</value>
+ <value>tun_freq</value>
</param>
<param>
<key>_enabled</key>
@@ -1357,23 +1605,47 @@
</param>
<param>
<key>label</key>
- <value>IP Address</value>
+ <value>UHD Freq (MHz)</value>
</param>
<param>
<key>value</key>
- <value>addr=192.168.10.2</value>
+ <value>freq/1e6</value>
</param>
<param>
- <key>type</key>
- <value>string</value>
+ <key>start</key>
+ <value>87.9</value>
</param>
<param>
- <key>short_id</key>
- <value>a</value>
+ <key>stop</key>
+ <value>108.1</value>
+ </param>
+ <param>
+ <key>step</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>widget</key>
+ <value>counter_slider</value>
+ </param>
+ <param>
+ <key>orient</key>
+ <value>Qt.Horizontal</value>
+ </param>
+ <param>
+ <key>min_len</key>
+ <value>200</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value>0,0,1,2</value>
+ </param>
+ <param>
+ <key>alias</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(199, 14)</value>
+ <value>(6, 276)</value>
</param>
<param>
<key>_rotation</key>
@@ -1381,14 +1653,14 @@
</param>
</block>
<connection>
- <source_block_id>blocks_multiply_const_vxx</source_block_id>
- <sink_block_id>audio_sink</sink_block_id>
+ <source_block_id>low_pass_filter_0</source_block_id>
+ <sink_block_id>qtgui_freq_sink_x_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>analog_wfm_rcv</source_block_id>
- <sink_block_id>blocks_multiply_const_vxx</sink_block_id>
+ <source_block_id>uhd_usrp_source_0</source_block_id>
+ <sink_block_id>low_pass_filter_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
@@ -1399,14 +1671,14 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>uhd_usrp_source_0</source_block_id>
- <sink_block_id>low_pass_filter_0</sink_block_id>
+ <source_block_id>analog_wfm_rcv</source_block_id>
+ <sink_block_id>blocks_multiply_const_vxx</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>low_pass_filter_0</source_block_id>
- <sink_block_id>wxgui_fftsink2</sink_block_id>
+ <source_block_id>blocks_multiply_const_vxx</source_block_id>
+ <sink_block_id>audio_sink</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
diff --git a/gr-uhd/examples/python/freq_hopping.py b/gr-uhd/examples/python/freq_hopping.py
index 903b0b23d4..5da5efa241 100755
--- a/gr-uhd/examples/python/freq_hopping.py
+++ b/gr-uhd/examples/python/freq_hopping.py
@@ -105,7 +105,9 @@ class FrequencyHopperSrc(gr.hier_block2):
gain_tag.key = pmt.string_to_symbol('tx_command')
gain_tag.value = pmt.cons(
pmt.intern("gain"),
- pmt.to_pmt((0, tx_gain))
+ # These are both valid:
+ #pmt.from_double(tx_gain)
+ pmt.cons(pmt.to_pmt(0), pmt.to_pmt(tx_gain))
)
tag_list = [gain_tag,]
for i in xrange(n_bursts):
@@ -114,7 +116,7 @@ class FrequencyHopperSrc(gr.hier_block2):
if i > 0 and post_tuning:
tune_tag.offset -= 1 # Move it to last sample of previous burst
tune_tag.key = pmt.string_to_symbol('tx_freq')
- tune_tag.value = pmt.to_pmt((0, self.hop_sequence[i]))
+ tune_tag.value = pmt.to_pmt(self.hop_sequence[i])
tag_list.append(tune_tag)
length_tag = gr.tag_t()
length_tag.offset = i * burst_length
diff --git a/gr-uhd/grc/gen_uhd_usrp_blocks.py b/gr-uhd/grc/gen_uhd_usrp_blocks.py
index 6490723589..c31ee1325e 100644
--- a/gr-uhd/grc/gen_uhd_usrp_blocks.py
+++ b/gr-uhd/grc/gen_uhd_usrp_blocks.py
@@ -312,6 +312,11 @@ self.\$(id).set_bandwidth(\$bw$(n), $n)
<check>\$num_mboards > 0</check>
<check>\$nchan >= \$num_mboards</check>
<check>(not \$stream_chans()) or (\$nchan == len(\$stream_chans))</check>
+ <sink>
+ <name>command</name>
+ <type>message</type>
+ <optional>1</optional>
+ </sink>
<$sourk>
<name>$direction</name>
<type>\$type.type</type>
diff --git a/gr-uhd/include/gnuradio/uhd/usrp_sink.h b/gr-uhd/include/gnuradio/uhd/usrp_sink.h
index d3e732cc30..ce8b18ba44 100644
--- a/gr-uhd/include/gnuradio/uhd/usrp_sink.h
+++ b/gr-uhd/include/gnuradio/uhd/usrp_sink.h
@@ -62,18 +62,17 @@ namespace gr {
/*!
* \brief DEPRECATED Make a new USRP sink block using the deprecated io_type_t.
+ * \ingroup uhd_blk
*
* This function will be removed in the future. Please use the other make function,
- * gr::uhd::make(const ::uhd::device_addr_t, const ::uhd::stream_args_t, const std::string).
- *
- * \ingroup uhd_blk
+ * gr::uhd::usrp_sink::make(const ::uhd::device_addr_t, const ::uhd::stream_args_t, const std::string).
*/
static sptr make(const ::uhd::device_addr_t &device_addr,
const ::uhd::io_type_t &io_type,
size_t num_channels);
/*!
- * \brief Make a new USRP sink block.
+ * \brief Make a new USRP sink block (usually a radio transmitter).
*
* The USRP sink block reads a stream and transmits the samples.
* The sink block also provides API calls for transmitter settings.
@@ -86,60 +85,55 @@ namespace gr {
* - pmt::string_to_symbol("tx_time")
* - pmt::string_to_symbol("tx_freq")
* - pmt::string_to_symbol("tx_command")
- * - pmt::string_to_symbol(length_tag_name)
+ * - pmt::string_to_symbol(tsb_tag_name)
*
* Any other tag will be ignored.
*
* The sob and eob (start and end of burst) tag values are pmt booleans.
* When present, burst tags should be set to true (pmt::PMT_T).
*
- * If length_tag_name is not an empty string, all "tx_sob" and "tx_eob"
+ * If `tsb_tag_name` is not an empty string, all "tx_sob" and "tx_eob"
* tags will be ignored, and the input is assumed to a tagged stream,
* as described in \ref page_tagged_stream_blocks.
- * The length tag value should be a PMT long specifying the number
- * of samples contained in the corresponding tagged stream.
*
* If sob/eob tags or length tags are used, this block understands that
* the data is bursty, and will configure the USRP to make sure there's
- * no underruns etc.
+ * no underruns after transmitting the final sample of a burst.
*
* The timestamp tag value is a PMT tuple of the following:
- * (uint64 seconds, and double fractional seconds).
+ * (uint64 seconds, double fractional seconds).
*
- * The tx_freq tag has to be a double, and will issue a tune command to the USRP
+ * The tx_freq tag has to be a double or a pair of form (channel, frequency),
+ * with frequency being a double and channel being an integer.
+ * This tag will trigger a tune command to the USRP
* to the given frequency, if possible. Note that oscillators need some time
* to stabilize after this! Don't expect clean data to be sent immediately after this command.
+ * If channel is omitted, and only a double is given, it will set this frequency to all
+ * channels.
*
* The command tag can carry a PMT command. See the following section.
*
- * \section uhd_commands Command interface
+ * \section uhd_tx_commands Command interface
*
* There are two ways of passing commands to this block:
- * 1) tx_command tag. The command is attached to a sample, and will executed
+ * 1. tx_command tag. The command is attached to a sample, and will executed
* before the sample is transmitted, and after the previous sample.
- * 2) The 'command' message port. The command is executed asynchronously,
+ * 2. The 'command' message port. The command is executed asynchronously,
* as soon as possible.
*
- * In both cases, the payload of the command is a PMT pair, with the first
- * item ('car') being the command name, and second ('cdr') the command value.
- *
- * Command name | Command value
- * -------------|--------------------------------------------------------------------------
- * `freq` | Tuple: (chan, new_freq). Requests a tune to `new_freq` on channel `chan`.
- * `lo_offset` | Tuple: (chan, lo_offset). Adds a LO offset on channel `chan`.
- * `gain` | Tuple: (chan, gain). Requests a gain change to `gain` on channel `chan`.
+ * In both cases, the payload of the command is a PMT command, as described
+ * in Section \ref uhd_command_syntax.
*
- * See the UHD manual for more detailed documentation:
- * http://code.ettus.com/redmine/ettus/projects/uhd/wiki
+ * For a more general description of the gr-uhd components, see \ref page_uhd.
*
* \param device_addr the address to identify the hardware
* \param stream_args the IO format and channel specification
- * \param length_tag_name the name of the tag identifying tagged stream length
+ * \param tsb_tag_name the name of the tag identifying tagged stream length
* \return a new USRP sink block object
*/
static sptr make(const ::uhd::device_addr_t &device_addr,
const ::uhd::stream_args_t &stream_args,
- const std::string &length_tag_name = "");
+ const std::string &tsb_tag_name = "");
/*!
* Set the start time for outgoing samples.
diff --git a/gr-uhd/include/gnuradio/uhd/usrp_source.h b/gr-uhd/include/gnuradio/uhd/usrp_source.h
index 2e165cf771..75e8f8b844 100644
--- a/gr-uhd/include/gnuradio/uhd/usrp_source.h
+++ b/gr-uhd/include/gnuradio/uhd/usrp_source.h
@@ -27,6 +27,7 @@
#include <gnuradio/sync_block.h>
#include <uhd/usrp/multi_usrp.hpp>
+// TODO In 3.8, UHD 3.4 will be required and we can remove all these ifdefs
#ifndef INCLUDED_UHD_STREAM_HPP
namespace uhd {
struct GR_UHD_API stream_args_t
@@ -60,41 +61,18 @@ namespace gr {
typedef boost::shared_ptr<usrp_source> sptr;
/*!
- * \brief Make a new USRP source block.
+ * \brief DEPRECATED Make a new USRP source block using the deprecated io_type_t.
* \ingroup uhd_blk
*
- * The USRP source block receives samples and writes to a stream.
- * The source block also provides API calls for receiver settings.
- *
- * RX Stream tagging:
- *
- * The following tag keys will be produced by the work function:
- * - pmt::string_to_symbol("rx_time")
- * - pmt::string_to_symbol("rx_rate")
- * - pmt::string_to_symbol("rx_freq")
- *
- * The timstamp tag value is a pmt tuple of the following:
- * (uint64 seconds, and double fractional seconds).
- * A timestamp tag is produced at start() and after overflows.
- *
- * The sample rate and center frequency tags are doubles,
- * representing the sample rate in Sps and frequency in Hz.
- * These tags are produced upon the user changing parameters.
- *
- * See the UHD manual for more detailed documentation:
- * http://code.ettus.com/redmine/ettus/projects/uhd/wiki
- *
- * \param device_addr the address to identify the hardware
- * \param io_type the desired output data type
- * \param num_channels number of stream from the device
- * \return a new USRP source block object
+ * This function will be removed in the future. Please use the other make function,
+ * gr::uhd::make(const ::uhd::device_addr_t, const ::uhd::stream_args_t, const std::string).
*/
static sptr make(const ::uhd::device_addr_t &device_addr,
const ::uhd::io_type_t &io_type,
size_t num_channels);
/*!
- * \brief Make a new USRP source block.
+ * \brief Make a new USRP source block (usually a radio receiver).
*
* The USRP source block receives samples and writes to a stream.
* The source block also provides API calls for receiver settings.
@@ -104,12 +82,16 @@ namespace gr {
* The following tag keys will be produced by the work function:
* - pmt::string_to_symbol("rx_time")
*
- * The timstamp tag value is a pmt tuple of the following:
+ * The timestamp tag value is a pmt tuple of the following:
* (uint64 seconds, and double fractional seconds).
* A timestamp tag is produced at start() and after overflows.
*
- * See the UHD manual for more detailed documentation:
- * http://code.ettus.com/redmine/ettus/projects/uhd/wiki
+ * \section uhd_rx_command_iface Command interface
+ *
+ * This block has a message port, which consumes UHD PMT commands.
+ * For a description of the command syntax, see Section \ref uhd_command_syntax.
+ *
+ * For a more general description of the gr-uhd components, see \ref page_uhd.
*
* \param device_addr the address to identify the hardware
* \param stream_args the IO format and channel specification
diff --git a/gr-uhd/lib/usrp_common.h b/gr-uhd/lib/usrp_common.h
new file mode 100644
index 0000000000..29caa585cf
--- /dev/null
+++ b/gr-uhd/lib/usrp_common.h
@@ -0,0 +1,198 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 2014 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.
+ */
+
+#ifndef INCLUDED_GR_UHD_USRP_COMMON_H
+#define INCLUDED_GR_UHD_USRP_COMMON_H
+
+#include <pmt/pmt.h>
+#include <boost/dynamic_bitset.hpp>
+#include <boost/make_shared.hpp>
+#include <boost/bind.hpp>
+#include <boost/thread.hpp>
+#include <uhd/usrp/multi_usrp.hpp>
+#include <uhd/convert.hpp>
+#include <iostream>
+
+namespace gr {
+ namespace uhd {
+ typedef boost::function< ::uhd::sensor_value_t (const std::string&)> get_sensor_fn_t;
+
+ static const double LOCK_TIMEOUT = 1.5; // s
+
+ //! Helper function for msg_handler_command:
+ // - Extracts command and the command value from the command PMT
+ // - Returns true if the command PMT is well formed
+ // - If a channel is given, return that as well, otherwise set the channel to -1
+ static bool _unpack_chan_command(
+ std::string &command,
+ pmt::pmt_t &cmd_val,
+ int &chan,
+ const pmt::pmt_t &cmd_pmt
+ ) {
+ try {
+ chan = -1; // Default value
+ if (pmt::is_tuple(cmd_pmt) and (pmt::length(cmd_pmt) == 2 or pmt::length(cmd_pmt) == 3)) {
+ command = pmt::symbol_to_string(pmt::tuple_ref(cmd_pmt, 0));
+ cmd_val = pmt::tuple_ref(cmd_pmt, 1);
+ if (pmt::length(cmd_pmt) == 3) {
+ chan = pmt::to_long(pmt::tuple_ref(cmd_pmt, 2));
+ }
+ }
+ else if (pmt::is_pair(cmd_pmt)) {
+ command = pmt::symbol_to_string(pmt::car(cmd_pmt));
+ cmd_val = pmt::cdr(cmd_pmt);
+ if (pmt::is_pair(cmd_val)) {
+ chan = pmt::to_long(pmt::car(cmd_val));
+ cmd_val = pmt::cdr(cmd_val);
+ }
+ }
+ else {
+ return false;
+ }
+ } catch (pmt::wrong_type w) {
+ return false;
+ }
+ return true;
+ }
+
+ //! Helper function for msg_handler_command:
+ // - Sets a value in vector_to_update to cmd_val, depending on chan
+ // - If chan is a positive integer, it will set vector_to_update[chan]
+ // - If chan is -1, it depends on minus_one_updates_all:
+ // - Either set vector_to_update[0] or
+ // - Set *all* entries in vector_to_update
+ // - Returns a dynamic_bitset, all indexes that where changed in
+ // vector_to_update are set to 1
+ template <typename T>
+ static boost::dynamic_bitset<> _update_vector_from_cmd_val(
+ std::vector<T> &vector_to_update,
+ int chan,
+ const T cmd_val,
+ bool minus_one_updates_all = false
+ ) {
+ boost::dynamic_bitset<> vals_updated(vector_to_update.size());
+ if (chan == -1) {
+ if (minus_one_updates_all) {
+ for (size_t i = 0; i < vector_to_update.size(); i++) {
+ if (vector_to_update[i] != cmd_val) {
+ vals_updated[i] = true;
+ vector_to_update[i] = cmd_val;
+ }
+ }
+ return vals_updated;
+ }
+ chan = 0;
+ }
+ if (vector_to_update[chan] != cmd_val) {
+ vector_to_update[chan] = cmd_val;
+ vals_updated[chan] = true;
+ }
+
+ return vals_updated;
+ }
+
+
+ /*! \brief Components common to USRP sink and source.
+ *
+ * \param device_addr Device address + options
+ * \param stream_args Stream args (cpu format, otw format...)
+ * \param ts_tag_name If this block produces or consumes stream tags, enter the corresponding tag name here
+ */
+ class usrp_common_impl
+ {
+ public:
+ usrp_common_impl(
+ const ::uhd::device_addr_t &device_addr,
+ const ::uhd::stream_args_t &stream_args,
+ const std::string &ts_tag_name
+ ) :
+ _stream_args(stream_args),
+ _nchan(stream_args.channels.size()),
+ _stream_now(_nchan == 1 and ts_tag_name.empty()),
+ _start_time_set(false)
+ {
+ if(stream_args.cpu_format == "fc32")
+ _type = boost::make_shared< ::uhd::io_type_t >(::uhd::io_type_t::COMPLEX_FLOAT32);
+ if(stream_args.cpu_format == "sc16")
+ _type = boost::make_shared< ::uhd::io_type_t >(::uhd::io_type_t::COMPLEX_INT16);
+ _dev = ::uhd::usrp::multi_usrp::make(device_addr);
+ };
+
+ ~usrp_common_impl() {};
+
+ protected:
+ /*! \brief Wait until a timeout or a sensor returns 'locked'.
+ *
+ * If a given sensor is not found, this still returns 'true', so we don't throw
+ * errors or warnings if a sensor wasn't implemented.
+ */
+ bool _wait_for_locked_sensor(
+ std::vector<std::string> sensor_names,
+ const std::string &sensor_name,
+ get_sensor_fn_t get_sensor_fn
+ ){
+ if (std::find(sensor_names.begin(), sensor_names.end(), sensor_name) == sensor_names.end())
+ return true;
+
+ boost::system_time start = boost::get_system_time();
+ boost::system_time first_lock_time;
+
+ while (true) {
+ if ((not first_lock_time.is_not_a_date_time()) and
+ (boost::get_system_time() > (first_lock_time + boost::posix_time::seconds(LOCK_TIMEOUT)))) {
+ break;
+ }
+
+ if (get_sensor_fn(sensor_name).to_bool()) {
+ if (first_lock_time.is_not_a_date_time())
+ first_lock_time = boost::get_system_time();
+ }
+ else {
+ first_lock_time = boost::system_time(); //reset to 'not a date time'
+
+ if (boost::get_system_time() > (start + boost::posix_time::seconds(LOCK_TIMEOUT))){
+ return false;
+ }
+ }
+
+ boost::this_thread::sleep(boost::posix_time::milliseconds(100));
+ }
+
+ return true;
+ }
+
+ //! Shared pointer to the underlying multi_usrp object
+ ::uhd::usrp::multi_usrp::sptr _dev;
+ const ::uhd::stream_args_t _stream_args;
+ boost::shared_ptr< ::uhd::io_type_t > _type;
+ //! Number of channels (i.e. number of in- or outputs)
+ size_t _nchan;
+ bool _stream_now;
+ ::uhd::time_spec_t _start_time;
+ bool _start_time_set;
+ };
+
+ } /* namespace uhd */
+} /* namespace gr */
+
+#endif /* INCLUDED_GR_UHD_USRP_COMMON_H */
+
diff --git a/gr-uhd/lib/usrp_sink_impl.cc b/gr-uhd/lib/usrp_sink_impl.cc
index f05d90e26a..20f6fd6237 100644
--- a/gr-uhd/lib/usrp_sink_impl.cc
+++ b/gr-uhd/lib/usrp_sink_impl.cc
@@ -25,11 +25,12 @@
#include "usrp_sink_impl.h"
#include "gr_uhd_common.h"
#include <gnuradio/io_signature.h>
-#include <boost/make_shared.hpp>
namespace gr {
namespace uhd {
+ static const size_t ALL_CHANS = ::uhd::usrp::multi_usrp::ALL_CHANS;
+
usrp_sink::sptr
usrp_sink::make(const ::uhd::device_addr_t &device_addr,
const ::uhd::io_type_t &io_type,
@@ -66,36 +67,63 @@ namespace gr {
: sync_block("gr uhd usrp sink",
args_to_io_sig(stream_args),
io_signature::make(0, 0, 0)),
- _stream_args(stream_args),
- _nchan(stream_args.channels.size()),
- _stream_now(_nchan == 1 and length_tag_name.empty()),
- _start_time_set(false),
+ usrp_common_impl(device_addr, stream_args, length_tag_name),
_length_tag_key(length_tag_name.empty() ? pmt::PMT_NIL : pmt::string_to_symbol(length_tag_name)),
_nitems_to_send(0),
- _curr_freq(stream_args.channels.size(), 0.0),
- _curr_lo_offset(stream_args.channels.size(), 0.0),
- _curr_gain(stream_args.channels.size(), 0.0),
- _chans_to_tune(stream_args.channels.size(), false),
- _call_tune(false)
- {
- if(stream_args.cpu_format == "fc32")
- _type = boost::make_shared< ::uhd::io_type_t >(::uhd::io_type_t::COMPLEX_FLOAT32);
- if(stream_args.cpu_format == "sc16")
- _type = boost::make_shared< ::uhd::io_type_t >(::uhd::io_type_t::COMPLEX_INT16);
- _dev = ::uhd::usrp::multi_usrp::make(device_addr);
-
+ _curr_freq(stream_args.channels.size(), 0.0),
+ _curr_lo_offset(stream_args.channels.size(), 0.0),
+ _curr_gain(stream_args.channels.size(), 0.0),
+ _chans_to_tune(stream_args.channels.size())
+ {
message_port_register_in(pmt::mp("command"));
set_msg_handler(
- pmt::mp("command"),
- boost::bind(&usrp_sink_impl::msg_handler_command, this, _1)
+ pmt::mp("command"),
+ boost::bind(&usrp_sink_impl::msg_handler_command, this, _1)
);
- //message_port_register_in(pmt::mp("query"));
- //set_msg_handler(
- //pmt::mp("query"),
- //boost::bind(&usrp_sink_impl::msg_handler_query, this, _1)
- //);
+
+ _check_sensors_locked();
}
+ bool usrp_sink_impl::_check_sensors_locked()
+ {
+ bool clocks_locked = true;
+
+ // 1) Check ref lock for all mboards
+ for (size_t mboard_index = 0; mboard_index < _dev->get_num_mboards(); mboard_index++) {
+ std::string sensor_name = "ref_locked";
+ if (_dev->get_clock_source(mboard_index) == "internal") {
+ continue;
+ }
+ else if (_dev->get_clock_source(mboard_index) == "mimo") {
+ sensor_name = "mimo_locked";
+ }
+ if (not _wait_for_locked_sensor(
+ get_mboard_sensor_names(mboard_index),
+ sensor_name,
+ boost::bind(&usrp_sink_impl::get_mboard_sensor, this, _1, mboard_index)
+ )) {
+ GR_LOG_WARN(d_logger, boost::format("Sensor '%s' failed to lock within timeout on motherboard %d.") % sensor_name % mboard_index);
+ clocks_locked = false;
+ }
+ }
+
+ // 2) Check LO for all channels
+ for (size_t i = 0; i < _nchan; i++) {
+ size_t chan_index = _stream_args.channels[i];
+ if (not _wait_for_locked_sensor(
+ get_sensor_names(chan_index),
+ "lo_locked",
+ boost::bind(&usrp_sink_impl::get_sensor, this, _1, chan_index)
+ )) {
+ GR_LOG_WARN(d_logger, boost::format("Sensor 'lo_locked' failed to lock within timeout on channel %d.") % chan_index);
+ clocks_locked = false;
+ }
+ }
+
+ return clocks_locked;
+ }
+
+
usrp_sink_impl::~usrp_sink_impl()
{
}
@@ -569,9 +597,12 @@ namespace gr {
_metadata.time_spec += ::uhd::time_spec_t(0, num_sent, _sample_rate);
// Some post-processing tasks if we actually transmitted the entire burst
- if (_call_tune and num_sent == size_t(ninput_items)) {
- _set_center_freq_from_internals_allchans();
- _call_tune = false;
+ if (not _pending_cmds.empty() and num_sent == size_t(ninput_items)) {
+ GR_LOG_DEBUG(d_debug_logger, boost::format("Executing %d pending commands.") % _pending_cmds.size());
+ BOOST_FOREACH(const pmt::pmt_t &cmd_pmt, _pending_cmds) {
+ msg_handler_command(cmd_pmt);
+ }
+ _pending_cmds.clear();
}
return num_sent;
@@ -593,10 +624,9 @@ namespace gr {
// Go through tag list until something indicates the end of a burst.
bool found_time_tag = false;
bool found_eob = false;
- bool found_freq_tag_in_burst = false;
- uint64_t freq_cmd_offset = 0;
- double freq_cmd_freq;
- int freq_cmd_chan;
+ // For commands that are in the middle in the burst:
+ std::vector<pmt::pmt_t> commands_in_burst; // Store the command
+ uint64_t in_burst_cmd_offset = 0; // Store its position
BOOST_FOREACH(const tag_t &my_tag, _tags) {
const uint64_t my_tag_count = my_tag.offset;
const pmt::pmt_t &key = my_tag.key;
@@ -606,7 +636,7 @@ namespace gr {
break;
}
- /* I. Bursts that can only be on the first sample of burst
+ /* I. Tags that can only be on the first sample of a burst
*
* This includes:
* - tx_time
@@ -631,7 +661,7 @@ namespace gr {
max_count = my_tag_count;
break;
}
- found_time_tag = true;
+ found_time_tag = true;
_metadata.has_time_spec = true;
_metadata.time_spec = ::uhd::time_spec_t
(pmt::to_uint64(pmt::tuple_ref(value, 0)),
@@ -644,8 +674,8 @@ namespace gr {
max_count = my_tag_count;
break;
}
- // Bursty tx will not use time specs, unless a tx_time tag is also given.
- _metadata.has_time_spec = false;
+ // Bursty tx will not use time specs, unless a tx_time tag is also given.
+ _metadata.has_time_spec = false;
_metadata.start_of_burst = pmt::to_bool(value);
}
@@ -653,49 +683,41 @@ namespace gr {
else if(not pmt::is_null(_length_tag_key) and pmt::equal(key, _length_tag_key)) {
if (my_tag_count != samp0_count) {
max_count = my_tag_count;
- break;
+ break;
}
//If there are still items left to send, the current burst has been preempted.
//Set the items remaining counter to the new burst length. Notify the user of
//the tag preemption.
- else if(_nitems_to_send > 0) {
+ else if(_nitems_to_send > 0) {
std::cerr << "tP" << std::flush;
}
_nitems_to_send = pmt::to_long(value);
_metadata.start_of_burst = true;
}
- /* II. Bursts that can be on the first OR last sample of a burst
+ /* II. Tags that can be on the first OR last sample of a burst
*
* This includes:
- * - tx_freq (tags that don't actually change the frequency are ignored)
+ * - tx_freq
*
* With these tags, we check if they're at the start of a burst, and do
* the appropriate action. Otherwise, make sure the corresponding sample
* is the last one.
*/
- else if (pmt::equal(key, FREQ_KEY) and my_tag_count == samp0_count) {
- int chan = pmt::to_long(pmt::tuple_ref(value, 0));
- double new_freq = pmt::to_double(pmt::tuple_ref(value, 1));
- if (new_freq != _curr_freq[chan]) {
- _curr_freq[chan] = new_freq;
- _set_center_freq_from_internals(chan);
- }
- }
-
- else if(pmt::equal(key, FREQ_KEY) and not found_freq_tag_in_burst) {
- int chan = pmt::to_long(pmt::tuple_ref(value, 0));
- double new_freq = pmt::to_double(pmt::tuple_ref(value, 1));
- if (new_freq != _curr_freq[chan]) {
- freq_cmd_freq = new_freq;
- freq_cmd_chan = chan;
- freq_cmd_offset = my_tag_count;
- max_count = my_tag_count + 1;
- found_freq_tag_in_burst = true;
- }
+ else if (pmt::equal(key, FREQ_KEY) and my_tag_count == samp0_count) {
+ // If it's on the first sample, immediately do the tune:
+ GR_LOG_DEBUG(d_debug_logger, boost::format("Received tx_freq on start of burst."));
+ msg_handler_command(pmt::cons(pmt::mp("freq"), value));
+ }
+ else if(pmt::equal(key, FREQ_KEY)) {
+ // If it's not on the first sample, queue this command and only tx until here:
+ GR_LOG_DEBUG(d_debug_logger, boost::format("Received tx_freq mid-burst."));
+ commands_in_burst.push_back(pmt::cons(pmt::mp("freq"), value));
+ max_count = my_tag_count + 1;
+ in_burst_cmd_offset = my_tag_count;
}
- /* III. Bursts that can only be on the last sample of a burst
+ /* III. Tags that can only be on the last sample of a burst
*
* This includes:
* - tx_eob
@@ -713,20 +735,25 @@ namespace gr {
found_eob = true;
}
- if (found_freq_tag_in_burst) {
+ // If a command was found in-burst that may appear at the end of burst,
+ // there's two options:
+ // 1) The command was actually on the last sample (eob). Then, stash the
+ // commands for running after work().
+ // 2) The command was not on the last sample. In this case, only send()
+ // until before the tag, so it will be on the first sample of the next run.
+ if (not commands_in_burst.empty()) {
if (not found_eob) {
// If it's in the middle of a burst, only send() until before the tag
- max_count = freq_cmd_offset;
- } else if (freq_cmd_offset < max_count) {
- // Otherwise, tune after work()
- _curr_freq[freq_cmd_chan] = freq_cmd_freq;
- _chans_to_tune[freq_cmd_chan] = true;
- _call_tune = true;
+ max_count = in_burst_cmd_offset;
+ } else if (in_burst_cmd_offset < max_count) {
+ BOOST_FOREACH(const pmt::pmt_t &cmd_pmt, commands_in_burst) {
+ _pending_cmds.push_back(cmd_pmt);
+ }
}
}
if (found_time_tag) {
- _metadata.has_time_spec = true;
+ _metadata.has_time_spec = true;
}
// Only transmit up to and including end of burst,
@@ -798,46 +825,44 @@ namespace gr {
/************** External interfaces (RPC + Message passing) ********************/
- // Helper function for msg_handler_command: Extracts chan and command value from
- // the 2-tuple in cmd_val, updates the value in vector_to_update[chan] and returns
- // true if it was different from the old value.
- bool _unpack_chan_command(pmt::pmt_t &cmd_val, int &chan, std::vector<double> &vector_to_update)
- {
- chan = pmt::to_long(pmt::tuple_ref(cmd_val, 0));
- double new_value = pmt::to_double(pmt::tuple_ref(cmd_val, 1));
- if (new_value == vector_to_update[chan]) {
- return false;
- } else {
- vector_to_update[chan] = new_value;
- return true;
- }
- }
-
void usrp_sink_impl::msg_handler_command(pmt::pmt_t msg)
{
- const std::string command(pmt::symbol_to_string(pmt::car(msg)));
- pmt::pmt_t value(pmt::cdr(msg));
- int chan = 0;
- if (command == "freq") {
- if (_unpack_chan_command(value, chan, _curr_freq)) {
- _set_center_freq_from_internals(chan);
- }
- } else if (command == "lo_offset") {
- if (_unpack_chan_command(value, chan, _curr_lo_offset)) {
- _set_center_freq_from_internals(chan);
- }
- } else if (command == "gain") {
- if (_unpack_chan_command(value, chan, _curr_gain)) {
- set_gain(_curr_gain[chan], chan);
- }
- } else {
- GR_LOG_ALERT(d_logger, boost::format("Received unknown command: %s") % command);
+ std::string command;
+ pmt::pmt_t cmd_value;
+ int chan = -1;
+ if (not _unpack_chan_command(command, cmd_value, chan, msg)) {
+ GR_LOG_ALERT(d_logger, boost::format("Error while unpacking command PMT: %s") % msg);
+ return;
+ }
+ GR_LOG_DEBUG(d_debug_logger, boost::format("Received command: %s") % command);
+ try {
+ if (command == "freq") {
+ _chans_to_tune = _update_vector_from_cmd_val<double>(
+ _curr_freq, chan, pmt::to_double(cmd_value), true
+ );
+ _set_center_freq_from_internals_allchans();
+ } else if (command == "lo_offset") {
+ _chans_to_tune = _update_vector_from_cmd_val<double>(
+ _curr_lo_offset, chan, pmt::to_double(cmd_value), true
+ );
+ _set_center_freq_from_internals_allchans();
+ } else if (command == "gain") {
+ boost::dynamic_bitset<> chans_to_change = _update_vector_from_cmd_val<double>(
+ _curr_gain, chan, pmt::to_double(cmd_value), true
+ );
+ if (chans_to_change.any()) {
+ for (size_t i = 0; i < chans_to_change.size(); i++) {
+ if (chans_to_change[i]) {
+ set_gain(_curr_gain[i], i);
+ }
+ }
+ }
+ } else {
+ GR_LOG_ALERT(d_logger, boost::format("Received unknown command: %s") % command);
+ }
+ } catch (pmt::wrong_type &e) {
+ GR_LOG_ALERT(d_logger, boost::format("Received command '%s' with invalid command value: %s") % command % cmd_value);
}
- }
-
- void usrp_sink_impl::msg_handler_query(pmt::pmt_t msg)
- {
- //tbi
}
void
diff --git a/gr-uhd/lib/usrp_sink_impl.h b/gr-uhd/lib/usrp_sink_impl.h
index 12a25658e3..21bb991b92 100644
--- a/gr-uhd/lib/usrp_sink_impl.h
+++ b/gr-uhd/lib/usrp_sink_impl.h
@@ -22,6 +22,7 @@
#include <gnuradio/uhd/usrp_sink.h>
#include <uhd/convert.hpp>
+#include "usrp_common.h"
static const pmt::pmt_t SOB_KEY = pmt::string_to_symbol("tx_sob");
static const pmt::pmt_t EOB_KEY = pmt::string_to_symbol("tx_eob");
@@ -51,7 +52,7 @@ namespace gr {
/***********************************************************************
* UHD Multi USRP Sink Impl
**********************************************************************/
- class usrp_sink_impl : public usrp_sink
+ class usrp_sink_impl : public usrp_sink, public usrp_common_impl
{
public:
usrp_sink_impl(const ::uhd::device_addr_t &device_addr,
@@ -122,34 +123,32 @@ namespace gr {
inline void tag_work(int &ninput_items);
private:
+ /*! \brief Run through all 'lock' sensors and make sure they are actually locked.
+ */
+ bool _check_sensors_locked();
+
//! Like set_center_freq(), but uses _curr_freq and _curr_lo_offset
::uhd::tune_result_t _set_center_freq_from_internals(size_t chan);
//! Calls _set_center_freq_from_internals() on all channels
void _set_center_freq_from_internals_allchans();
- //! Receives commands and handles them
- void msg_handler_command(pmt::pmt_t msg);
- //! Receives queries and posts a response
- void msg_handler_query(pmt::pmt_t msg);
- ::uhd::usrp::multi_usrp::sptr _dev;
- const ::uhd::stream_args_t _stream_args;
- boost::shared_ptr< ::uhd::io_type_t > _type;
#ifdef GR_UHD_USE_STREAM_API
::uhd::tx_streamer::sptr _tx_stream;
#endif
- size_t _nchan;
- bool _stream_now;
::uhd::tx_metadata_t _metadata;
double _sample_rate;
- ::uhd::time_spec_t _start_time;
- bool _start_time_set;
//stream tags related stuff
std::vector<tag_t> _tags;
const pmt::pmt_t _length_tag_key;
long _nitems_to_send;
+ /****** Command interface related **********/
+ //! Stores a list of commands for later execution
+ std::vector<pmt::pmt_t> _pending_cmds;
+ //! Receives commands and handles them
+ void msg_handler_command(pmt::pmt_t msg);
//! Stores the last value we told the USRP to tune to for every channel
// (this is not necessarily the true value the USRP is currently tuned to!).
// We could theoretically ask the device, but during streaming, we want to minimize
@@ -159,8 +158,7 @@ namespace gr {
std::vector<double> _curr_lo_offset;
//! Stores the last gain value we told the USRP to have for every channel.
std::vector<double> _curr_gain;
- std::vector<bool> _chans_to_tune;
- bool _call_tune;
+ boost::dynamic_bitset<> _chans_to_tune;
};
} /* namespace uhd */
diff --git a/gr-uhd/lib/usrp_source_impl.cc b/gr-uhd/lib/usrp_source_impl.cc
index e57db13a0b..53038bf202 100644
--- a/gr-uhd/lib/usrp_source_impl.cc
+++ b/gr-uhd/lib/usrp_source_impl.cc
@@ -20,6 +20,7 @@
* Boston, MA 02110-1301, USA.
*/
+#include "usrp_common.h"
#include "usrp_source_impl.h"
#include "gr_uhd_common.h"
#include <gnuradio/io_signature.h>
@@ -66,20 +67,59 @@ namespace gr {
sync_block("gr uhd usrp source",
io_signature::make(0, 0, 0),
args_to_io_sig(stream_args)),
- _stream_args(stream_args),
- _nchan(stream_args.channels.size()),
- _stream_now(_nchan == 1),
- _tag_now(false),
- _start_time_set(false)
- {
- if(stream_args.cpu_format == "fc32")
- _type = boost::make_shared< ::uhd::io_type_t >(::uhd::io_type_t::COMPLEX_FLOAT32);
- if(stream_args.cpu_format == "sc16")
- _type = boost::make_shared< ::uhd::io_type_t >(::uhd::io_type_t::COMPLEX_INT16);
+ usrp_common_impl(device_addr, stream_args, ""),
+ _tag_now(false)
+ {
std::stringstream str;
str << name() << unique_id();
_id = pmt::string_to_symbol(str.str());
- _dev = ::uhd::usrp::multi_usrp::make(device_addr);
+
+ message_port_register_in(pmt::mp("command"));
+ set_msg_handler(
+ pmt::mp("command"),
+ boost::bind(&usrp_source_impl::msg_handler_command, this, _1)
+ );
+
+ _check_sensors_locked();
+ }
+
+ bool usrp_source_impl::_check_sensors_locked()
+ {
+ bool clocks_locked = true;
+
+ // 1) Check ref lock for all mboards
+ for (size_t mboard_index = 0; mboard_index < _dev->get_num_mboards(); mboard_index++) {
+ std::string sensor_name = "ref_locked";
+ if (_dev->get_clock_source(mboard_index) == "internal") {
+ continue;
+ }
+ else if (_dev->get_clock_source(mboard_index) == "mimo") {
+ sensor_name = "mimo_locked";
+ }
+ if (not _wait_for_locked_sensor(
+ get_mboard_sensor_names(mboard_index),
+ sensor_name,
+ boost::bind(&usrp_source_impl::get_mboard_sensor, this, _1, mboard_index)
+ )) {
+ GR_LOG_WARN(d_logger, boost::format("Sensor '%s' failed to lock within timeout on motherboard %d.") % sensor_name % mboard_index);
+ clocks_locked = false;
+ }
+ }
+
+ // 2) Check LO for all channels
+ for (size_t i = 0; i < _nchan; i++) {
+ size_t chan_index = _stream_args.channels[i];
+ if (not _wait_for_locked_sensor(
+ get_sensor_names(chan_index),
+ "lo_locked",
+ boost::bind(&usrp_source_impl::get_sensor, this, _1, chan_index)
+ )) {
+ GR_LOG_WARN(d_logger, boost::format("Sensor 'lo_locked' failed to lock within timeout on channel %d.") % chan_index);
+ clocks_locked = false;
+ }
+ }
+
+ return clocks_locked;
}
usrp_source_impl::~usrp_source_impl()
@@ -670,6 +710,38 @@ namespace gr {
return num_samps;
}
+
+ /************** External interfaces (RPC + Message passing) ********************/
+ void usrp_source_impl::msg_handler_command(pmt::pmt_t msg)
+ {
+ std::string command;
+ pmt::pmt_t cmd_value;
+ int chan = -1;
+ if (not _unpack_chan_command(command, cmd_value, chan, msg)) {
+ GR_LOG_ALERT(d_logger, "Error while unpacking command PMT.");
+ }
+ if (command == "freq") {
+ double freq = pmt::to_double(cmd_value);
+ for (size_t i = 0; i < _nchan; i++) {
+ if (chan == -1 or chan == int(i)) {
+ set_center_freq(freq, i);
+ }
+ }
+ // TODO: implement
+ //} else if (command == "lo_offset") {
+ //;
+ } else if (command == "gain") {
+ double gain = pmt::to_double(cmd_value);
+ for (size_t i = 0; i < _nchan; i++) {
+ if (chan == -1 or chan == int(i)) {
+ set_gain(gain, i);
+ }
+ }
+ } else {
+ GR_LOG_ALERT(d_logger, boost::format("Received unknown command: %s") % command);
+ }
+ }
+
void
usrp_source_impl::setup_rpc()
{
diff --git a/gr-uhd/lib/usrp_source_impl.h b/gr-uhd/lib/usrp_source_impl.h
index 3cfa1aad35..6de4c9c6a3 100644
--- a/gr-uhd/lib/usrp_source_impl.h
+++ b/gr-uhd/lib/usrp_source_impl.h
@@ -23,6 +23,7 @@
#include <gnuradio/uhd/usrp_source.h>
#include <uhd/convert.hpp>
#include <boost/thread/mutex.hpp>
+#include "usrp_common.h"
static const pmt::pmt_t TIME_KEY = pmt::string_to_symbol("rx_time");
static const pmt::pmt_t RATE_KEY = pmt::string_to_symbol("rx_rate");
@@ -50,7 +51,7 @@ namespace gr {
/***********************************************************************
* UHD Multi USRP Source Impl
**********************************************************************/
- class usrp_source_impl : public usrp_source
+ class usrp_source_impl : public usrp_source, public usrp_common_impl
{
public:
usrp_source_impl(const ::uhd::device_addr_t &device_addr,
@@ -124,27 +125,37 @@ namespace gr {
gr_vector_void_star &output_items);
private:
- ::uhd::usrp::multi_usrp::sptr _dev;
- const ::uhd::stream_args_t _stream_args;
- boost::shared_ptr< ::uhd::io_type_t > _type;
-
+ /*! \brief Run through all 'lock' sensors and make sure they are actually locked.
+ */
+ bool _check_sensors_locked();
#ifdef GR_UHD_USE_STREAM_API
::uhd::rx_streamer::sptr _rx_stream;
size_t _samps_per_packet;
#endif
- size_t _nchan;
- bool _stream_now, _tag_now;
+ bool _tag_now;
::uhd::rx_metadata_t _metadata;
pmt::pmt_t _id;
- ::uhd::time_spec_t _start_time;
- bool _start_time_set;
-
//tag shadows
double _samp_rate;
double _center_freq;
boost::recursive_mutex d_mutex;
+
+ /****** Command interface related **********/
+ //! Receives commands and handles them
+ void msg_handler_command(pmt::pmt_t msg);
+ //! Stores the last value we told the USRP to tune to for every channel
+ // (this is not necessarily the true value the USRP is currently tuned to!).
+ // We could theoretically ask the device, but during streaming, we want to minimize
+ // communication with the USRP.
+ std::vector<double> _curr_freq;
+ //! Stores the last value we told the USRP to have the LO offset for every channel.
+ std::vector<double> _curr_lo_offset;
+ //! Stores the last gain value we told the USRP to have for every channel.
+ std::vector<double> _curr_gain;
+ boost::dynamic_bitset<> _chans_to_tune;
+ bool _call_tune;
};
} /* namespace uhd */