summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rondeau <trondeau@vt.edu>2013-02-18 17:55:14 -0500
committerTom Rondeau <trondeau@vt.edu>2013-02-18 17:55:14 -0500
commit29f51e3f95acb3918cf5ef9e9134254e256afbb4 (patch)
treedd033c765aa9033506e76378541aedea89bcd379
parent405e89c48e9a20f45d74494ac08b026de27d3ee6 (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.
-rw-r--r--gnuradio-core/gnuradio-core.conf3
-rw-r--r--gnuradio-core/src/lib/runtime/gr_hier_block2_detail.cc21
-rw-r--r--gnuradio-core/src/lib/runtime/gr_top_block_impl.cc5
-rwxr-xr-xgnuradio-core/src/python/gnuradio/ctrlport/qa_cpp_py_binding.py2
-rwxr-xr-xgnuradio-core/src/python/gnuradio/ctrlport/qa_cpp_py_binding_set.py2
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