summaryrefslogtreecommitdiff
path: root/gr-blocks
diff options
context:
space:
mode:
authorJohnathan Corgan <johnathan@corganlabs.com>2017-06-22 17:12:05 -0700
committerJohnathan Corgan <johnathan@corganlabs.com>2017-06-22 17:12:05 -0700
commitb63e8cf03236257730680adfd75378daf3f5c153 (patch)
tree0cb65a8bc2e2d8e8ed9ea6c880f991c4eed4e299 /gr-blocks
parente4783ab3f1541d8ba32c0269eb30b7c06d0888c2 (diff)
parent1d537a26b27b9d3ce6a3affc6ea500a9efc5a867 (diff)
Merge branch 'next' into python3
Conflicts: gnuradio-runtime/python/gnuradio/gr/tag_utils.py
Diffstat (limited to 'gr-blocks')
-rw-r--r--gr-blocks/examples/ctrlport/simple_copy.grc100
-rw-r--r--gr-blocks/lib/file_meta_sink_impl.cc31
-rw-r--r--gr-blocks/lib/file_meta_source_impl.cc22
-rw-r--r--gr-blocks/python/blocks/qa_file_metadata.py2
4 files changed, 130 insertions, 25 deletions
diff --git a/gr-blocks/examples/ctrlport/simple_copy.grc b/gr-blocks/examples/ctrlport/simple_copy.grc
index 6e795d751b..a52c350ded 100644
--- a/gr-blocks/examples/ctrlport/simple_copy.grc
+++ b/gr-blocks/examples/ctrlport/simple_copy.grc
@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
-<?grc format='1' created='3.7.9'?>
+<?grc format='1' created='3.7.11'?>
<flow_graph>
<timestamp>Sat Mar 16 22:03:14 2013</timestamp>
<block>
@@ -41,6 +41,10 @@
<value>qt_gui</value>
</param>
<param>
+ <key>hier_block_src_path</key>
+ <value>.:</value>
+ </param>
+ <param>
<key>id</key>
<value>simple_copy</value>
</param>
@@ -49,10 +53,18 @@
<value>0</value>
</param>
<param>
+ <key>qt_qss_theme</key>
+ <value></value>
+ </param>
+ <param>
<key>realtime_scheduling</key>
<value></value>
</param>
<param>
+ <key>run_command</key>
+ <value>{python} -u {filename}</value>
+ </param>
+ <param>
<key>run_options</key>
<value>prompt</value>
</param>
@@ -381,12 +393,92 @@ to enable/disablethis block</value>
</param>
</block>
<block>
+ <key>epy_block</key>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_io_cache</key>
+ <value>('Null Msg Source', 'blk', [], [], [('fake_output', 'message', 1)], '', [])</value>
+ </param>
+ <param>
+ <key>_source_code</key>
+ <value># Block that doesn't do anything, just used to get a msg input port on another block exposed to ControlPort
+from gnuradio import gr
+import pmt
+class blk(gr.basic_block):
+ def __init__(self):
+ gr.basic_block.__init__(self,name='Null Msg Source',in_sig=[],out_sig=[])
+ self.message_port_register_out(pmt.intern("fake_output"))
+</value>
+ </param>
+ <param>
+ <key>comment</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(357, 218)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>id</key>
+ <value>epy_block_0</value>
+ </param>
+ </block>
+ <block>
+ <key>note</key>
+ <param>
+ <key>alias</key>
+ <value></value>
+ </param>
+ <param>
+ <key>comment</key>
+ <value>Make sure to turn on ControlPort (edit ~/.gnuradio/config.conf)
+and run the following script to toggle Copy block:
+cd /src/gnuradio/gr-blocks/examples/ctrlport
+python simple_copy_controller.py 127.0.0.1 &lt;PORT&gt; true</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(352, 13)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>id</key>
+ <value>note_0</value>
+ </param>
+ <param>
+ <key>note</key>
+ <value></value>
+ </param>
+ </block>
+ <block>
<key>qtgui_time_sink_x</key>
<param>
<key>autoscale</key>
<value>False</value>
</param>
<param>
+ <key>axislabels</key>
+ <value>True</value>
+ </param>
+ <param>
<key>alias</key>
<value></value>
</param>
@@ -769,4 +861,10 @@ to enable/disablethis block</value>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
+ <connection>
+ <source_block_id>epy_block_0</source_block_id>
+ <sink_block_id>blocks_copy_0</sink_block_id>
+ <source_key>fake_output</source_key>
+ <sink_key>en</sink_key>
+ </connection>
</flow_graph>
diff --git a/gr-blocks/lib/file_meta_sink_impl.cc b/gr-blocks/lib/file_meta_sink_impl.cc
index 027d12faf2..b6d858489d 100644
--- a/gr-blocks/lib/file_meta_sink_impl.cc
+++ b/gr-blocks/lib/file_meta_sink_impl.cc
@@ -141,17 +141,7 @@ namespace gr {
{
close();
- if(d_fp) {
- fclose(d_fp);
- d_fp = 0;
- }
- if(d_state == STATE_DETACHED) {
- if(d_hdr_fp) {
- fclose(d_hdr_fp);
- d_hdr_fp = 0;
- }
- }
}
bool
@@ -216,6 +206,18 @@ namespace gr {
d_new_fp = 0;
}
d_updated = true;
+
+ if (d_fp) {
+ fclose(d_fp);
+ d_fp = 0;
+ }
+
+ if (d_state == STATE_DETACHED) {
+ if (d_hdr_fp) {
+ fclose(d_hdr_fp);
+ d_hdr_fp = 0;
+ }
+ }
}
void
@@ -298,10 +300,11 @@ namespace gr {
void
file_meta_sink_impl::update_last_header()
{
- if(d_state == STATE_DETACHED)
- update_last_header_detached();
- else
- update_last_header_inline();
+ if(d_state == STATE_DETACHED) {
+ if (d_hdr_fp) update_last_header_detached();
+ } else {
+ if(d_fp) update_last_header_inline();
+ }
}
void
diff --git a/gr-blocks/lib/file_meta_source_impl.cc b/gr-blocks/lib/file_meta_source_impl.cc
index 4cb0ab8ed1..3c72e2a003 100644
--- a/gr-blocks/lib/file_meta_source_impl.cc
+++ b/gr-blocks/lib/file_meta_source_impl.cc
@@ -111,17 +111,7 @@ namespace gr {
{
close();
- if(d_fp) {
- fclose(d_fp);
- d_fp = 0;
- }
- if(d_state == STATE_DETACHED) {
- if(d_hdr_fp) {
- fclose(d_hdr_fp);
- d_hdr_fp = 0;
- }
- }
}
bool
@@ -339,6 +329,18 @@ namespace gr {
d_new_fp = 0;
}
d_updated = true;
+
+ if (d_fp) {
+ fclose(d_fp);
+ d_fp = 0;
+ }
+
+ if (d_state == STATE_DETACHED) {
+ if (d_hdr_fp) {
+ fclose(d_hdr_fp);
+ d_hdr_fp = 0;
+ }
+ }
}
void
diff --git a/gr-blocks/python/blocks/qa_file_metadata.py b/gr-blocks/python/blocks/qa_file_metadata.py
index 3ee8409d6a..16c1a8916f 100644
--- a/gr-blocks/python/blocks/qa_file_metadata.py
+++ b/gr-blocks/python/blocks/qa_file_metadata.py
@@ -109,6 +109,7 @@ class test_file_metadata(gr_unittest.TestCase):
self.tb.connect(src, ssnk)
self.tb.run()
+ fsrc.close()
# Test to make sure tags with 'samp_rate' and 'rx_rate' keys
# were generated and received correctly.
tags = tsnk.current_tags()
@@ -190,6 +191,7 @@ class test_file_metadata(gr_unittest.TestCase):
self.tb.connect(src, ssnk)
self.tb.run()
+ fsrc.close()
# Test to make sure tags with 'samp_rate' and 'rx_rate' keys
# were generated and received correctly.
tags = tsnk.current_tags()