summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rondeau <trondeau@vt.edu>2013-01-15 15:00:24 -0500
committerTom Rondeau <trondeau@vt.edu>2013-01-15 15:00:24 -0500
commit5be31c3d79015beeabdd98ebf1c0152ae6caac8c (patch)
treee1d678b4b3dbb5b45c8ca43dfbd5d88451da66c4
parent0c0473d51e2c4a4275a88db562791561288e8c15 (diff)
parente1e632469905f8c4b5f0d35c988744c77cf6a227 (diff)
Merge branch 'master' into next
Conflicts: gr-digital/examples/demod/ber_simulation.grc gr-digital/examples/demod/digital_freq_lock.grc gr-digital/examples/demod/pam_sync.grc gr-digital/examples/demod/pam_timing.grc
-rw-r--r--gnuradio-core/src/lib/runtime/gr_block.cc7
-rw-r--r--gnuradio-core/src/lib/runtime/gr_block.h36
-rw-r--r--gnuradio-core/src/lib/runtime/gr_block_detail.cc12
-rw-r--r--gnuradio-core/src/lib/runtime/gr_block_detail.h13
-rw-r--r--gnuradio-core/src/lib/runtime/gr_buffer.cc12
-rw-r--r--gnuradio-core/src/lib/runtime/gr_buffer.h9
-rw-r--r--gnuradio-core/src/lib/runtime/gr_tags.h5
-rw-r--r--gr-digital/examples/demod/ber_simulation.grc456
-rw-r--r--gr-digital/examples/demod/digital_freq_lock.grc551
-rw-r--r--gr-digital/examples/demod/pam_sync.grc933
-rw-r--r--gr-digital/examples/demod/pam_timing.grc668
-rw-r--r--grc/gui/MainWindow.py3
-rwxr-xr-xgrc/scripts/gnuradio-companion11
13 files changed, 1340 insertions, 1376 deletions
diff --git a/gnuradio-core/src/lib/runtime/gr_block.cc b/gnuradio-core/src/lib/runtime/gr_block.cc
index 43aebf0bfd..5ba30955f9 100644
--- a/gnuradio-core/src/lib/runtime/gr_block.cc
+++ b/gnuradio-core/src/lib/runtime/gr_block.cc
@@ -187,6 +187,13 @@ gr_block::add_item_tag(unsigned int which_output,
}
void
+gr_block::remove_item_tag(unsigned int which_input,
+ const gr_tag_t &tag)
+{
+ d_detail->remove_item_tag(which_input, tag);
+}
+
+void
gr_block::get_tags_in_range(std::vector<gr_tag_t> &v,
unsigned int which_output,
uint64_t start, uint64_t end)
diff --git a/gnuradio-core/src/lib/runtime/gr_block.h b/gnuradio-core/src/lib/runtime/gr_block.h
index 57e3fda90a..7a70bdaf09 100644
--- a/gnuradio-core/src/lib/runtime/gr_block.h
+++ b/gnuradio-core/src/lib/runtime/gr_block.h
@@ -416,6 +416,42 @@ class GR_CORE_API gr_block : public gr_basic_block {
void add_item_tag(unsigned int which_output, const gr_tag_t &tag);
/*!
+ * \brief Removes a tag from the given input buffer.
+ *
+ * \param which_input an integer of which input stream to remove the tag from
+ * \param abs_offset a uint64 number of the absolute item number
+ * assicated with the tag. Can get from nitems_written.
+ * \param key the tag key as a PMT symbol
+ * \param value any PMT holding any value for the given key
+ * \param srcid optional source ID specifier; defaults to PMT_F
+ *
+ * If no such tag is found, does nothing.
+ */
+ inline void remove_item_tag(unsigned int which_input,
+ uint64_t abs_offset,
+ const pmt::pmt_t &key,
+ const pmt::pmt_t &value,
+ const pmt::pmt_t &srcid=pmt::PMT_F)
+ {
+ gr_tag_t tag;
+ tag.offset = abs_offset;
+ tag.key = key;
+ tag.value = value;
+ tag.srcid = srcid;
+ this->remove_item_tag(which_input, tag);
+ }
+
+ /*!
+ * \brief Removes a tag from the given input buffer.
+ *
+ * If no such tag is found, does nothing.
+ *
+ * \param which_input an integer of which input stream to remove the tag from
+ * \param tag the tag object to remove
+ */
+ void remove_item_tag(unsigned int which_input, const gr_tag_t &tag);
+
+ /*!
* \brief Given a [start,end), returns a vector of all tags in the range.
*
* Range of counts is from start to end-1.
diff --git a/gnuradio-core/src/lib/runtime/gr_block_detail.cc b/gnuradio-core/src/lib/runtime/gr_block_detail.cc
index ebe89d930e..784cdbe117 100644
--- a/gnuradio-core/src/lib/runtime/gr_block_detail.cc
+++ b/gnuradio-core/src/lib/runtime/gr_block_detail.cc
@@ -154,6 +154,18 @@ gr_block_detail::add_item_tag(unsigned int which_output, const gr_tag_t &tag)
}
void
+gr_block_detail::remove_item_tag(unsigned int which_input, const gr_tag_t &tag)
+{
+ if(!pmt_is_symbol(tag.key)) {
+ throw pmt_wrong_type("gr_block_detail::add_item_tag key", tag.key);
+ }
+ else {
+ // Add tag to gr_buffer's deque tags
+ d_input[which_input]->buffer()->remove_item_tag(tag);
+ }
+}
+
+void
gr_block_detail::get_tags_in_range(std::vector<gr_tag_t> &v,
unsigned int which_input,
uint64_t abs_start,
diff --git a/gnuradio-core/src/lib/runtime/gr_block_detail.h b/gnuradio-core/src/lib/runtime/gr_block_detail.h
index 16d9f4d42e..af00ea7c79 100644
--- a/gnuradio-core/src/lib/runtime/gr_block_detail.h
+++ b/gnuradio-core/src/lib/runtime/gr_block_detail.h
@@ -95,8 +95,7 @@ class GR_CORE_API gr_block_detail {
/*!
* \brief Adds a new tag to the given output stream.
*
- * This takes the input parameters and builds a PMT tuple
- * from it. It then calls gr_buffer::add_item_tag(pmt::pmt_t t),
+ * Calls gr_buffer::add_item_tag(),
* which appends the tag onto its deque.
*
* \param which_output an integer of which output stream to attach the tag
@@ -105,6 +104,16 @@ class GR_CORE_API gr_block_detail {
void add_item_tag(unsigned int which_output, const gr_tag_t &tag);
/*!
+ * \brief Removes a tag from the given input stream.
+ *
+ * Calls gr_buffer::remove_item_tag(), which removes the tag from its deque.
+ *
+ * \param which_input an integer of which input stream to remove the tag from
+ * \param tag the tag object to add
+ */
+ void remove_item_tag(unsigned int which_input, const gr_tag_t &tag);
+
+ /*!
* \brief Given a [start,end), returns a vector of all tags in the range.
*
* Pass-through function to gr_buffer_reader to get a vector of tags
diff --git a/gnuradio-core/src/lib/runtime/gr_buffer.cc b/gnuradio-core/src/lib/runtime/gr_buffer.cc
index b923ca57a6..369959d65f 100644
--- a/gnuradio-core/src/lib/runtime/gr_buffer.cc
+++ b/gnuradio-core/src/lib/runtime/gr_buffer.cc
@@ -234,6 +234,18 @@ gr_buffer::add_item_tag(const gr_tag_t &tag)
}
void
+gr_buffer::remove_item_tag(const gr_tag_t &tag)
+{
+ gruel::scoped_lock guard(*mutex());
+ for (std::deque<gr_tag_t>::iterator it = d_item_tags.begin(); it != d_item_tags.end(); ++it) {
+ if (*it == tag) {
+ d_item_tags.erase(it);
+ break;
+ }
+ }
+}
+
+void
gr_buffer::prune_tags(uint64_t max_time)
{
/* NOTE: this function _should_ lock the mutex before editing
diff --git a/gnuradio-core/src/lib/runtime/gr_buffer.h b/gnuradio-core/src/lib/runtime/gr_buffer.h
index 67d48fb2dd..28ea977269 100644
--- a/gnuradio-core/src/lib/runtime/gr_buffer.h
+++ b/gnuradio-core/src/lib/runtime/gr_buffer.h
@@ -103,6 +103,15 @@ class GR_CORE_API gr_buffer {
void add_item_tag(const gr_tag_t &tag);
/*!
+ * \brief Removes an existing tag from the buffer.
+ *
+ * If no such tag is found, does nothing.
+ *
+ * \param tag the tag that needs to be removed
+ */
+ void remove_item_tag(const gr_tag_t &tag);
+
+ /*!
* \brief Removes all tags before \p max_time from buffer
*
* \param max_time the time (item number) to trim up until.
diff --git a/gnuradio-core/src/lib/runtime/gr_tags.h b/gnuradio-core/src/lib/runtime/gr_tags.h
index 8bffcd0fe5..a9ca902352 100644
--- a/gnuradio-core/src/lib/runtime/gr_tags.h
+++ b/gnuradio-core/src/lib/runtime/gr_tags.h
@@ -45,6 +45,11 @@ struct GR_CORE_API gr_tag_t{
){
return x.offset < y.offset;
}
+
+ inline bool operator == (const gr_tag_t &t) const
+ {
+ return (t.key == key) && (t.value == value) && (t.srcid == srcid) && (t.offset == offset);
+ }
};
#endif /*INCLUDED_GR_TAGS_H*/
diff --git a/gr-digital/examples/demod/ber_simulation.grc b/gr-digital/examples/demod/ber_simulation.grc
index 9f67504b5a..98c1f3d22d 100644
--- a/gr-digital/examples/demod/ber_simulation.grc
+++ b/gr-digital/examples/demod/ber_simulation.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Thu Dec 27 13:06:26 2012</timestamp>
+ <timestamp>Tue Jan 15 14:59:58 2013</timestamp>
<block>
<key>options</key>
<param>
@@ -92,78 +92,69 @@
</param>
</block>
<block>
- <key>wxgui_numbersink2</key>
+ <key>import</key>
<param>
<key>id</key>
- <value>wxgui_numbersink2</value>
+ <value>import</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>title</key>
- <value>BER</value>
- </param>
- <param>
- <key>units</key>
- <value>%</value>
- </param>
- <param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>import</key>
+ <value>import math</value>
</param>
<param>
- <key>min_value</key>
- <value>0.0</value>
+ <key>_coordinate</key>
+ <value>(18, 373)</value>
</param>
<param>
- <key>max_value</key>
- <value>1.0</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable_slider</key>
<param>
- <key>factor</key>
- <value>100</value>
+ <key>id</key>
+ <value>EbN0</value>
</param>
<param>
- <key>decimal_places</key>
- <value>4</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>ref_level</key>
- <value>0</value>
+ <key>label</key>
+ <value>Eb/N0 (dB)</value>
</param>
<param>
- <key>number_rate</key>
- <value>15</value>
+ <key>value</key>
+ <value>10</value>
</param>
<param>
- <key>peak_hold</key>
- <value>False</value>
+ <key>min</key>
+ <value>-10</value>
</param>
<param>
- <key>average</key>
- <value>False</value>
+ <key>max</key>
+ <value>200</value>
</param>
<param>
- <key>avg_alpha</key>
- <value>0</value>
+ <key>num_steps</key>
+ <value>211</value>
</param>
<param>
- <key>show_gauge</key>
- <value>False</value>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
</param>
<param>
- <key>win_size</key>
- <value></value>
+ <key>converver</key>
+ <value>float_converter</value>
</param>
<param>
<key>grid_pos</key>
- <value>1, 0, 1, 1</value>
+ <value></value>
</param>
<param>
<key>notebook</key>
@@ -171,30 +162,30 @@
</param>
<param>
<key>_coordinate</key>
- <value>(791, 228)</value>
+ <value>(311, 309)</value>
</param>
<param>
<key>_rotation</key>
- <value>180</value>
+ <value>0</value>
</param>
</block>
<block>
- <key>import</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>import</value>
+ <value>const</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>import</key>
- <value>import math</value>
+ <key>value</key>
+ <value>(digital.constellation_bpsk(), digital.constellation_qpsk(), digital.constellation_8psk())</value>
</param>
<param>
<key>_coordinate</key>
- <value>(18, 373)</value>
+ <value>(116, 310)</value>
</param>
<param>
<key>_rotation</key>
@@ -202,45 +193,38 @@
</param>
</block>
<block>
- <key>variable</key>
+ <key>random_source_x</key>
<param>
<key>id</key>
- <value>const</value>
+ <value>random_source_x</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>digital.qpsk_constellation()</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(116, 310)</value>
+ <key>type</key>
+ <value>byte</value>
</param>
<param>
- <key>_rotation</key>
+ <key>min</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>variable</key>
<param>
- <key>id</key>
- <value>samp_rate</value>
+ <key>max</key>
+ <value>const[const_type].arity()</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>num_samps</key>
+ <value>10000000</value>
</param>
<param>
- <key>value</key>
- <value>100e3</value>
+ <key>repeat</key>
+ <value>True</value>
</param>
<param>
<key>_coordinate</key>
- <value>(16, 308)</value>
+ <value>(17, 125)</value>
</param>
<param>
<key>_rotation</key>
@@ -248,10 +232,10 @@
</param>
</block>
<block>
- <key>wxgui_scopesink2</key>
+ <key>analog_noise_source_x</key>
<param>
<key>id</key>
- <value>wxgui_scopesink2_0</value>
+ <value>analog_noise_source_x</value>
</param>
<param>
<key>_enabled</key>
@@ -262,60 +246,20 @@
<value>complex</value>
</param>
<param>
- <key>title</key>
- <value>"Constellation: "+str(const.arity()) + "-PSK"</value>
- </param>
- <param>
- <key>samp_rate</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>v_scale</key>
- <value>0</value>
- </param>
- <param>
- <key>v_offset</key>
- <value>0</value>
- </param>
- <param>
- <key>t_scale</key>
- <value>0</value>
- </param>
- <param>
- <key>ac_couple</key>
- <value>False</value>
- </param>
- <param>
- <key>xy_mode</key>
- <value>True</value>
- </param>
- <param>
- <key>num_inputs</key>
- <value>1</value>
- </param>
- <param>
- <key>win_size</key>
- <value></value>
- </param>
- <param>
- <key>grid_pos</key>
- <value>2, 0, 1, 1</value>
- </param>
- <param>
- <key>notebook</key>
- <value></value>
+ <key>noise_type</key>
+ <value>analog.GR_GAUSSIAN</value>
</param>
<param>
- <key>trig_mode</key>
- <value>gr.gr_TRIG_MODE_AUTO</value>
+ <key>amp</key>
+ <value>1.0 / math.sqrt(2.0 * const[const_type].bits_per_symbol() * 10**(EbN0/10))</value>
</param>
<param>
- <key>y_axis_label</key>
- <value>Counts</value>
+ <key>seed</key>
+ <value>42</value>
</param>
<param>
<key>_coordinate</key>
- <value>(623, 228)</value>
+ <value>(16, 224)</value>
</param>
<param>
<key>_rotation</key>
@@ -342,7 +286,7 @@
</param>
<param>
<key>bits_per_symbol</key>
- <value>const.bits_per_symbol()</value>
+ <value>const[const_type].bits_per_symbol()</value>
</param>
<param>
<key>_coordinate</key>
@@ -354,54 +298,45 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>EbN0</value>
+ <value>samp_rate</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Eb/N0 (dB)</value>
- </param>
- <param>
<key>value</key>
- <value>10</value>
- </param>
- <param>
- <key>min</key>
- <value>-10</value>
- </param>
- <param>
- <key>max</key>
- <value>200</value>
+ <value>100e3</value>
</param>
<param>
- <key>num_steps</key>
- <value>211</value>
+ <key>_coordinate</key>
+ <value>(16, 308)</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable</key>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>id</key>
+ <value>const_type</value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>value</key>
+ <value>1</value>
</param>
<param>
<key>_coordinate</key>
- <value>(311, 309)</value>
+ <value>(18, 428)</value>
</param>
<param>
<key>_rotation</key>
@@ -409,38 +344,42 @@
</param>
</block>
<block>
- <key>random_source_x</key>
+ <key>variable_static_text</key>
<param>
<key>id</key>
- <value>random_source_x</value>
+ <value>variable_static_text_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>byte</value>
+ <key>label</key>
+ <value>Constellation Type</value>
</param>
<param>
- <key>min</key>
- <value>0</value>
+ <key>value</key>
+ <value>{0: 'BPSK', 1: 'QPSK', 2: '8-PSK'}[const_type] + " - Change const_type for different constellation types!"</value>
</param>
<param>
- <key>max</key>
- <value>const.arity()</value>
+ <key>converver</key>
+ <value>str_converter</value>
</param>
<param>
- <key>num_samps</key>
- <value>10000000</value>
+ <key>formatter</key>
+ <value>None</value>
</param>
<param>
- <key>repeat</key>
- <value>True</value>
+ <key>grid_pos</key>
+ <value></value>
+ </param>
+ <param>
+ <key>notebook</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(17, 125)</value>
+ <value>(422, 311)</value>
</param>
<param>
<key>_rotation</key>
@@ -451,7 +390,7 @@
<key>digital_chunks_to_symbols_xx</key>
<param>
<key>id</key>
- <value>digital_chunks_to_symbols_xx_0</value>
+ <value>digital_chunks_to_symbols_xx</value>
</param>
<param>
<key>_enabled</key>
@@ -467,7 +406,7 @@
</param>
<param>
<key>symbol_table</key>
- <value>const.points()</value>
+ <value>const[const_type].points()</value>
</param>
<param>
<key>dimension</key>
@@ -479,7 +418,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(284, 70)</value>
+ <value>(251, 141)</value>
</param>
<param>
<key>_rotation</key>
@@ -487,22 +426,30 @@
</param>
</block>
<block>
- <key>digital_constellation_decoder_cb</key>
+ <key>blocks_add_xx</key>
<param>
<key>id</key>
- <value>digital_constellation_decoder_cb_0</value>
+ <value>blocks_add_xx</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>constellation</key>
- <value>const.base()</value>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>num_inputs</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
<key>_coordinate</key>
- <value>(622, 164)</value>
+ <value>(510, 166)</value>
</param>
<param>
<key>_rotation</key>
@@ -510,10 +457,10 @@
</param>
</block>
<block>
- <key>blocks_add_xx</key>
+ <key>wxgui_scopesink2</key>
<param>
<key>id</key>
- <value>blocks_add_xx</value>
+ <value>wxgui_scopesink2_0</value>
</param>
<param>
<key>_enabled</key>
@@ -524,16 +471,60 @@
<value>complex</value>
</param>
<param>
- <key>num_inputs</key>
- <value>2</value>
+ <key>title</key>
+ <value>"Constellation: "+str(const[const_type].arity()) + "-PSK"</value>
</param>
<param>
- <key>vlen</key>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>v_scale</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>v_offset</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>t_scale</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>ac_couple</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>xy_mode</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>num_inputs</key>
<value>1</value>
</param>
<param>
+ <key>win_size</key>
+ <value></value>
+ </param>
+ <param>
+ <key>grid_pos</key>
+ <value>2, 0, 1, 1</value>
+ </param>
+ <param>
+ <key>notebook</key>
+ <value></value>
+ </param>
+ <param>
+ <key>trig_mode</key>
+ <value>gr.gr_TRIG_MODE_AUTO</value>
+ </param>
+ <param>
+ <key>y_axis_label</key>
+ <value>Counts</value>
+ </param>
+ <param>
<key>_coordinate</key>
- <value>(469, 210)</value>
+ <value>(702, 229)</value>
</param>
<param>
<key>_rotation</key>
@@ -541,10 +532,10 @@
</param>
</block>
<block>
- <key>analog_noise_source_x</key>
+ <key>wxgui_numbersink2</key>
<param>
<key>id</key>
- <value>analog_noise_source_x_0</value>
+ <value>wxgui_numbersink2</value>
</param>
<param>
<key>_enabled</key>
@@ -552,23 +543,98 @@
</param>
<param>
<key>type</key>
- <value>complex</value>
+ <value>float</value>
</param>
<param>
- <key>noise_type</key>
- <value>analog.GR_GAUSSIAN</value>
+ <key>title</key>
+ <value>BER</value>
</param>
<param>
- <key>amp</key>
- <value>1.0/math.sqrt(2.0 * const.bits_per_symbol() * 10*(EbN0/10))</value>
+ <key>units</key>
+ <value>%</value>
</param>
<param>
- <key>seed</key>
- <value>-42</value>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>min_value</key>
+ <value>0.0</value>
+ </param>
+ <param>
+ <key>max_value</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>factor</key>
+ <value>100</value>
+ </param>
+ <param>
+ <key>decimal_places</key>
+ <value>4</value>
+ </param>
+ <param>
+ <key>ref_level</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>number_rate</key>
+ <value>15</value>
+ </param>
+ <param>
+ <key>peak_hold</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>average</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>avg_alpha</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>show_gauge</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>win_size</key>
+ <value></value>
+ </param>
+ <param>
+ <key>grid_pos</key>
+ <value>1, 0, 1, 1</value>
+ </param>
+ <param>
+ <key>notebook</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(16, 224)</value>
+ <value>(852, 229)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>180</value>
+ </param>
+ </block>
+ <block>
+ <key>digital_constellation_decoder_cb</key>
+ <param>
+ <key>id</key>
+ <value>digital_constellation_decoder_cb_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>constellation</key>
+ <value>const[const_type].base()</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(701, 165)</value>
</param>
<param>
<key>_rotation</key>
@@ -588,44 +654,44 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>random_source_x</source_block_id>
- <sink_block_id>gr_throttle</sink_block_id>
+ <source_block_id>digital_chunks_to_symbols_xx</source_block_id>
+ <sink_block_id>blocks_add_xx</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_add_xx</source_block_id>
- <sink_block_id>wxgui_scopesink2_0</sink_block_id>
+ <source_block_id>analog_noise_source_x</source_block_id>
+ <sink_block_id>blocks_add_xx</sink_block_id>
<source_key>0</source_key>
- <sink_key>0</sink_key>
+ <sink_key>1</sink_key>
</connection>
<connection>
- <source_block_id>digital_constellation_decoder_cb_0</source_block_id>
- <sink_block_id>blks2_error_rate</sink_block_id>
+ <source_block_id>random_source_x</source_block_id>
+ <sink_block_id>gr_throttle</sink_block_id>
<source_key>0</source_key>
- <sink_key>1</sink_key>
+ <sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_add_xx</source_block_id>
- <sink_block_id>digital_constellation_decoder_cb_0</sink_block_id>
+ <source_block_id>random_source_x</source_block_id>
+ <sink_block_id>digital_chunks_to_symbols_xx</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>random_source_x</source_block_id>
- <sink_block_id>digital_chunks_to_symbols_xx_0</sink_block_id>
+ <source_block_id>blocks_add_xx</source_block_id>
+ <sink_block_id>wxgui_scopesink2_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_chunks_to_symbols_xx_0</source_block_id>
- <sink_block_id>blocks_add_xx</sink_block_id>
+ <source_block_id>blocks_add_xx</source_block_id>
+ <sink_block_id>digital_constellation_decoder_cb_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>analog_noise_source_x_0</source_block_id>
- <sink_block_id>blocks_add_xx</sink_block_id>
+ <source_block_id>digital_constellation_decoder_cb_0</source_block_id>
+ <sink_block_id>blks2_error_rate</sink_block_id>
<source_key>0</source_key>
<sink_key>1</sink_key>
</connection>
diff --git a/gr-digital/examples/demod/digital_freq_lock.grc b/gr-digital/examples/demod/digital_freq_lock.grc
index c08251b8bc..1844c8c779 100644
--- a/gr-digital/examples/demod/digital_freq_lock.grc
+++ b/gr-digital/examples/demod/digital_freq_lock.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Mon Jul 16 21:25:18 2012</timestamp>
+ <timestamp>Mon Jan 14 10:49:20 2013</timestamp>
<block>
<key>options</key>
<param>
@@ -64,19 +64,35 @@
<key>random_source_x</key>
<param>
<key>id</key>
- <value>sps</value>
+ <value>random_source_x</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>4</value>
+ <key>type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>min</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>max</key>
+ <value>256</value>
+ </param>
+ <param>
+ <key>num_samps</key>
+ <value>10000000</value>
+ </param>
+ <param>
+ <key>repeat</key>
+ <value>True</value>
</param>
<param>
<key>_coordinate</key>
- <value>(166, -2)</value>
+ <value>(-2, 111)</value>
</param>
<param>
<key>_rotation</key>
@@ -84,22 +100,30 @@
</param>
</block>
<block>
- <key>variable</key>
+ <key>gr_throttle</key>
<param>
<key>id</key>
- <value>rolloff</value>
+ <value>gr_throttle_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>0.35</value>
+ <key>type</key>
+ <value>complex</value>
+ </param>
+ <param>
+ <key>samples_per_second</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
<key>_coordinate</key>
- <value>(231, 0)</value>
+ <value>(456, 134)</value>
</param>
<param>
<key>_rotation</key>
@@ -110,7 +134,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>samp_rate</value>
+ <value>sps</value>
</param>
<param>
<key>_enabled</key>
@@ -118,11 +142,11 @@
</param>
<param>
<key>value</key>
- <value>32000</value>
+ <value>4</value>
</param>
<param>
<key>_coordinate</key>
- <value>(439, -1)</value>
+ <value>(166, -2)</value>
</param>
<param>
<key>_rotation</key>
@@ -130,54 +154,61 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>noise_amp</value>
+ <value>rolloff</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Channel Noise</value>
+ <key>value</key>
+ <value>0.35</value>
</param>
<param>
- <key>value</key>
- <value>0</value>
+ <key>_coordinate</key>
+ <value>(231, 0)</value>
</param>
<param>
- <key>min</key>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>digital_fll_band_edge_cc</key>
<param>
- <key>max</key>
- <value>1.0</value>
+ <key>id</key>
+ <value>digital_fll_band_edge_cc_0</value>
</param>
<param>
- <key>num_steps</key>
- <value>1000</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>type</key>
+ <value>cc</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>samps_per_sym</key>
+ <value>sps</value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>rolloff</key>
+ <value>rolloff</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>filter_size</key>
+ <value>44</value>
+ </param>
+ <param>
+ <key>w</key>
+ <value>freq_bw</value>
</param>
<param>
<key>_coordinate</key>
- <value>(553, 0)</value>
+ <value>(81, 248)</value>
</param>
<param>
<key>_rotation</key>
@@ -188,7 +219,7 @@
<key>variable_slider</key>
<param>
<key>id</key>
- <value>freq_offset</value>
+ <value>freq_bw</value>
</param>
<param>
<key>_enabled</key>
@@ -196,7 +227,7 @@
</param>
<param>
<key>label</key>
- <value>Frequency Offset</value>
+ <value>FLL Loop Bandwidth</value>
</param>
<param>
<key>value</key>
@@ -204,11 +235,11 @@
</param>
<param>
<key>min</key>
- <value>-0.5</value>
+ <value>0</value>
</param>
<param>
<key>max</key>
- <value>0.5</value>
+ <value>0.1</value>
</param>
<param>
<key>num_steps</key>
@@ -232,7 +263,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(673, -1)</value>
+ <value>(80, 382)</value>
</param>
<param>
<key>_rotation</key>
@@ -240,46 +271,22 @@
</param>
</block>
<block>
- <key>digital_psk_mod</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>digital_psk_mod_0</value>
+ <value>samp_rate</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>constellation_points</key>
- <value>2</value>
- </param>
- <param>
- <key>mod_code</key>
- <value>"gray"</value>
- </param>
- <param>
- <key>differential</key>
- <value>False</value>
- </param>
- <param>
- <key>samples_per_symbol</key>
- <value>sps</value>
- </param>
- <param>
- <key>excess_bw</key>
- <value>0.35</value>
- </param>
- <param>
- <key>verbose</key>
- <value>False</value>
- </param>
- <param>
- <key>log</key>
- <value>False</value>
+ <key>value</key>
+ <value>32000</value>
</param>
<param>
<key>_coordinate</key>
- <value>(194, 104)</value>
+ <value>(439, -1)</value>
</param>
<param>
<key>_rotation</key>
@@ -287,74 +294,42 @@
</param>
</block>
<block>
- <key>wxgui_fftsink2</key>
+ <key>variable_slider</key>
<param>
<key>id</key>
- <value>wxgui_fftsink2_0_0</value>
+ <value>noise_amp</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>title</key>
- <value>Frequency Corrected Signal</value>
- </param>
- <param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>label</key>
+ <value>Channel Noise</value>
</param>
<param>
- <key>baseband_freq</key>
+ <key>value</key>
<value>0</value>
</param>
<param>
- <key>y_per_div</key>
- <value>10</value>
- </param>
- <param>
- <key>y_divs</key>
- <value>10</value>
- </param>
- <param>
- <key>ref_level</key>
- <value>10</value>
- </param>
- <param>
- <key>ref_scale</key>
- <value>2.0</value>
- </param>
- <param>
- <key>fft_size</key>
- <value>1024</value>
- </param>
- <param>
- <key>fft_rate</key>
- <value>30</value>
- </param>
- <param>
- <key>peak_hold</key>
- <value>False</value>
+ <key>min</key>
+ <value>0</value>
</param>
<param>
- <key>average</key>
- <value>False</value>
+ <key>max</key>
+ <value>1.0</value>
</param>
<param>
- <key>avg_alpha</key>
- <value>0</value>
+ <key>num_steps</key>
+ <value>1000</value>
</param>
<param>
- <key>win</key>
- <value>None</value>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
</param>
<param>
- <key>win_size</key>
- <value></value>
+ <key>converver</key>
+ <value>float_converter</value>
</param>
<param>
<key>grid_pos</key>
@@ -362,15 +337,11 @@
</param>
<param>
<key>notebook</key>
- <value>notebook_0,0</value>
- </param>
- <param>
- <key>freqvar</key>
- <value>None</value>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(439, 423)</value>
+ <value>(553, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -378,38 +349,54 @@
</param>
</block>
<block>
- <key>random_source_x</key>
+ <key>variable_slider</key>
<param>
<key>id</key>
- <value>random_source_x</value>
+ <value>freq_offset</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>byte</value>
+ <key>label</key>
+ <value>Frequency Offset</value>
</param>
<param>
- <key>min</key>
+ <key>value</key>
<value>0</value>
</param>
<param>
+ <key>min</key>
+ <value>-0.5</value>
+ </param>
+ <param>
<key>max</key>
- <value>256</value>
+ <value>0.5</value>
</param>
<param>
- <key>num_samps</key>
- <value>10000000</value>
+ <key>num_steps</key>
+ <value>1000</value>
</param>
<param>
- <key>repeat</key>
- <value>True</value>
+ <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>(0, 112)</value>
+ <value>(673, -1)</value>
</param>
<param>
<key>_rotation</key>
@@ -417,30 +404,38 @@
</param>
</block>
<block>
- <key>gr_throttle</key>
+ <key>channels_channel_model</key>
<param>
<key>id</key>
- <value>gr_throttle_0</value>
+ <value>channels_channel_model_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
+ <key>noise_voltage</key>
+ <value>noise_amp</value>
</param>
<param>
- <key>samples_per_second</key>
- <value>samp_rate</value>
+ <key>freq_offset</key>
+ <value>freq_offset</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>epsilon</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>taps</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>seed</key>
+ <value>42</value>
</param>
<param>
<key>_coordinate</key>
- <value>(489, 179)</value>
+ <value>(649, 104)</value>
</param>
<param>
<key>_rotation</key>
@@ -515,7 +510,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(990, 0)</value>
+ <value>(875, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -606,7 +601,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(990, 147)</value>
+ <value>(875, 108)</value>
</param>
<param>
<key>_rotation</key>
@@ -614,61 +609,54 @@
</param>
</block>
<block>
- <key>channel_model</key>
+ <key>wxgui_scopesink2</key>
<param>
<key>id</key>
- <value>channel_model_0</value>
+ <value>wxgui_scopesink2_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>noise_voltage</key>
- <value>noise_amp</value>
- </param>
- <param>
- <key>freq_offset</key>
- <value>freq_offset</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>epsilon</key>
- <value>1.0</value>
+ <key>title</key>
+ <value>Frequency Corrected Signal</value>
</param>
<param>
- <key>taps</key>
- <value>1.0</value>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>seed</key>
+ <key>v_scale</key>
<value>0</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(743, 147)</value>
+ <key>v_offset</key>
+ <value>0</value>
</param>
<param>
- <key>_rotation</key>
+ <key>t_scale</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>notebook</key>
<param>
- <key>id</key>
- <value>notebook_0</value>
+ <key>ac_couple</key>
+ <value>False</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>xy_mode</key>
+ <value>False</value>
</param>
<param>
- <key>style</key>
- <value>wx.NB_TOP</value>
+ <key>num_inputs</key>
+ <value>1</value>
</param>
<param>
- <key>labels</key>
- <value>['Freq', 'Time']</value>
+ <key>win_size</key>
+ <value></value>
</param>
<param>
<key>grid_pos</key>
@@ -676,11 +664,19 @@
</param>
<param>
<key>notebook</key>
- <value></value>
+ <value>notebook_0,1</value>
+ </param>
+ <param>
+ <key>trig_mode</key>
+ <value>gr.gr_TRIG_MODE_AUTO</value>
+ </param>
+ <param>
+ <key>y_axis_label</key>
+ <value>Counts</value>
</param>
<param>
<key>_coordinate</key>
- <value>(76, 579)</value>
+ <value>(439, 289)</value>
</param>
<param>
<key>_rotation</key>
@@ -688,93 +684,90 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>wxgui_fftsink2</key>
<param>
<key>id</key>
- <value>freq_bw</value>
+ <value>wxgui_fftsink2_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>FLL Loop Bandwidth</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>value</key>
- <value>0</value>
+ <key>title</key>
+ <value>Frequency Corrected Signal</value>
</param>
<param>
- <key>min</key>
- <value>0</value>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>max</key>
- <value>0.1</value>
+ <key>baseband_freq</key>
+ <value>0</value>
</param>
<param>
- <key>num_steps</key>
- <value>1000</value>
+ <key>y_per_div</key>
+ <value>10</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>y_divs</key>
+ <value>10</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>ref_level</key>
+ <value>10</value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>ref_scale</key>
+ <value>2.0</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>fft_size</key>
+ <value>1024</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(77, 449)</value>
+ <key>fft_rate</key>
+ <value>30</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>peak_hold</key>
+ <value>False</value>
</param>
- </block>
- <block>
- <key>digital_fll_band_edge_cc</key>
<param>
- <key>id</key>
- <value>digital_fll_band_edge_cc_0</value>
+ <key>average</key>
+ <value>False</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>avg_alpha</key>
+ <value>0</value>
</param>
<param>
- <key>type</key>
- <value>cc</value>
+ <key>win</key>
+ <value>None</value>
</param>
<param>
- <key>samps_per_sym</key>
- <value>sps</value>
+ <key>win_size</key>
+ <value></value>
</param>
<param>
- <key>rolloff</key>
- <value>rolloff</value>
+ <key>grid_pos</key>
+ <value></value>
</param>
<param>
- <key>filter_size</key>
- <value>44</value>
+ <key>notebook</key>
+ <value>notebook_0,0</value>
</param>
<param>
- <key>w</key>
- <value>freq_bw</value>
+ <key>freqvar</key>
+ <value>None</value>
</param>
<param>
<key>_coordinate</key>
- <value>(78, 308)</value>
+ <value>(439, 423)</value>
</param>
<param>
<key>_rotation</key>
@@ -782,54 +775,22 @@
</param>
</block>
<block>
- <key>wxgui_scopesink2</key>
+ <key>notebook</key>
<param>
<key>id</key>
- <value>wxgui_scopesink2_0_0</value>
+ <value>notebook_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>title</key>
- <value>Frequency Corrected Signal</value>
- </param>
- <param>
- <key>samp_rate</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>v_scale</key>
- <value>0</value>
- </param>
- <param>
- <key>v_offset</key>
- <value>0</value>
- </param>
- <param>
- <key>t_scale</key>
- <value>0</value>
- </param>
- <param>
- <key>ac_couple</key>
- <value>False</value>
- </param>
- <param>
- <key>xy_mode</key>
- <value>False</value>
- </param>
- <param>
- <key>num_inputs</key>
- <value>1</value>
+ <key>style</key>
+ <value>wx.NB_TOP</value>
</param>
<param>
- <key>win_size</key>
- <value></value>
+ <key>labels</key>
+ <value>['Freq', 'Time']</value>
</param>
<param>
<key>grid_pos</key>
@@ -837,19 +798,11 @@
</param>
<param>
<key>notebook</key>
- <value>notebook_0,1</value>
- </param>
- <param>
- <key>trig_mode</key>
- <value>gr.gr_TRIG_MODE_AUTO</value>
- </param>
- <param>
- <key>y_axis_label</key>
- <value>Counts</value>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(439, 306)</value>
+ <value>(114, 521)</value>
</param>
<param>
<key>_rotation</key>
@@ -857,58 +810,46 @@
</param>
</block>
<block>
- <key>options</key>
+ <key>digital_psk_mod</key>
<param>
<key>id</key>
- <value>freq_lock</value>
+ <value>digital_psk_mod_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>title</key>
- <value></value>
- </param>
- <param>
- <key>author</key>
- <value></value>
- </param>
- <param>
- <key>description</key>
- <value></value>
- </param>
- <param>
- <key>window_size</key>
- <value>1280, 1024</value>
+ <key>constellation_points</key>
+ <value>2</value>
</param>
<param>
- <key>generate_options</key>
- <value>wx_gui</value>
+ <key>mod_code</key>
+ <value>"gray"</value>
</param>
<param>
- <key>category</key>
- <value>Custom</value>
+ <key>differential</key>
+ <value>False</value>
</param>
<param>
- <key>run_options</key>
- <value>prompt</value>
+ <key>samples_per_symbol</key>
+ <value>sps</value>
</param>
<param>
- <key>run</key>
- <value>True</value>
+ <key>excess_bw</key>
+ <value>rolloff</value>
</param>
<param>
- <key>max_nouts</key>
- <value>0</value>
+ <key>verbose</key>
+ <value>False</value>
</param>
<param>
- <key>realtime_scheduling</key>
- <value></value>
+ <key>log</key>
+ <value>False</value>
</param>
<param>
<key>_coordinate</key>
- <value>(-1, 0)</value>
+ <value>(194, 104)</value>
</param>
<param>
<key>_rotation</key>
@@ -916,50 +857,50 @@
</param>
</block>
<connection>
- <source_block_id>random_source_x</source_block_id>
- <sink_block_id>digital_psk_mod_0</sink_block_id>
+ <source_block_id>channels_channel_model_0</source_block_id>
+ <sink_block_id>wxgui_scopesink2_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_psk_mod_0</source_block_id>
- <sink_block_id>gr_throttle_0</sink_block_id>
+ <source_block_id>channels_channel_model_0</source_block_id>
+ <sink_block_id>wxgui_fftsink2_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_fll_band_edge_cc_0</source_block_id>
- <sink_block_id>wxgui_scopesink2_0_0</sink_block_id>
+ <source_block_id>random_source_x</source_block_id>
+ <sink_block_id>digital_psk_mod_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_fll_band_edge_cc_0</source_block_id>
- <sink_block_id>wxgui_fftsink2_0_0</sink_block_id>
+ <source_block_id>digital_psk_mod_0</source_block_id>
+ <sink_block_id>gr_throttle_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>gr_throttle_0</source_block_id>
- <sink_block_id>channel_model_0</sink_block_id>
+ <sink_block_id>channels_channel_model_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>channel_model_0</source_block_id>
- <sink_block_id>wxgui_scopesink2_0</sink_block_id>
+ <source_block_id>channels_channel_model_0</source_block_id>
+ <sink_block_id>digital_fll_band_edge_cc_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>channel_model_0</source_block_id>
- <sink_block_id>wxgui_fftsink2_0</sink_block_id>
+ <source_block_id>digital_fll_band_edge_cc_0</source_block_id>
+ <sink_block_id>wxgui_scopesink2_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>channel_model_0</source_block_id>
- <sink_block_id>digital_fll_band_edge_cc_0</sink_block_id>
+ <source_block_id>digital_fll_band_edge_cc_0</source_block_id>
+ <sink_block_id>wxgui_fftsink2_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
diff --git a/gr-digital/examples/demod/pam_sync.grc b/gr-digital/examples/demod/pam_sync.grc
index d9afb3100c..d9d4239c98 100644
--- a/gr-digital/examples/demod/pam_sync.grc
+++ b/gr-digital/examples/demod/pam_sync.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Thu Dec 27 13:26:17 2012</timestamp>
+ <timestamp>Mon Jan 14 10:47:40 2013</timestamp>
<block>
<key>options</key>
<param>
@@ -84,22 +84,22 @@
</param>
</block>
<block>
- <key>variable</key>
+ <key>virtual_sink</key>
<param>
<key>id</key>
- <value>rrctaps</value>
+ <value>virtual_sink_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>firdes.root_raised_cosine(nfilts,1.0,1.0/(spb*nfilts), rolloff, int(11*spb*nfilts))</value>
+ <key>stream_id</key>
+ <value>input_signal_probe</value>
</param>
<param>
<key>_coordinate</key>
- <value>(686, -1)</value>
+ <value>(330, 183)</value>
</param>
<param>
<key>_rotation</key>
@@ -107,45 +107,54 @@
</param>
</block>
<block>
- <key>variable</key>
+ <key>digital_pfb_clock_sync_xxx</key>
<param>
<key>id</key>
- <value>rolloff</value>
+ <value>digital_pfb_clock_sync_xxx_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>0.35</value>
+ <key>type</key>
+ <value>ccf</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(607, -1)</value>
+ <key>sps</key>
+ <value>spb</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>alpha</key>
+ <value>time_alpha</value>
</param>
- </block>
- <block>
- <key>variable</key>
<param>
- <key>id</key>
- <value>spb</value>
+ <key>beta</key>
+ <value>time_beta</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>taps</key>
+ <value>rrctaps</value>
</param>
<param>
- <key>value</key>
- <value>4.0</value>
+ <key>filter_size</key>
+ <value>nfilts</value>
+ </param>
+ <param>
+ <key>init_phase</key>
+ <value>16</value>
+ </param>
+ <param>
+ <key>max_dev</key>
+ <value>1.5</value>
+ </param>
+ <param>
+ <key>osps</key>
+ <value>1</value>
</param>
<param>
<key>_coordinate</key>
- <value>(542, -1)</value>
+ <value>(598, 241)</value>
</param>
<param>
<key>_rotation</key>
@@ -153,22 +162,38 @@
</param>
</block>
<block>
- <key>variable</key>
+ <key>digital_fll_band_edge_cc</key>
<param>
<key>id</key>
- <value>sig_amp</value>
+ <value>digital_fll_band_edge_cc_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>1.0</value>
+ <key>type</key>
+ <value>cc</value>
+ </param>
+ <param>
+ <key>samps_per_sym</key>
+ <value>spb</value>
+ </param>
+ <param>
+ <key>rolloff</key>
+ <value>rolloff</value>
+ </param>
+ <param>
+ <key>filter_size</key>
+ <value>44</value>
+ </param>
+ <param>
+ <key>w</key>
+ <value>freq_bw</value>
</param>
<param>
<key>_coordinate</key>
- <value>(861, 0)</value>
+ <value>(331, 239)</value>
</param>
<param>
<key>_rotation</key>
@@ -179,7 +204,7 @@
<key>variable</key>
<param>
<key>id</key>
- <value>nfilts</value>
+ <value>samp_rate</value>
</param>
<param>
<key>_enabled</key>
@@ -187,11 +212,11 @@
</param>
<param>
<key>value</key>
- <value>32</value>
+ <value>128000</value>
</param>
<param>
<key>_coordinate</key>
- <value>(598, 186)</value>
+ <value>(193, -1)</value>
</param>
<param>
<key>_rotation</key>
@@ -199,22 +224,38 @@
</param>
</block>
<block>
- <key>variable</key>
+ <key>random_source_x</key>
<param>
<key>id</key>
- <value>samp_rate</value>
+ <value>random_source_x</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>128000</value>
+ <key>type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>min</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>max</key>
+ <value>const.arity()</value>
+ </param>
+ <param>
+ <key>num_samps</key>
+ <value>10000000</value>
+ </param>
+ <param>
+ <key>repeat</key>
+ <value>True</value>
</param>
<param>
<key>_coordinate</key>
- <value>(193, -1)</value>
+ <value>(0, 72)</value>
</param>
<param>
<key>_rotation</key>
@@ -222,22 +263,38 @@
</param>
</block>
<block>
- <key>virtual_source</key>
+ <key>channels_channel_model</key>
<param>
<key>id</key>
- <value>virtual_source_0</value>
+ <value>channels_channel_model_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>stream_id</key>
- <value>input_signal_probe</value>
+ <key>noise_voltage</key>
+ <value>noise_amp</value>
+ </param>
+ <param>
+ <key>freq_offset</key>
+ <value>freq_offset</value>
+ </param>
+ <param>
+ <key>epsilon</key>
+ <value>interpratio</value>
+ </param>
+ <param>
+ <key>taps</key>
+ <value>1.0</value>
+ </param>
+ <param>
+ <key>seed</key>
+ <value>42</value>
</param>
<param>
<key>_coordinate</key>
- <value>(835, 562)</value>
+ <value>(46, 183)</value>
</param>
<param>
<key>_rotation</key>
@@ -245,10 +302,10 @@
</param>
</block>
<block>
- <key>random_source_x</key>
+ <key>gr_throttle</key>
<param>
<key>id</key>
- <value>random_source_x</value>
+ <value>gr_throttle_0</value>
</param>
<param>
<key>_enabled</key>
@@ -256,27 +313,19 @@
</param>
<param>
<key>type</key>
- <value>byte</value>
- </param>
- <param>
- <key>min</key>
- <value>0</value>
- </param>
- <param>
- <key>max</key>
- <value>const.arity()</value>
+ <value>complex</value>
</param>
<param>
- <key>num_samps</key>
- <value>10000000</value>
+ <key>samples_per_second</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>repeat</key>
- <value>True</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
<key>_coordinate</key>
- <value>(0, 72)</value>
+ <value>(857, 95)</value>
</param>
<param>
<key>_rotation</key>
@@ -284,26 +333,22 @@
</param>
</block>
<block>
- <key>digital_costas_loop_cc</key>
+ <key>virtual_source</key>
<param>
<key>id</key>
- <value>digital_costas_loop_cc_0</value>
+ <value>virtual_source_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>w</key>
- <value>phase_bw</value>
- </param>
- <param>
- <key>order</key>
- <value>4</value>
+ <key>stream_id</key>
+ <value>input_signal_probe</value>
</param>
<param>
<key>_coordinate</key>
- <value>(866, 246)</value>
+ <value>(835, 562)</value>
</param>
<param>
<key>_rotation</key>
@@ -314,7 +359,7 @@
<key>wxgui_scopesink2</key>
<param>
<key>id</key>
- <value>wxgui_scopesink2_0</value>
+ <value>wxgui_scopesink2_0_0_1</value>
</param>
<param>
<key>_enabled</key>
@@ -326,7 +371,7 @@
</param>
<param>
<key>title</key>
- <value>Post-sync Signal</value>
+ <value>Pre-sync Signal</value>
</param>
<param>
<key>samp_rate</key>
@@ -334,7 +379,7 @@
</param>
<param>
<key>v_scale</key>
- <value>0</value>
+ <value>.5</value>
</param>
<param>
<key>v_offset</key>
@@ -350,7 +395,7 @@
</param>
<param>
<key>xy_mode</key>
- <value>True</value>
+ <value>False</value>
</param>
<param>
<key>num_inputs</key>
@@ -366,7 +411,7 @@
</param>
<param>
<key>notebook</key>
- <value>notebook_0,0</value>
+ <value>notebook_0,1</value>
</param>
<param>
<key>trig_mode</key>
@@ -378,7 +423,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1094, 202)</value>
+ <value>(1081, 439)</value>
</param>
<param>
<key>_rotation</key>
@@ -386,54 +431,90 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>wxgui_fftsink2</key>
<param>
<key>id</key>
- <value>noise_amp</value>
+ <value>wxgui_fftsink2_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Channels_Channel Noise</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>value</key>
- <value>0</value>
+ <key>title</key>
+ <value>Received spectrum</value>
</param>
<param>
- <key>min</key>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>baseband_freq</key>
<value>0</value>
</param>
<param>
- <key>max</key>
- <value>1.0</value>
+ <key>y_per_div</key>
+ <value>10</value>
</param>
<param>
- <key>num_steps</key>
- <value>1000</value>
+ <key>y_divs</key>
+ <value>10</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>ref_level</key>
+ <value>10</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>ref_scale</key>
+ <value>2.0</value>
+ </param>
+ <param>
+ <key>fft_size</key>
+ <value>1024</value>
+ </param>
+ <param>
+ <key>fft_rate</key>
+ <value>30</value>
+ </param>
+ <param>
+ <key>peak_hold</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>average</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>avg_alpha</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>win</key>
+ <value>None</value>
+ </param>
+ <param>
+ <key>win_size</key>
+ <value></value>
</param>
<param>
<key>grid_pos</key>
- <value>(1,2,1,1)</value>
+ <value></value>
</param>
<param>
<key>notebook</key>
- <value></value>
+ <value>notebook_0,1</value>
+ </param>
+ <param>
+ <key>freqvar</key>
+ <value>None</value>
</param>
<param>
<key>_coordinate</key>
- <value>(152, 373)</value>
+ <value>(1081, 563)</value>
</param>
<param>
<key>_rotation</key>
@@ -441,167 +522,165 @@
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>wxgui_fftsink2</key>
<param>
<key>id</key>
- <value>interpratio</value>
+ <value>wxgui_fftsink2_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Timing Offset</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>value</key>
- <value>1.00</value>
+ <key>title</key>
+ <value>Post-sync spectrum</value>
</param>
<param>
- <key>min</key>
- <value>0.99</value>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>max</key>
- <value>1.01</value>
+ <key>baseband_freq</key>
+ <value>0</value>
</param>
<param>
- <key>num_steps</key>
- <value>1000</value>
+ <key>y_per_div</key>
+ <value>10</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>y_divs</key>
+ <value>10</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>ref_level</key>
+ <value>10</value>
</param>
<param>
- <key>grid_pos</key>
- <value>(3,2,1,1)</value>
+ <key>ref_scale</key>
+ <value>2.0</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>fft_size</key>
+ <value>1024</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(11, 517)</value>
+ <key>fft_rate</key>
+ <value>30</value>
</param>
<param>
- <key>_rotation</key>
- <value>180</value>
+ <key>peak_hold</key>
+ <value>False</value>
</param>
- </block>
- <block>
- <key>notebook</key>
<param>
- <key>id</key>
- <value>notebook_0</value>
+ <key>average</key>
+ <value>False</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>avg_alpha</key>
+ <value>0</value>
</param>
<param>
- <key>style</key>
- <value>wx.NB_TOP</value>
+ <key>win</key>
+ <value>None</value>
</param>
<param>
- <key>labels</key>
- <value>['Synched Signal', 'Received Signal']</value>
+ <key>win_size</key>
+ <value></value>
</param>
<param>
<key>grid_pos</key>
- <value>(1,1,8,1)</value>
+ <value></value>
</param>
<param>
<key>notebook</key>
- <value></value>
+ <value>notebook_0,0</value>
+ </param>
+ <param>
+ <key>freqvar</key>
+ <value>None</value>
</param>
<param>
<key>_coordinate</key>
- <value>(9, 664)</value>
+ <value>(347, 516)</value>
</param>
<param>
<key>_rotation</key>
- <value>0</value>
+ <value>180</value>
</param>
</block>
<block>
- <key>variable_slider</key>
+ <key>wxgui_scopesink2</key>
<param>
<key>id</key>
- <value>freq_offset</value>
+ <value>wxgui_scopesink2_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>label</key>
- <value>Frequency Offset</value>
+ <key>type</key>
+ <value>complex</value>
</param>
<param>
- <key>value</key>
- <value>0</value>
+ <key>title</key>
+ <value>Post-sync Signal</value>
</param>
<param>
- <key>min</key>
- <value>-0.5</value>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
</param>
<param>
- <key>max</key>
- <value>0.5</value>
+ <key>v_scale</key>
+ <value>0</value>
</param>
<param>
- <key>num_steps</key>
- <value>1000</value>
+ <key>v_offset</key>
+ <value>0</value>
</param>
<param>
- <key>style</key>
- <value>wx.SL_HORIZONTAL</value>
+ <key>t_scale</key>
+ <value>0</value>
</param>
<param>
- <key>converver</key>
- <value>float_converter</value>
+ <key>ac_couple</key>
+ <value>False</value>
</param>
<param>
- <key>grid_pos</key>
- <value>(2,2,1,1)</value>
+ <key>xy_mode</key>
+ <value>True</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>num_inputs</key>
+ <value>1</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(13, 372)</value>
+ <key>win_size</key>
+ <value></value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>grid_pos</key>
+ <value></value>
</param>
- </block>
- <block>
- <key>virtual_sink</key>
<param>
- <key>id</key>
- <value>virtual_sink_0</value>
+ <key>notebook</key>
+ <value>notebook_0,0</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>trig_mode</key>
+ <value>gr.gr_TRIG_MODE_AUTO</value>
</param>
<param>
- <key>stream_id</key>
- <value>input_signal_probe</value>
+ <key>y_axis_label</key>
+ <value>Counts</value>
</param>
<param>
<key>_coordinate</key>
- <value>(330, 183)</value>
+ <value>(1085, 213)</value>
</param>
<param>
<key>_rotation</key>
@@ -609,88 +688,65 @@
</param>
</block>
<block>
- <key>digital_fll_band_edge_cc</key>
+ <key>variable_slider</key>
<param>
<key>id</key>
- <value>digital_fll_band_edge_cc_0</value>
+ <value>freq_bw</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>cc</value>
- </param>
- <param>
- <key>samps_per_sym</key>
- <value>spb</value>
- </param>
- <param>
- <key>rolloff</key>
- <value>rolloff</value>
- </param>
- <param>
- <key>filter_size</key>
- <value>44</value>
- </param>
- <param>
- <key>w</key>
- <value>freq_bw</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(331, 239)</value>
+ <key>label</key>
+ <value>FLL Bandwidth</value>
</param>
<param>
- <key>_rotation</key>
+ <key>value</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>channels_channel_model</key>
<param>
- <key>id</key>
- <value>channels_channel_model_0</value>
+ <key>min</key>
+ <value>0.0</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>max</key>
+ <value>0.05</value>
</param>
<param>
- <key>noise_voltage</key>
- <value>noise_amp</value>
+ <key>num_steps</key>
+ <value>1000</value>
</param>
<param>
- <key>freq_offset</key>
- <value>freq_offset</value>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
</param>
<param>
- <key>epsilon</key>
- <value>interpratio</value>
+ <key>converver</key>
+ <value>float_converter</value>
</param>
<param>
- <key>taps</key>
- <value>1.0</value>
+ <key>grid_pos</key>
+ <value>(4,2,1,1)</value>
</param>
<param>
- <key>seed</key>
- <value>0</value>
+ <key>notebook</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(77, 183)</value>
+ <value>(341, 373)</value>
</param>
<param>
<key>_rotation</key>
- <value>0</value>
+ <value>180</value>
</param>
</block>
<block>
<key>variable_slider</key>
<param>
<key>id</key>
- <value>phase_bw</value>
+ <value>time_alpha</value>
</param>
<param>
<key>_enabled</key>
@@ -698,7 +754,7 @@
</param>
<param>
<key>label</key>
- <value>Costas Loop (Phase) Bandwidth</value>
+ <value>Timing Alpha</value>
</param>
<param>
<key>value</key>
@@ -710,7 +766,7 @@
</param>
<param>
<key>max</key>
- <value>0.1</value>
+ <value>1</value>
</param>
<param>
<key>num_steps</key>
@@ -726,7 +782,7 @@
</param>
<param>
<key>grid_pos</key>
- <value>(7,2,1,1)</value>
+ <value>(5,2,1,1)</value>
</param>
<param>
<key>notebook</key>
@@ -734,7 +790,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(866, 318)</value>
+ <value>(598, 388)</value>
</param>
<param>
<key>_rotation</key>
@@ -742,165 +798,144 @@
</param>
</block>
<block>
- <key>wxgui_scopesink2</key>
+ <key>variable_slider</key>
<param>
<key>id</key>
- <value>wxgui_scopesink2_0_0_1</value>
+ <value>time_beta</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>title</key>
- <value>Pre-sync Signal</value>
- </param>
- <param>
- <key>samp_rate</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>v_scale</key>
- <value>.5</value>
+ <key>label</key>
+ <value>Timing Beta</value>
</param>
<param>
- <key>v_offset</key>
+ <key>value</key>
<value>0</value>
</param>
<param>
- <key>t_scale</key>
- <value>0</value>
+ <key>min</key>
+ <value>0.0</value>
</param>
<param>
- <key>ac_couple</key>
- <value>False</value>
+ <key>max</key>
+ <value>0.1</value>
</param>
<param>
- <key>xy_mode</key>
- <value>False</value>
+ <key>num_steps</key>
+ <value>1000</value>
</param>
<param>
- <key>num_inputs</key>
- <value>1</value>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
</param>
<param>
- <key>win_size</key>
- <value></value>
+ <key>converver</key>
+ <value>float_converter</value>
</param>
<param>
<key>grid_pos</key>
- <value></value>
+ <value>(6,2,1,1)</value>
</param>
<param>
<key>notebook</key>
- <value>notebook_0,1</value>
- </param>
- <param>
- <key>trig_mode</key>
- <value>gr.gr_TRIG_MODE_AUTO</value>
- </param>
- <param>
- <key>y_axis_label</key>
- <value>Counts</value>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(1086, 441)</value>
+ <value>(708, 388)</value>
</param>
<param>
<key>_rotation</key>
- <value>0</value>
+ <value>180</value>
</param>
</block>
<block>
- <key>wxgui_fftsink2</key>
+ <key>variable_slider</key>
<param>
<key>id</key>
- <value>wxgui_fftsink2_0</value>
+ <value>phase_bw</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
+ <key>label</key>
+ <value>Costas Loop (Phase) Bandwidth</value>
</param>
<param>
- <key>title</key>
- <value>Received spectrum</value>
+ <key>value</key>
+ <value>0</value>
</param>
<param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>min</key>
+ <value>0</value>
</param>
<param>
- <key>baseband_freq</key>
- <value>0</value>
+ <key>max</key>
+ <value>0.1</value>
</param>
<param>
- <key>y_per_div</key>
- <value>10</value>
+ <key>num_steps</key>
+ <value>1000</value>
</param>
<param>
- <key>y_divs</key>
- <value>10</value>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
</param>
<param>
- <key>ref_level</key>
- <value>10</value>
+ <key>converver</key>
+ <value>float_converter</value>
</param>
<param>
- <key>ref_scale</key>
- <value>2.0</value>
+ <key>grid_pos</key>
+ <value>(7,2,1,1)</value>
</param>
<param>
- <key>fft_size</key>
- <value>1024</value>
+ <key>notebook</key>
+ <value></value>
</param>
<param>
- <key>fft_rate</key>
- <value>30</value>
+ <key>_coordinate</key>
+ <value>(866, 313)</value>
</param>
<param>
- <key>peak_hold</key>
- <value>False</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>notebook</key>
<param>
- <key>average</key>
- <value>False</value>
+ <key>id</key>
+ <value>notebook_0</value>
</param>
<param>
- <key>avg_alpha</key>
- <value>0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>win</key>
- <value>None</value>
+ <key>style</key>
+ <value>wx.NB_TOP</value>
</param>
<param>
- <key>win_size</key>
- <value></value>
+ <key>labels</key>
+ <value>['Synched Signal', 'Received Signal']</value>
</param>
<param>
<key>grid_pos</key>
- <value></value>
+ <value>(1,1,8,1)</value>
</param>
<param>
<key>notebook</key>
- <value>notebook_0,1</value>
- </param>
- <param>
- <key>freqvar</key>
- <value>None</value>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(1086, 565)</value>
+ <value>(9, 601)</value>
</param>
<param>
<key>_rotation</key>
@@ -911,7 +946,7 @@
<key>variable_slider</key>
<param>
<key>id</key>
- <value>freq_bw</value>
+ <value>interpratio</value>
</param>
<param>
<key>_enabled</key>
@@ -919,19 +954,19 @@
</param>
<param>
<key>label</key>
- <value>FLL Bandwidth</value>
+ <value>Timing Offset</value>
</param>
<param>
<key>value</key>
- <value>0</value>
+ <value>1.00</value>
</param>
<param>
<key>min</key>
- <value>0.0</value>
+ <value>0.99</value>
</param>
<param>
<key>max</key>
- <value>0.05</value>
+ <value>1.01</value>
</param>
<param>
<key>num_steps</key>
@@ -947,7 +982,7 @@
</param>
<param>
<key>grid_pos</key>
- <value>(4,2,1,1)</value>
+ <value>(3,2,1,1)</value>
</param>
<param>
<key>notebook</key>
@@ -955,7 +990,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(154, 517)</value>
+ <value>(60, 407)</value>
</param>
<param>
<key>_rotation</key>
@@ -963,10 +998,10 @@
</param>
</block>
<block>
- <key>wxgui_fftsink2</key>
+ <key>blocks_multiply_const_vxx</key>
<param>
<key>id</key>
- <value>wxgui_fftsink2_0_0</value>
+ <value>blocks_multiply_const_vxx_0</value>
</param>
<param>
<key>_enabled</key>
@@ -977,107 +1012,101 @@
<value>complex</value>
</param>
<param>
- <key>title</key>
- <value>Post-sync spectrum</value>
- </param>
- <param>
- <key>samp_rate</key>
- <value>samp_rate</value>
+ <key>const</key>
+ <value>sig_amp</value>
</param>
<param>
- <key>baseband_freq</key>
- <value>0</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
- <key>y_per_div</key>
- <value>10</value>
+ <key>_coordinate</key>
+ <value>(659, 95)</value>
</param>
<param>
- <key>y_divs</key>
- <value>10</value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>digital_chunks_to_symbols_xx</key>
<param>
- <key>ref_level</key>
- <value>10</value>
+ <key>id</key>
+ <value>digital_chunks_to_symbols_xx</value>
</param>
<param>
- <key>ref_scale</key>
- <value>2.0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>fft_size</key>
- <value>1024</value>
+ <key>in_type</key>
+ <value>byte</value>
</param>
<param>
- <key>fft_rate</key>
- <value>30</value>
+ <key>out_type</key>
+ <value>complex</value>
</param>
<param>
- <key>peak_hold</key>
- <value>False</value>
+ <key>symbol_table</key>
+ <value>const.points()</value>
</param>
<param>
- <key>average</key>
- <value>False</value>
+ <key>dimension</key>
+ <value>1</value>
</param>
<param>
- <key>avg_alpha</key>
- <value>0</value>
+ <key>num_ports</key>
+ <value>1</value>
</param>
<param>
- <key>win</key>
- <value>None</value>
+ <key>_coordinate</key>
+ <value>(178, 87)</value>
</param>
<param>
- <key>win_size</key>
- <value></value>
+ <key>_rotation</key>
+ <value>0</value>
</param>
+ </block>
+ <block>
+ <key>variable</key>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>id</key>
+ <value>spb</value>
</param>
<param>
- <key>notebook</key>
- <value>notebook_0,0</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>freqvar</key>
- <value>None</value>
+ <key>value</key>
+ <value>4.0</value>
</param>
<param>
<key>_coordinate</key>
- <value>(349, 422)</value>
+ <value>(513, -1)</value>
</param>
<param>
<key>_rotation</key>
- <value>180</value>
+ <value>0</value>
</param>
</block>
<block>
- <key>blocks_multiply_const_vxx</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>blocks_multiply_const_vxx_0</value>
+ <value>rolloff</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>const</key>
- <value>sig_amp</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
+ <key>value</key>
+ <value>0.35</value>
</param>
<param>
<key>_coordinate</key>
- <value>(763, 96)</value>
+ <value>(578, -1)</value>
</param>
<param>
<key>_rotation</key>
@@ -1085,30 +1114,22 @@
</param>
</block>
<block>
- <key>gr_throttle</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>gr_throttle_0</value>
+ <value>rrctaps</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>samples_per_second</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
+ <key>value</key>
+ <value>firdes.root_raised_cosine(nfilts,1.0,1.0/(nfilts*spb), rolloff, int(11*spb*nfilts))</value>
</param>
<param>
<key>_coordinate</key>
- <value>(961, 96)</value>
+ <value>(660, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -1116,38 +1137,45 @@
</param>
</block>
<block>
- <key>pfb_arb_resampler_xxx</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>pfb_arb_resampler_xxx_0</value>
+ <value>sig_amp</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>ccf</value>
+ <key>value</key>
+ <value>1.0</value>
</param>
<param>
- <key>rrate</key>
- <value>spb</value>
+ <key>_coordinate</key>
+ <value>(887, -1)</value>
</param>
<param>
- <key>taps</key>
- <value>firdes.root_raised_cosine(32, 32, 1.0, 0.35, 44*32)</value>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>nfilts</value>
</param>
<param>
- <key>nfilts</key>
- <value>32</value>
+ <key>_enabled</key>
+ <value>True</value>
</param>
<param>
- <key>atten</key>
- <value>100</value>
+ <key>value</key>
+ <value>32</value>
</param>
<param>
<key>_coordinate</key>
- <value>(468, 72)</value>
+ <value>(816, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -1155,38 +1183,30 @@
</param>
</block>
<block>
- <key>digital_chunks_to_symbols_xx</key>
+ <key>blks2_pfb_arb_resampler_ccf</key>
<param>
<key>id</key>
- <value>digital_chunks_to_symbols_xx_0</value>
+ <value>blks2_pfb_arb_resampler_ccf_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>in_type</key>
- <value>byte</value>
- </param>
- <param>
- <key>out_type</key>
- <value>complex</value>
- </param>
- <param>
- <key>symbol_table</key>
- <value>const.points()</value>
+ <key>rate</key>
+ <value>spb</value>
</param>
<param>
- <key>dimension</key>
- <value>1</value>
+ <key>taps</key>
+ <value>firdes.root_raised_cosine(nfilts, 1.0, 1.0/nfilts, rolloff, int(11*spb*nfilts))</value>
</param>
<param>
- <key>num_ports</key>
- <value>1</value>
+ <key>size</key>
+ <value>nfilts</value>
</param>
<param>
<key>_coordinate</key>
- <value>(217, 88)</value>
+ <value>(411, 80)</value>
</param>
<param>
<key>_rotation</key>
@@ -1194,50 +1214,54 @@
</param>
</block>
<block>
- <key>digital_pfb_clock_sync_xxx</key>
+ <key>variable_slider</key>
<param>
<key>id</key>
- <value>digital_pfb_clock_sync_xxx_0</value>
+ <value>freq_offset</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>ccf</value>
+ <key>label</key>
+ <value>Frequency Offset</value>
</param>
<param>
- <key>sps</key>
- <value>spb</value>
+ <key>value</key>
+ <value>0</value>
</param>
<param>
- <key>loop_bw</key>
- <value>timing_loop_bw</value>
+ <key>min</key>
+ <value>-0.5</value>
</param>
<param>
- <key>taps</key>
- <value>rrctaps</value>
+ <key>max</key>
+ <value>0.5</value>
</param>
<param>
- <key>filter_size</key>
- <value>nfilts</value>
+ <key>num_steps</key>
+ <value>1000</value>
</param>
<param>
- <key>init_phase</key>
- <value>nfilts/2</value>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
</param>
<param>
- <key>max_dev</key>
- <value>1.5</value>
+ <key>converver</key>
+ <value>float_converter</value>
</param>
<param>
- <key>osps</key>
- <value>1</value>
+ <key>grid_pos</key>
+ <value>(2,2,1,1)</value>
+ </param>
+ <param>
+ <key>notebook</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(601, 254)</value>
+ <value>(-1, 285)</value>
</param>
<param>
<key>_rotation</key>
@@ -1248,7 +1272,7 @@
<key>variable_slider</key>
<param>
<key>id</key>
- <value>timing_loop_bw</value>
+ <value>noise_amp</value>
</param>
<param>
<key>_enabled</key>
@@ -1256,11 +1280,11 @@
</param>
<param>
<key>label</key>
- <value>Timing Loop Bandwidth</value>
+ <value>Channel Noise</value>
</param>
<param>
<key>value</key>
- <value>6.28/100.0</value>
+ <value>0</value>
</param>
<param>
<key>min</key>
@@ -1268,7 +1292,7 @@
</param>
<param>
<key>max</key>
- <value>0.2</value>
+ <value>1.0</value>
</param>
<param>
<key>num_steps</key>
@@ -1284,7 +1308,7 @@
</param>
<param>
<key>grid_pos</key>
- <value>(5,2,1,1)</value>
+ <value>(1,2,1,1)</value>
</param>
<param>
<key>notebook</key>
@@ -1292,7 +1316,34 @@
</param>
<param>
<key>_coordinate</key>
- <value>(557, 431)</value>
+ <value>(129, 285)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>digital_costas_loop_cc</key>
+ <param>
+ <key>id</key>
+ <value>digital_costas_loop_cc_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>w</key>
+ <value>phase_bw</value>
+ </param>
+ <param>
+ <key>order</key>
+ <value>const.arity()</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(866, 246)</value>
</param>
<param>
<key>_rotation</key>
@@ -1300,62 +1351,62 @@
</param>
</block>
<connection>
- <source_block_id>digital_costas_loop_cc_0</source_block_id>
- <sink_block_id>wxgui_scopesink2_0</sink_block_id>
+ <source_block_id>channels_channel_model_0</source_block_id>
+ <sink_block_id>virtual_sink_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>digital_fll_band_edge_cc_0</source_block_id>
- <sink_block_id>wxgui_fftsink2_0_0</sink_block_id>
+ <sink_block_id>digital_pfb_clock_sync_xxx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>virtual_source_0</source_block_id>
- <sink_block_id>wxgui_fftsink2_0</sink_block_id>
+ <source_block_id>digital_pfb_clock_sync_xxx_0</source_block_id>
+ <sink_block_id>digital_costas_loop_cc_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>virtual_source_0</source_block_id>
- <sink_block_id>wxgui_scopesink2_0_0_1</sink_block_id>
+ <source_block_id>digital_costas_loop_cc_0</source_block_id>
+ <sink_block_id>wxgui_scopesink2_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>gr_throttle_0</sink_block_id>
+ <source_block_id>blks2_pfb_arb_resampler_ccf_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>random_source_x</source_block_id>
- <sink_block_id>digital_chunks_to_symbols_xx_0</sink_block_id>
+ <source_block_id>blocks_channel_model_0</source_block_id>
+ <sink_block_id>digital_fll_band_edge_cc_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>digital_fll_band_edge_cc_0</source_block_id>
- <sink_block_id>digital_pfb_clock_sync_xxx_0</sink_block_id>
+ <sink_block_id>wxgui_fftsink2_0_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_pfb_clock_sync_xxx_0</source_block_id>
- <sink_block_id>digital_costas_loop_cc_0</sink_block_id>
+ <source_block_id>virtual_source_0</source_block_id>
+ <sink_block_id>wxgui_fftsink2_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>channels_channel_model_0</source_block_id>
- <sink_block_id>virtual_sink_0</sink_block_id>
+ <source_block_id>virtual_source_0</source_block_id>
+ <sink_block_id>wxgui_scopesink2_0_0_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>channels_channel_model_0</source_block_id>
- <sink_block_id>digital_fll_band_edge_cc_0</sink_block_id>
+ <source_block_id>random_source_x</source_block_id>
+ <sink_block_id>digital_chunks_to_symbols_xx</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
@@ -1366,14 +1417,14 @@
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>digital_chunks_to_symbols_xx_0</source_block_id>
- <sink_block_id>pfb_arb_resampler_xxx_0</sink_block_id>
+ <source_block_id>blocks_multiply_const_vxx_0</source_block_id>
+ <sink_block_id>gr_throttle_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>pfb_arb_resampler_xxx_0</source_block_id>
- <sink_block_id>blocks_multiply_const_vxx_0</sink_block_id>
+ <source_block_id>digital_chunks_to_symbols_xx</source_block_id>
+ <sink_block_id>blks2_pfb_arb_resampler_ccf_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
diff --git a/gr-digital/examples/demod/pam_timing.grc b/gr-digital/examples/demod/pam_timing.grc
index b5e8d8822e..56ebfd9163 100644
--- a/gr-digital/examples/demod/pam_timing.grc
+++ b/gr-digital/examples/demod/pam_timing.grc
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
- <timestamp>Thu Dec 27 13:05:12 2012</timestamp>
+ <timestamp>Tue Jan 15 14:06:37 2013</timestamp>
<block>
<key>options</key>
<param>
@@ -53,100 +53,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(10, 10)</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>_coordinate</key>
- <value>(217, 108)</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_0</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(216, 273)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
- </param>
- </block>
- <block>
- <key>variable_slider</key>
- <param>
- <key>id</key>
- <value>freq_offset</value>
- </param>
- <param>
- <key>_enabled</key>
- <value>True</value>
- </param>
- <param>
- <key>label</key>
- <value>Frequency Offset</value>
- </param>
- <param>
- <key>value</key>
- <value>0</value>
- </param>
- <param>
- <key>min</key>
- <value>-0.5</value>
- </param>
- <param>
- <key>max</key>
- <value>0.5</value>
- </param>
- <param>
- <key>num_steps</key>
- <value>1000</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>(293, 684)</value>
+ <value>(-1, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -157,7 +64,7 @@
<key>random_source_x</key>
<param>
<key>id</key>
- <value>random_source_x_0</value>
+ <value>random_source_x</value>
</param>
<param>
<key>_enabled</key>
@@ -173,11 +80,11 @@
</param>
<param>
<key>max</key>
- <value>pam_amp</value>
+ <value>const.arity()</value>
</param>
<param>
<key>num_samps</key>
- <value>10000</value>
+ <value>10000000</value>
</param>
<param>
<key>repeat</key>
@@ -185,7 +92,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(13, 80)</value>
+ <value>(-1, 163)</value>
</param>
<param>
<key>_rotation</key>
@@ -193,38 +100,38 @@
</param>
</block>
<block>
- <key>random_source_x</key>
+ <key>digital_chunks_to_symbols_xx</key>
<param>
<key>id</key>
- <value>random_source_x_0_0</value>
+ <value>digital_chunks_to_symbols_xx</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
+ <key>in_type</key>
<value>byte</value>
</param>
<param>
- <key>min</key>
- <value>0</value>
+ <key>out_type</key>
+ <value>complex</value>
</param>
<param>
- <key>max</key>
- <value>pam_amp</value>
+ <key>symbol_table</key>
+ <value>const.points()</value>
</param>
<param>
- <key>num_samps</key>
- <value>10000</value>
+ <key>dimension</key>
+ <value>1</value>
</param>
<param>
- <key>repeat</key>
- <value>True</value>
+ <key>num_ports</key>
+ <value>1</value>
</param>
<param>
<key>_coordinate</key>
- <value>(15, 245)</value>
+ <value>(203, 178)</value>
</param>
<param>
<key>_rotation</key>
@@ -232,26 +139,22 @@
</param>
</block>
<block>
- <key>analog_const_source_x</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>analog_const_source_x_0</value>
+ <value>const</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>const</key>
- <value>-0.5*(pam_amp-1)</value>
+ <key>value</key>
+ <value>digital.qpsk_constellation()</value>
</param>
<param>
<key>_coordinate</key>
- <value>(213, 197)</value>
+ <value>(206, 116)</value>
</param>
<param>
<key>_rotation</key>
@@ -259,26 +162,22 @@
</param>
</block>
<block>
- <key>analog_const_source_x</key>
+ <key>import</key>
<param>
<key>id</key>
- <value>analog_const_source_x_0_0</value>
+ <value>import_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>const</key>
- <value>-0.5*(pam_amp-1)</value>
+ <key>import</key>
+ <value>from gnuradio import digital</value>
</param>
<param>
<key>_coordinate</key>
- <value>(200, 360)</value>
+ <value>(-1, 61)</value>
</param>
<param>
<key>_rotation</key>
@@ -286,34 +185,22 @@
</param>
</block>
<block>
- <key>notebook</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>notebook_0</value>
+ <value>spb</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>['error', 'phase', 'freq', 'Resampled Signal']</value>
- </param>
- <param>
- <key>grid_pos</key>
- <value></value>
- </param>
- <param>
- <key>notebook</key>
- <value></value>
+ <key>value</key>
+ <value>4.2563</value>
</param>
<param>
<key>_coordinate</key>
- <value>(729, 769)</value>
+ <value>(300, 0)</value>
</param>
<param>
<key>_rotation</key>
@@ -321,30 +208,22 @@
</param>
</block>
<block>
- <key>blocks_add_xx</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>blocks_add_xx_0</value>
+ <value>sig_amp</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>num_inputs</key>
- <value>2</value>
- </param>
- <param>
- <key>vlen</key>
+ <key>value</key>
<value>1</value>
</param>
<param>
<key>_coordinate</key>
- <value>(440, 167)</value>
+ <value>(791, 46)</value>
</param>
<param>
<key>_rotation</key>
@@ -352,53 +231,34 @@
</param>
</block>
<block>
- <key>blocks_add_xx</key>
+ <key>notebook</key>
<param>
<key>id</key>
- <value>blocks_add_xx_0_1</value>
+ <value>notebook_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>float</value>
- </param>
- <param>
- <key>num_inputs</key>
- <value>2</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
- </param>
- <param>
- <key>_coordinate</key>
- <value>(430, 330)</value>
- </param>
- <param>
- <key>_rotation</key>
- <value>0</value>
+ <key>style</key>
+ <value>wx.NB_TOP</value>
</param>
- </block>
- <block>
- <key>variable</key>
<param>
- <key>id</key>
- <value>nfilts</value>
+ <key>labels</key>
+ <value>['error', 'phase', 'freq', 'Resampled Signal']</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>grid_pos</key>
+ <value></value>
</param>
<param>
- <key>value</key>
- <value>32</value>
+ <key>notebook</key>
+ <value></value>
</param>
<param>
<key>_coordinate</key>
- <value>(435, 686)</value>
+ <value>(383, 576)</value>
</param>
<param>
<key>_rotation</key>
@@ -453,7 +313,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(168, 684)</value>
+ <value>(117, 530)</value>
</param>
<param>
<key>_rotation</key>
@@ -508,7 +368,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(40, 684)</value>
+ <value>(4, 530)</value>
</param>
<param>
<key>_rotation</key>
@@ -516,45 +376,54 @@
</param>
</block>
<block>
- <key>variable</key>
+ <key>variable_slider</key>
<param>
<key>id</key>
- <value>rrctaps</value>
+ <value>freq_offset</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
+ <key>label</key>
+ <value>Frequency Offset</value>
+ </param>
+ <param>
<key>value</key>
- <value>firdes.root_raised_cosine(nfilts,1.0,1.0/(spb*nfilts), .35, int(11*spb*nfilts))</value>
+ <value>0</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(513, 679)</value>
+ <key>min</key>
+ <value>-0.5</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>max</key>
+ <value>0.5</value>
</param>
- </block>
- <block>
- <key>variable</key>
<param>
- <key>id</key>
- <value>spb</value>
+ <key>num_steps</key>
+ <value>1000</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>style</key>
+ <value>wx.SL_HORIZONTAL</value>
</param>
<param>
- <key>value</key>
- <value>4.2563</value>
+ <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>(42, 840)</value>
+ <value>(239, 530)</value>
</param>
<param>
<key>_rotation</key>
@@ -562,10 +431,10 @@
</param>
</block>
<block>
- <key>wxgui_scopesink2</key>
+ <key>gr_throttle</key>
<param>
<key>id</key>
- <value>wxgui_scopesink2_0</value>
+ <value>gr_throttle_0</value>
</param>
<param>
<key>_enabled</key>
@@ -576,60 +445,55 @@
<value>complex</value>
</param>
<param>
- <key>title</key>
- <value>Scope Plot</value>
- </param>
- <param>
- <key>samp_rate</key>
+ <key>samples_per_second</key>
<value>samp_rate</value>
</param>
<param>
- <key>v_scale</key>
- <value>0</value>
+ <key>vlen</key>
+ <value>1</value>
</param>
<param>
- <key>v_offset</key>
- <value>0</value>
+ <key>_coordinate</key>
+ <value>(258, 431)</value>
</param>
<param>
- <key>t_scale</key>
+ <key>_rotation</key>
<value>0</value>
</param>
+ </block>
+ <block>
+ <key>channels_channel_model</key>
<param>
- <key>ac_couple</key>
- <value>False</value>
- </param>
- <param>
- <key>xy_mode</key>
- <value>False</value>
+ <key>id</key>
+ <value>channels_channel_model_0</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>noise_voltage</key>
+ <value>noise_amp</value>
</param>
<param>
- <key>grid_pos</key>
- <value></value>
+ <key>freq_offset</key>
+ <value>freq_offset</value>
</param>
<param>
- <key>notebook</key>
- <value></value>
+ <key>epsilon</key>
+ <value>interpratio</value>
</param>
<param>
- <key>trig_mode</key>
- <value>gr.gr_TRIG_MODE_AUTO</value>
+ <key>taps</key>
+ <value>1.0</value>
</param>
<param>
- <key>y_axis_label</key>
- <value>Counts</value>
+ <key>seed</key>
+ <value>42</value>
</param>
<param>
<key>_coordinate</key>
- <value>(1116, 500)</value>
+ <value>(57, 401)</value>
</param>
<param>
<key>_rotation</key>
@@ -637,30 +501,22 @@
</param>
</block>
<block>
- <key>gr_throttle</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>gr_throttle_0</value>
+ <value>samp_rate</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>type</key>
- <value>complex</value>
- </param>
- <param>
- <key>samples_per_second</key>
- <value>samp_rate</value>
- </param>
- <param>
- <key>vlen</key>
- <value>1</value>
+ <key>value</key>
+ <value>32000</value>
</param>
<param>
<key>_coordinate</key>
- <value>(290, 575)</value>
+ <value>(267, 357)</value>
</param>
<param>
<key>_rotation</key>
@@ -668,38 +524,22 @@
</param>
</block>
<block>
- <key>channels_channel_model</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>channels_channel_model_0</value>
+ <value>rolloff</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>noise_voltage</key>
- <value>noise_amp</value>
- </param>
- <param>
- <key>freq_offset</key>
- <value>freq_offset</value>
- </param>
- <param>
- <key>epsilon</key>
- <value>interpratio</value>
- </param>
- <param>
- <key>taps</key>
- <value>1.0</value>
- </param>
- <param>
- <key>seed</key>
- <value>0</value>
+ <key>value</key>
+ <value>.35</value>
</param>
<param>
<key>_coordinate</key>
- <value>(76, 543)</value>
+ <value>(482, 335)</value>
</param>
<param>
<key>_rotation</key>
@@ -707,22 +547,22 @@
</param>
</block>
<block>
- <key>blocks_float_to_complex</key>
+ <key>variable</key>
<param>
<key>id</key>
- <value>blocks_float_to_complex_0</value>
+ <value>nfilts</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>value</key>
+ <value>32</value>
</param>
<param>
<key>_coordinate</key>
- <value>(590, 184)</value>
+ <value>(562, 335)</value>
</param>
<param>
<key>_rotation</key>
@@ -730,10 +570,10 @@
</param>
</block>
<block>
- <key>pfb_arb_resampler_xxx</key>
+ <key>digital_pfb_clock_sync_xxx</key>
<param>
<key>id</key>
- <value>pfb_arb_resampler_xxx_0</value>
+ <value>digital_pfb_clock_sync_xxx_0</value>
</param>
<param>
<key>_enabled</key>
@@ -744,24 +584,36 @@
<value>ccf</value>
</param>
<param>
- <key>rrate</key>
+ <key>sps</key>
<value>spb</value>
</param>
<param>
+ <key>loop_bw</key>
+ <value>time_bw</value>
+ </param>
+ <param>
<key>taps</key>
- <value>firdes.root_raised_cosine(32, 32, 1.0, 0.35, 44*32)</value>
+ <value>firdes.root_raised_cosine(nfilts, nfilts*spb, 1.0, rolloff, 44*nfilts)</value>
</param>
<param>
- <key>nfilts</key>
- <value>32</value>
+ <key>filter_size</key>
+ <value>nfilts</value>
</param>
<param>
- <key>atten</key>
- <value>100</value>
+ <key>init_phase</key>
+ <value>16</value>
+ </param>
+ <param>
+ <key>max_dev</key>
+ <value>1.5</value>
+ </param>
+ <param>
+ <key>osps</key>
+ <value>1</value>
</param>
<param>
<key>_coordinate</key>
- <value>(788, 173)</value>
+ <value>(467, 403)</value>
</param>
<param>
<key>_rotation</key>
@@ -769,10 +621,10 @@
</param>
</block>
<block>
- <key>blocks_multiply_const_vxx</key>
+ <key>pfb_arb_resampler_xxx</key>
<param>
<key>id</key>
- <value>blocks_multiply_const_vxx_0</value>
+ <value>pfb_arb_resampler_xxx_0</value>
</param>
<param>
<key>_enabled</key>
@@ -780,19 +632,27 @@
</param>
<param>
<key>type</key>
- <value>complex</value>
+ <value>ccf</value>
</param>
<param>
- <key>const</key>
- <value>sig_amp</value>
+ <key>rrate</key>
+ <value>spb</value>
</param>
<param>
- <key>vlen</key>
- <value>1</value>
+ <key>taps</key>
+ <value>firdes.root_raised_cosine(nfilts, nfilts, 1.0, rolloff, 44*nfilts)</value>
+ </param>
+ <param>
+ <key>nfilts</key>
+ <value>32</value>
+ </param>
+ <param>
+ <key>atten</key>
+ <value>100</value>
</param>
<param>
<key>_coordinate</key>
- <value>(714, 382)</value>
+ <value>(458, 179)</value>
</param>
<param>
<key>_rotation</key>
@@ -815,7 +675,7 @@
</param>
<param>
<key>title</key>
- <value>Transmitted Signal</value>
+ <value>Error</value>
</param>
<param>
<key>samp_rate</key>
@@ -867,7 +727,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1114, 342)</value>
+ <value>(961, 84)</value>
</param>
<param>
<key>_rotation</key>
@@ -878,7 +738,7 @@
<key>wxgui_scopesink2</key>
<param>
<key>id</key>
- <value>wxgui_scopesink2_0_0_0_0</value>
+ <value>wxgui_scopesink2_0_0_0</value>
</param>
<param>
<key>_enabled</key>
@@ -890,7 +750,7 @@
</param>
<param>
<key>title</key>
- <value>PFB Rate</value>
+ <value>Scope Plot</value>
</param>
<param>
<key>samp_rate</key>
@@ -898,7 +758,7 @@
</param>
<param>
<key>v_scale</key>
- <value>1.25</value>
+ <value>9</value>
</param>
<param>
<key>v_offset</key>
@@ -930,7 +790,7 @@
</param>
<param>
<key>notebook</key>
- <value>notebook_0,2</value>
+ <value>notebook_0,1</value>
</param>
<param>
<key>trig_mode</key>
@@ -942,7 +802,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1080, 751)</value>
+ <value>(991, 592)</value>
</param>
<param>
<key>_rotation</key>
@@ -953,7 +813,7 @@
<key>wxgui_scopesink2</key>
<param>
<key>id</key>
- <value>wxgui_scopesink2_0_0</value>
+ <value>wxgui_scopesink2_0</value>
</param>
<param>
<key>_enabled</key>
@@ -961,11 +821,11 @@
</param>
<param>
<key>type</key>
- <value>float</value>
+ <value>complex</value>
</param>
<param>
<key>title</key>
- <value>PFB Error</value>
+ <value>Scope Plot</value>
</param>
<param>
<key>samp_rate</key>
@@ -973,7 +833,7 @@
</param>
<param>
<key>v_scale</key>
- <value>3</value>
+ <value>0</value>
</param>
<param>
<key>v_offset</key>
@@ -1005,7 +865,7 @@
</param>
<param>
<key>notebook</key>
- <value>notebook_0,0</value>
+ <value></value>
</param>
<param>
<key>trig_mode</key>
@@ -1017,7 +877,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1114, 615)</value>
+ <value>(1029, 243)</value>
</param>
<param>
<key>_rotation</key>
@@ -1028,7 +888,7 @@
<key>wxgui_scopesink2</key>
<param>
<key>id</key>
- <value>wxgui_scopesink2_0_0_0</value>
+ <value>wxgui_scopesink2_0_0</value>
</param>
<param>
<key>_enabled</key>
@@ -1040,7 +900,7 @@
</param>
<param>
<key>title</key>
- <value>PFB Phase</value>
+ <value>Error</value>
</param>
<param>
<key>samp_rate</key>
@@ -1048,7 +908,7 @@
</param>
<param>
<key>v_scale</key>
- <value>9</value>
+ <value>3</value>
</param>
<param>
<key>v_offset</key>
@@ -1080,7 +940,7 @@
</param>
<param>
<key>notebook</key>
- <value>notebook_0,1</value>
+ <value>notebook_0,0</value>
</param>
<param>
<key>trig_mode</key>
@@ -1092,7 +952,7 @@
</param>
<param>
<key>_coordinate</key>
- <value>(1112, 881)</value>
+ <value>(1029, 335)</value>
</param>
<param>
<key>_rotation</key>
@@ -1100,68 +960,74 @@
</param>
</block>
<block>
- <key>variable</key>
+ <key>wxgui_scopesink2</key>
<param>
<key>id</key>
- <value>pam_amp</value>
+ <value>wxgui_scopesink2_0_0_0_0</value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
- <key>value</key>
- <value>2</value>
+ <key>type</key>
+ <value>float</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(277, 12)</value>
+ <key>title</key>
+ <value>Scope Plot</value>
</param>
<param>
- <key>_rotation</key>
+ <key>samp_rate</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>v_scale</key>
+ <value>1.25</value>
+ </param>
+ <param>
+ <key>v_offset</key>
<value>0</value>
</param>
- </block>
- <block>
- <key>variable</key>
<param>
- <key>id</key>
- <value>samp_rate</value>
+ <key>t_scale</key>
+ <value>0</value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>ac_couple</key>
+ <value>False</value>
</param>
<param>
- <key>value</key>
- <value>32000</value>
+ <key>xy_mode</key>
+ <value>False</value>
</param>
<param>
- <key>_coordinate</key>
- <value>(182, 12)</value>
+ <key>num_inputs</key>
+ <value>1</value>
</param>
<param>
- <key>_rotation</key>
- <value>0</value>
+ <key>win_size</key>
+ <value></value>
</param>
- </block>
- <block>
- <key>variable</key>
<param>
- <key>id</key>
- <value>sig_amp</value>
+ <key>grid_pos</key>
+ <value></value>
</param>
<param>
- <key>_enabled</key>
- <value>True</value>
+ <key>notebook</key>
+ <value>notebook_0,2</value>
</param>
<param>
- <key>value</key>
- <value>1</value>
+ <key>trig_mode</key>
+ <value>gr.gr_TRIG_MODE_AUTO</value>
+ </param>
+ <param>
+ <key>y_axis_label</key>
+ <value>Counts</value>
</param>
<param>
<key>_coordinate</key>
- <value>(369, 12)</value>
+ <value>(1024, 462)</value>
</param>
<param>
<key>_rotation</key>
@@ -1169,10 +1035,10 @@
</param>
</block>
<block>
- <key>digital_pfb_clock_sync_xxx</key>
+ <key>blocks_multiply_const_vxx</key>
<param>
<key>id</key>
- <value>digital_pfb_clock_sync_xxx_0</value>
+ <value>blocks_multiply_const_vxx_0</value>
</param>
<param>
<key>_enabled</key>
@@ -1180,39 +1046,19 @@
</param>
<param>
<key>type</key>
- <value>ccf</value>
- </param>
- <param>
- <key>sps</key>
- <value>spb</value>
- </param>
- <param>
- <key>loop_bw</key>
- <value>loop_bw</value>
- </param>
- <param>
- <key>taps</key>
- <value>rrctaps</value>
- </param>
- <param>
- <key>filter_size</key>
- <value>nfilts</value>
- </param>
- <param>
- <key>init_phase</key>
- <value>nfilts/2</value>
+ <value>complex</value>
</param>
<param>
- <key>max_dev</key>
- <value>1.5</value>
+ <key>const</key>
+ <value>sig_amp</value>
</param>
<param>
- <key>osps</key>
+ <key>vlen</key>
<value>1</value>
</param>
<param>
<key>_coordinate</key>
- <value>(492, 519)</value>
+ <value>(760, 159)</value>
</param>
<param>
<key>_rotation</key>
@@ -1223,7 +1069,7 @@
<key>variable_slider</key>
<param>
<key>id</key>
- <value>loop_bw</value>
+ <value>time_bw</value>
</param>
<param>
<key>_enabled</key>
@@ -1231,11 +1077,11 @@
</param>
<param>
<key>label</key>
- <value>Loop Bandwidth</value>
+ <value>Timing Loop BW</value>
</param>
<param>
<key>value</key>
- <value>6.28/100.0</value>
+ <value>0</value>
</param>
<param>
<key>min</key>
@@ -1243,7 +1089,7 @@
</param>
<param>
<key>max</key>
- <value>0.2</value>
+ <value>0.1</value>
</param>
<param>
<key>num_steps</key>
@@ -1275,69 +1121,45 @@
</param>
</block>
<connection>
- <source_block_id>random_source_x_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>blocks_add_xx_0</sink_block_id>
+ <source_block_id>gr_throttle_0</source_block_id>
+ <sink_block_id>digital_pfb_clock_sync_xxx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>analog_const_source_x_0</source_block_id>
- <sink_block_id>blocks_add_xx_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>1</sink_key>
- </connection>
- <connection>
- <source_block_id>blocks_uchar_to_float_0_0</source_block_id>
- <sink_block_id>blocks_add_xx_0_1</sink_block_id>
- <source_key>0</source_key>
+ <source_block_id>digital_pfb_clock_sync_xxx_0</source_block_id>
+ <sink_block_id>wxgui_scopesink2_0_0_0_0</sink_block_id>
+ <source_key>2</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>analog_const_source_x_0_0</source_block_id>
- <sink_block_id>blocks_add_xx_0_1</sink_block_id>
- <source_key>0</source_key>
- <sink_key>1</sink_key>
- </connection>
- <connection>
- <source_block_id>random_source_x_0_0</source_block_id>
- <sink_block_id>blocks_uchar_to_float_0_0</sink_block_id>
+ <source_block_id>blocks_multiply_const_vxx_0</source_block_id>
+ <sink_block_id>wxgui_scopesink2_0_0_1</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>blocks_add_xx_0</source_block_id>
- <sink_block_id>blocks_float_to_complex_0</sink_block_id>
+ <source_block_id>pfb_arb_resampler_xxx_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>blocks_add_xx_0_1</source_block_id>
- <sink_block_id>blocks_float_to_complex_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>1</sink_key>
- </connection>
- <connection>
- <source_block_id>blocks_multiply_const_vxx_0</source_block_id>
- <sink_block_id>wxgui_scopesink2_0_0_1</sink_block_id>
+ <source_block_id>digital_chunks_to_symbols_xx</source_block_id>
+ <sink_block_id>pfb_arb_resampler_xxx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
- <source_block_id>gr_throttle_0</source_block_id>
- <sink_block_id>digital_pfb_clock_sync_xxx_0</sink_block_id>
+ <source_block_id>random_source_x</source_block_id>
+ <sink_block_id>digital_chunks_to_symbols_xx</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>digital_pfb_clock_sync_xxx_0</source_block_id>
- <sink_block_id>wxgui_scopesink2_0</sink_block_id>
- <source_key>0</source_key>
+ <sink_block_id>wxgui_scopesink2_0_0_0</sink_block_id>
+ <source_key>3</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
@@ -1348,14 +1170,8 @@
</connection>
<connection>
<source_block_id>digital_pfb_clock_sync_xxx_0</source_block_id>
- <sink_block_id>wxgui_scopesink2_0_0_0_0</sink_block_id>
- <source_key>2</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>digital_pfb_clock_sync_xxx_0</source_block_id>
- <sink_block_id>wxgui_scopesink2_0_0_0</sink_block_id>
- <source_key>3</source_key>
+ <sink_block_id>wxgui_scopesink2_0</sink_block_id>
+ <source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
@@ -1370,16 +1186,4 @@
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
- <connection>
- <source_block_id>blocks_float_to_complex_0</source_block_id>
- <sink_block_id>pfb_arb_resampler_xxx_0</sink_block_id>
- <source_key>0</source_key>
- <sink_key>0</sink_key>
- </connection>
- <connection>
- <source_block_id>pfb_arb_resampler_xxx_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>
</flow_graph>
diff --git a/grc/gui/MainWindow.py b/grc/gui/MainWindow.py
index 16a4c63227..c2d661c668 100644
--- a/grc/gui/MainWindow.py
+++ b/grc/gui/MainWindow.py
@@ -188,6 +188,9 @@ class MainWindow(gtk.Window):
if file_path: Messages.send_end_load()
except Exception, e: #return on failure
Messages.send_fail_load(e)
+ if isinstance(e, KeyError) and str(e) == "'options'":
+ # This error is unrecoverable, so crash gracefully
+ exit(-1)
return
#add this page to the notebook
self.notebook.append_page(page, page.get_tab())
diff --git a/grc/scripts/gnuradio-companion b/grc/scripts/gnuradio-companion
index e76322b4d8..dabca3028f 100755
--- a/grc/scripts/gnuradio-companion
+++ b/grc/scripts/gnuradio-companion
@@ -39,10 +39,19 @@ Is the library path environment variable set correctly?
d.run()
exit(-1)
-from gnuradio import gr
from optparse import OptionParser
+import os
if __name__ == "__main__":
+ if ('GR_DONT_LOAD_PREFS' in os.environ.keys() and
+ (not 'GRC_BLOCKS_PATH' in os.environ.keys() or len(os.environ['GRC_BLOCKS_PATH']) == 0)):
+ d = gtk.MessageDialog(
+ type=gtk.MESSAGE_ERROR,
+ buttons=gtk.BUTTONS_CLOSE,
+ message_format="""Can't find block definitions. Use config.conf or GRC_BLOCKS_PATH. """)
+ d.set_title("No block definitions available.")
+ d.run()
+ exit(-1)
usage = 'usage: %prog [options] [saved flow graphs]'
version = """
GNU Radio Companion %s