[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r4006 - in gnuradio/branches/developers/jcorgan/hier/g
From: |
jcorgan |
Subject: |
[Commit-gnuradio] r4006 - in gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src: lib/runtime python/gnuradio/gr |
Date: |
Sun, 19 Nov 2006 21:37:01 -0700 (MST) |
Author: jcorgan
Date: 2006-11-19 21:37:01 -0700 (Sun, 19 Nov 2006)
New Revision: 4006
Modified:
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_simple_flowgraph.cc
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_simple_flowgraph.h
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_simple_flowgraph.i
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_simple_flowgraph_detail.cc
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_simple_flowgraph_detail.h
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/python/gnuradio/gr/qa_simple_flowgraph.py
Log:
Work in progress, incomplete.
Modified:
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_simple_flowgraph.cc
===================================================================
---
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_simple_flowgraph.cc
2006-11-20 03:38:57 UTC (rev 4005)
+++
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_simple_flowgraph.cc
2006-11-20 04:37:01 UTC (rev 4006)
@@ -54,3 +54,9 @@
{
d_detail->connect(src_name, src_port, dst_name, dst_port);
}
+
+void
+gr_simple_flowgraph::validate()
+{
+ d_detail->validate();
+}
Modified:
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_simple_flowgraph.h
===================================================================
---
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_simple_flowgraph.h
2006-11-20 03:38:57 UTC (rev 4005)
+++
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_simple_flowgraph.h
2006-11-20 04:37:01 UTC (rev 4006)
@@ -47,6 +47,7 @@
void define_component(const std::string &name, gr_block_sptr block);
void connect(const std::string &src, int src_port,
const std::string &dst, int dst_port);
+ void validate();
};
#endif /* INCLUDED_GR_SIMPLE_FLOWGRAPH_H */
Modified:
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_simple_flowgraph.i
===================================================================
---
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_simple_flowgraph.i
2006-11-20 03:38:57 UTC (rev 4005)
+++
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_simple_flowgraph.i
2006-11-20 04:37:01 UTC (rev 4006)
@@ -40,4 +40,6 @@
void connect(const std::string &src, int src_port,
const std::string &dst, int dst_port)
throw (std::invalid_argument);
+ void validate()
+ throw (std::runtime_error);
};
Modified:
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_simple_flowgraph_detail.cc
===================================================================
---
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_simple_flowgraph_detail.cc
2006-11-20 03:38:57 UTC (rev 4005)
+++
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_simple_flowgraph_detail.cc
2006-11-20 04:37:01 UTC (rev 4006)
@@ -27,8 +27,11 @@
#include <gr_simple_flowgraph.h>
#include <gr_simple_flowgraph_detail.h>
#include <gr_io_signature.h>
+#include <iostream>
#include <stdexcept>
+#define GR_SIMPLE_FLOWGRAPH_DETAIL_DEBUG 1
+
gr_edge_sptr
gr_make_edge(const std::string &src_name, int src_port,
const std::string &dst_name, int dst_port)
@@ -128,3 +131,15 @@
throw std::invalid_argument("type size mismatch");
}
+void
+gr_simple_flowgraph_detail::validate()
+{
+ if (GR_SIMPLE_FLOWGRAPH_DETAIL_DEBUG)
+ std::cout << "gr_simple_flowgraph_detail::validate()" << std::endl;
+
+ for (gr_component_miter_t p = d_components.begin(); p !=
d_components.end(); p++) {
+ if (GR_SIMPLE_FLOWGRAPH_DETAIL_DEBUG)
+ std::cout << "Validating block named " << p->first << ", which is "
+ << p->second << std::endl;
+ }
+}
Modified:
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_simple_flowgraph_detail.h
===================================================================
---
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_simple_flowgraph_detail.h
2006-11-20 03:38:57 UTC (rev 4005)
+++
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/lib/runtime/gr_simple_flowgraph_detail.h
2006-11-20 04:37:01 UTC (rev 4006)
@@ -67,18 +67,25 @@
gr_component_map_t d_components;
gr_edge_vector_t d_edges;
+ void define_component(const std::string &name, gr_block_sptr block);
+ void connect(const std::string &src, int src_port,
+ const std::string &dst, int dst_port);
gr_block_sptr lookup_block(const std::string &name);
void check_valid_port(gr_io_signature_sptr sig, int port);
void check_dst_not_used(const std::string &name, int port);
void check_type_match(gr_block_sptr src_block, int src_port,
gr_block_sptr dst_block, int dst_port);
+ void validate();
public:
~gr_simple_flowgraph_detail();
-
- void define_component(const std::string &name, gr_block_sptr block);
- void connect(const std::string &src, int src_port,
- const std::string &dst, int dst_port);
};
+inline std::ostream&
+operator <<(std::ostream& os, const gr_block_sptr p)
+{
+ os << "<gr_block " << p->name() << " (" << p->unique_id() << ")>";
+ return os;
+}
+
#endif /* INCLUDED_GR_SIMPLE_FLOWGRAPH_H */
Modified:
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/python/gnuradio/gr/qa_simple_flowgraph.py
===================================================================
---
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/python/gnuradio/gr/qa_simple_flowgraph.py
2006-11-20 03:38:57 UTC (rev 4005)
+++
gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src/python/gnuradio/gr/qa_simple_flowgraph.py
2006-11-20 04:37:01 UTC (rev 4006)
@@ -5,79 +5,156 @@
class test_simple_flowgraph(gr_unittest.TestCase):
def setUp(self):
- self.sfg = gr.simple_flowgraph()
+ pass
def tearDown(self):
- self.sfg = None
-
+ pass
+
def test_001_define_component(self):
- self.sfg.define_component("src", gr.null_source(gr.sizeof_int))
- self.sfg.define_component("dst", gr.null_sink(gr.sizeof_int))
+ sfg = gr.simple_flowgraph()
+ sfg.define_component("src", gr.null_source(gr.sizeof_int))
+ sfg.define_component("dst", gr.null_sink(gr.sizeof_int))
def test_002_define_component_name_in_use(self):
- self.sfg.define_component("src", gr.null_source(gr.sizeof_int))
+ sfg = gr.simple_flowgraph()
+ sfg.define_component("src", gr.null_source(gr.sizeof_int))
self.assertRaises(ValueError,
- lambda: self.sfg.define_component("src",
gr.null_sink(gr.sizeof_int)))
+ lambda: sfg.define_component("src", gr.null_sink(gr.sizeof_int)))
def test_003_connect(self):
- self.sfg.define_component("src", gr.null_source(gr.sizeof_int))
- self.sfg.define_component("dst", gr.null_sink(gr.sizeof_int))
- self.sfg.connect("src", 0, "dst", 0)
+ sfg = gr.simple_flowgraph()
+ sfg.define_component("src", gr.null_source(gr.sizeof_int))
+ sfg.define_component("dst", gr.null_sink(gr.sizeof_int))
+ sfg.connect("src", 0, "dst", 0)
def test_004connect_unknown_src(self):
- self.sfg.define_component("dst", gr.null_sink(gr.sizeof_int))
+ sfg = gr.simple_flowgraph()
+ sfg.define_component("dst", gr.null_sink(gr.sizeof_int))
self.assertRaises(ValueError,
- lambda: self.sfg.connect("src", 0, "dst", 0))
+ lambda: sfg.connect("src", 0, "dst", 0))
def test_005_connect_unknown_dst(self):
- self.sfg.define_component("src", gr.null_source(gr.sizeof_int))
+ sfg = gr.simple_flowgraph()
+ sfg.define_component("src", gr.null_source(gr.sizeof_int))
self.assertRaises(ValueError,
- lambda: self.sfg.connect("src", 0, "dst", 0))
+ lambda: sfg.connect("src", 0, "dst", 0))
def test_006_connect_invalid_src_port_neg(self):
- self.sfg.define_component("src", gr.null_source(gr.sizeof_int))
- self.sfg.define_component("dst", gr.null_sink(gr.sizeof_int))
+ sfg = gr.simple_flowgraph()
+ sfg.define_component("src", gr.null_source(gr.sizeof_int))
+ sfg.define_component("dst", gr.null_sink(gr.sizeof_int))
self.assertRaises(ValueError,
- lambda: self.sfg.connect("src", -1, "dst", 0))
+ lambda: sfg.connect("src", -1, "dst", 0))
def test_007_connect_invalid_src_port_exceeds(self):
- self.sfg.define_component("src", gr.null_source(gr.sizeof_int))
- self.sfg.define_component("dst", gr.null_sink(gr.sizeof_int))
+ sfg = gr.simple_flowgraph()
+ sfg.define_component("src", gr.null_source(gr.sizeof_int))
+ sfg.define_component("dst", gr.null_sink(gr.sizeof_int))
self.assertRaises(ValueError,
- lambda: self.sfg.connect("src", 1, "dst", 0))
+ lambda: sfg.connect("src", 1, "dst", 0))
def test_008_connect_invalid_dst_port_neg(self):
- self.sfg.define_component("src", gr.null_source(gr.sizeof_int))
- self.sfg.define_component("dst", gr.null_sink(gr.sizeof_int))
+ sfg = gr.simple_flowgraph()
+ sfg.define_component("src", gr.null_source(gr.sizeof_int))
+ sfg.define_component("dst", gr.null_sink(gr.sizeof_int))
self.assertRaises(ValueError,
- lambda: self.sfg.connect("src", 0, "dst", -1))
+ lambda: sfg.connect("src", 0, "dst", -1))
def test_009_connect_invalid_dst_port_exceeds(self):
- self.sfg.define_component("src", gr.null_source(gr.sizeof_int))
- self.sfg.define_component("dst", gr.null_sink(gr.sizeof_int))
+ sfg = gr.simple_flowgraph()
+ sfg.define_component("src", gr.null_source(gr.sizeof_int))
+ sfg.define_component("dst", gr.null_sink(gr.sizeof_int))
self.assertRaises(ValueError,
- lambda: self.sfg.connect("src", 0, "dst", 1))
+ lambda: sfg.connect("src", 0, "dst", 1))
def test_010_connect_invalid_dst_port_in_use(self):
- self.sfg.define_component("src1", gr.null_source(gr.sizeof_int))
- self.sfg.define_component("src2", gr.null_source(gr.sizeof_int))
- self.sfg.define_component("dst", gr.null_sink(gr.sizeof_int))
- self.sfg.connect("src1", 0, "dst", 0)
+ sfg = gr.simple_flowgraph()
+ sfg.define_component("src1", gr.null_source(gr.sizeof_int))
+ sfg.define_component("src2", gr.null_source(gr.sizeof_int))
+ sfg.define_component("dst", gr.null_sink(gr.sizeof_int))
+ sfg.connect("src1", 0, "dst", 0)
self.assertRaises(ValueError,
- lambda: self.sfg.connect("src2", 0, "dst", 0))
+ lambda: sfg.connect("src2", 0, "dst", 0))
def test_011_connect_one_src_two_dst(self):
- self.sfg.define_component("src", gr.null_source(gr.sizeof_int))
- self.sfg.define_component("dst1", gr.null_sink(gr.sizeof_int))
- self.sfg.define_component("dst2", gr.null_sink(gr.sizeof_int))
- self.sfg.connect("src", 0, "dst1", 0)
- self.sfg.connect("src", 0, "dst2", 0)
+ sfg = gr.simple_flowgraph()
+ sfg.define_component("src", gr.null_source(gr.sizeof_int))
+ sfg.define_component("dst1", gr.null_sink(gr.sizeof_int))
+ sfg.define_component("dst2", gr.null_sink(gr.sizeof_int))
+ sfg.connect("src", 0, "dst1", 0)
+ sfg.connect("src", 0, "dst2", 0)
def test_012_connect_type_mismatch(self):
- self.sfg.define_component("src", gr.null_source(gr.sizeof_int))
- self.sfg.define_component("dst", gr.null_sink(gr.sizeof_char))
+ sfg = gr.simple_flowgraph()
+ sfg.define_component("src", gr.null_source(gr.sizeof_int))
+ sfg.define_component("dst", gr.null_sink(gr.sizeof_char))
self.assertRaises(ValueError,
- lambda: self.sfg.connect("src", 0, "dst", 0))
-
+ lambda: sfg.connect("src", 0, "dst", 0))
+
+ def test_013_validate(self):
+ sfg = gr.simple_flowgraph()
+ sfg.define_component("src", gr.null_source(gr.sizeof_int))
+ sfg.define_component("dst1", gr.null_sink(gr.sizeof_int))
+ sfg.define_component("dst2", gr.null_sink(gr.sizeof_int))
+ sfg.connect("src", 0, "dst1", 0)
+ sfg.connect("src", 0, "dst2", 0)
+ sfg.validate()
+
+ def test_014_validate(self):
+ sfg = gr.simple_flowgraph()
+ sfg.define_component("src1", gr.null_source (gr.sizeof_int))
+ sfg.define_component("nop1", gr.nop (gr.sizeof_int))
+ sfg.define_component("dst1", gr.null_sink (gr.sizeof_int))
+ sfg.define_component("dst2", gr.null_sink (gr.sizeof_int))
+ sfg.connect("src1", 0, "nop1", 0)
+ sfg.connect("src1", 0, "nop1", 1)
+ sfg.connect("nop1", 0, "dst1", 0)
+ sfg.connect("nop1", 1, "dst2", 0)
+ sfg.validate ()
+
+ def test_015_validate(self):
+ sfg = gr.simple_flowgraph()
+ sfg.define_component("src1", gr.null_source (gr.sizeof_int))
+ sfg.define_component("nop1", gr.nop (gr.sizeof_int))
+ sfg.define_component("dst1", gr.null_sink (gr.sizeof_int))
+ sfg.define_component("dst2", gr.null_sink (gr.sizeof_int))
+ sfg.connect("src1", 0, "nop1", 0)
+ sfg.connect("src1", 0, "nop1", 2)
+ sfg.connect("nop1", 0, "dst1", 0)
+ sfg.connect("nop1", 1, "dst2", 0)
+ self.assertRaises(RuntimeError,
+ lambda: sfg.validate ())
+
+ def test_016_validate(self):
+ sfg = gr.simple_flowgraph()
+ sfg.define_component("src1", gr.null_source (gr.sizeof_int))
+ sfg.define_component("nop1", gr.nop (gr.sizeof_int))
+ sfg.define_component("dst1", gr.null_sink (gr.sizeof_int))
+ sfg.define_component("dst2", gr.null_sink (gr.sizeof_int))
+ sfg.connect("src1", 0, "nop1", 0)
+ sfg.connect("src1", 0, "nop1", 1)
+ sfg.connect("nop1", 0, "dst1", 0)
+ sfg.connect("nop1", 2, "dst2", 0)
+ self.assertRaises(RuntimeError,
+ lambda: sfg.validate ())
+
+ def test_017_validate(self):
+ sfg = gr.simple_flowgraph()
+ sfg.define_component("src1", gr.null_source (gr.sizeof_int))
+ sfg.define_component("nop1", gr.nop (gr.sizeof_int))
+ sfg.define_component("dst1", gr.null_sink (gr.sizeof_int))
+ sfg.define_component("dst2", gr.null_sink (gr.sizeof_int))
+ sfg.connect("src1", 0, "nop1", 0)
+ sfg.connect("src1", 0, "nop1", 1)
+ sfg.connect("nop1", 0, "dst1", 0)
+ sfg.connect("nop1", 1, "dst2", 0)
+ sfg.validate()
+ # pending implementation of disconnect
+ #sfg.disconnect("src1", 0, "nop1", 1)
+ #sfg.validate
+ #self.assertRaises(RuntimeError,
+ # lambda: sfg.disconnect("src1", 0, "nop1", 1))
+
+
if __name__ == "__main__":
gr_unittest.main()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r4006 - in gnuradio/branches/developers/jcorgan/hier/gnuradio-core/src: lib/runtime python/gnuradio/gr,
jcorgan <=