diff options
author | Tom Rondeau <trondeau@vt.edu> | 2013-02-18 17:55:14 -0500 |
---|---|---|
committer | Tom Rondeau <trondeau@vt.edu> | 2013-02-18 17:55:14 -0500 |
commit | 29f51e3f95acb3918cf5ef9e9134254e256afbb4 (patch) | |
tree | dd033c765aa9033506e76378541aedea89bcd379 | |
parent | 405e89c48e9a20f45d74494ac08b026de27d3ee6 (diff) |
ctrlport: adding a config param to enable/disable controlport, default=disabled.
Also updates QA code for ctrlport to turn controlport on via env var.
5 files changed, 26 insertions, 7 deletions
diff --git a/gnuradio-core/gnuradio-core.conf b/gnuradio-core/gnuradio-core.conf index 70eb00236c..cae4ff2f1b 100644 --- a/gnuradio-core/gnuradio-core.conf +++ b/gnuradio-core/gnuradio-core.conf @@ -8,3 +8,6 @@ verbose = False [PerfCounters] on = False + +[ControlPort] +on = False diff --git a/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc b/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc index 6850afa845..c8564f6698 100644 --- a/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc +++ b/gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc @@ -25,6 +25,7 @@ #include <gr_hier_block2_detail.h> #include <gr_io_signature.h> +#include <gr_prefs.h> #include <stdexcept> #include <sstream> #include <boost/format.hpp> @@ -474,20 +475,28 @@ gr_hier_block2_detail::flatten_aux(gr_flat_flowgraph_sptr sfg) const gr_edge_viter_t p; gr_msg_edge_viter_t q,u; + // Only run setup_rpc if ControlPort config param is enabled. + bool ctrlport_on = gr_prefs::singleton()->get_bool("ControlPort", "on", false); + // For every block (gr_block and gr_hier_block2), set up the RPC // interface. for(p = edges.begin(); p != edges.end(); p++) { gr_basic_block_sptr b; b = p->src().block(); - if(!b->is_rpc_set()) { - b->setup_rpc(); - b->rpc_set(); + + if(ctrlport_on) { + if(!b->is_rpc_set()) { + b->setup_rpc(); + b->rpc_set(); + } } b = p->dst().block(); - if(!b->is_rpc_set()) { - b->setup_rpc(); - b->rpc_set(); + if(ctrlport_on) { + if(!b->is_rpc_set()) { + b->setup_rpc(); + b->rpc_set(); + } } } diff --git a/gnuradio-core/src/lib/runtime/gr_top_block_impl.cc b/gnuradio-core/src/lib/runtime/gr_top_block_impl.cc index e563fbadb8..7e771204a0 100644 --- a/gnuradio-core/src/lib/runtime/gr_top_block_impl.cc +++ b/gnuradio-core/src/lib/runtime/gr_top_block_impl.cc @@ -29,6 +29,7 @@ #include <gr_flat_flowgraph.h> #include <gr_scheduler_sts.h> #include <gr_scheduler_tpb.h> +#include <gr_prefs.h> #include <stdexcept> #include <iostream> @@ -108,7 +109,9 @@ gr_top_block_impl::start(int max_noutput_items) d_ffg->validate(); d_ffg->setup_connections(); - d_ffg->enable_pc_rpc(); + // Only export perf. counters if ControlPort config param is enabled. + if(gr_prefs::singleton()->get_bool("ControlPort", "on", false)) + d_ffg->enable_pc_rpc(); d_scheduler = make_scheduler(d_ffg, d_max_noutput_items); d_state = RUNNING; diff --git a/gnuradio-core/src/python/gnuradio/ctrlport/qa_cpp_py_binding.py b/gnuradio-core/src/python/gnuradio/ctrlport/qa_cpp_py_binding.py index 34c7d0f5df..a8b6de8c53 100755 --- a/gnuradio-core/src/python/gnuradio/ctrlport/qa_cpp_py_binding.py +++ b/gnuradio-core/src/python/gnuradio/ctrlport/qa_cpp_py_binding.py @@ -30,6 +30,7 @@ from gnuradio import gr, gr_unittest from gnuradio.ctrlport import GNURadio from gnuradio import ctrlport +import os def get1(): return "success" @@ -69,6 +70,7 @@ class test_cpp_py_binding(gr_unittest.TestCase): def setUp(self): self.tb = gr.top_block() + os.environ['GR_CONF_CONTROLPORT_ON'] = 'True' def tearDown(self): self.tb = None diff --git a/gnuradio-core/src/python/gnuradio/ctrlport/qa_cpp_py_binding_set.py b/gnuradio-core/src/python/gnuradio/ctrlport/qa_cpp_py_binding_set.py index 8b1b15022c..4ca120099c 100755 --- a/gnuradio-core/src/python/gnuradio/ctrlport/qa_cpp_py_binding_set.py +++ b/gnuradio-core/src/python/gnuradio/ctrlport/qa_cpp_py_binding_set.py @@ -30,6 +30,7 @@ from gnuradio import gr, gr_unittest from gnuradio.ctrlport import GNURadio from gnuradio import ctrlport +import os class inc_class: def __init__(self,val): @@ -51,6 +52,7 @@ getset3 = inc_class("test"); class test_cpp_py_binding_set(gr_unittest.TestCase): def setUp(self): self.tb = gr.top_block() + os.environ['GR_CONF_CONTROLPORT_ON'] = 'True' def tearDown(self): self.tb = None |