commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r6360 - in gnuradio/branches/developers/jcorgan/t162/g


From: jcorgan
Subject: [Commit-gnuradio] r6360 - in gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src: lib/runtime python/gnuradio/gr
Date: Fri, 7 Sep 2007 23:06:49 -0600 (MDT)

Author: jcorgan
Date: 2007-09-07 23:06:49 -0600 (Fri, 07 Sep 2007)
New Revision: 6360

Modified:
   
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc
   
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/python/gnuradio/gr/qa_hier_block2.py
Log:
Implemented new ability to add hierarchical block with no inputs or outputs to 
a top block, by calling connect with a single parameter.

Modified: 
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc
===================================================================
--- 
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc
    2007-09-08 04:25:24 UTC (rev 6359)
+++ 
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc
    2007-09-08 05:06:49 UTC (rev 6360)
@@ -330,7 +330,15 @@
     sfg->connect(src_endp, dst_endp);
   }
 
-  gr_basic_block_vector_t blocks = d_fg->calc_used_blocks();
+  // Construct unique list of blocks used either in edges or
+  // by themselves.  I hate STL.
+  gr_basic_block_vector_t blocks, tmp = d_fg->calc_used_blocks();
+  std::insert_iterator<gr_basic_block_vector_t> inserter(blocks, 
blocks.begin());
+  std::vector<gr_basic_block_sptr>::const_iterator p; // Because flatten_aux 
is const
+  for (p = d_blocks.begin(); p != d_blocks.end(); p++) 
+    tmp.push_back(*p);
+  sort(tmp.begin(), tmp.end());
+  unique_copy(tmp.begin(), tmp.end(), inserter);
 
   // Recurse hierarchical children
   for (gr_basic_block_viter_t p = blocks.begin(); p != blocks.end(); p++) {

Modified: 
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/python/gnuradio/gr/qa_hier_block2.py
===================================================================
--- 
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/python/gnuradio/gr/qa_hier_block2.py
    2007-09-08 04:25:24 UTC (rev 6359)
+++ 
gnuradio/branches/developers/jcorgan/t162/gnuradio-core/src/python/gnuradio/gr/qa_hier_block2.py
    2007-09-08 05:06:49 UTC (rev 6360)
@@ -227,5 +227,18 @@
         self.assertRaises(ValueError,
                           lambda: hblock.disconnect(blk))
 
+    def test_026_run_single(self):
+        expected_data = (1.0,)
+        tb = gr.top_block("top_block")
+        hb = gr.hier_block2("block",
+                            gr.io_signature(0, 0, 0),
+                            gr.io_signature(0, 0, 0))
+        src = gr.vector_source_f(expected_data)
+        dst = gr.vector_sink_f()
+        hb.connect(src, dst)
+        tb.connect(hb)
+        tb.run()
+        self.assertEquals(expected_data, dst.data())
+    
 if __name__ == "__main__":
     gr_unittest.main()





reply via email to

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