summaryrefslogtreecommitdiff
path: root/gnuradio-core/src/lib/general
diff options
context:
space:
mode:
authorTom Rondeau <trondeau@vt.edu>2012-12-03 19:43:50 -0500
committerTom Rondeau <trondeau@vt.edu>2012-12-03 19:43:50 -0500
commit406e881106de9ce5d09fa6f4c24e08d8ef63cb49 (patch)
treecc2426035b9910855aa464b5f21784e0efb20202 /gnuradio-core/src/lib/general
parent1fea3358fbb5796ca50475e55dd7f0d443f1cd73 (diff)
ctrlport: fixing up controlport integration into gnuradio-core for merge with next.
Diffstat (limited to 'gnuradio-core/src/lib/general')
-rw-r--r--gnuradio-core/src/lib/general/CMakeLists.txt11
-rw-r--r--gnuradio-core/src/lib/general/general.i13
-rw-r--r--gnuradio-core/src/lib/general/gr_nop.cc24
-rw-r--r--gnuradio-core/src/lib/general/gr_nop.h10
-rw-r--r--gnuradio-core/src/lib/general/gr_nop.i3
5 files changed, 61 insertions, 0 deletions
diff --git a/gnuradio-core/src/lib/general/CMakeLists.txt b/gnuradio-core/src/lib/general/CMakeLists.txt
index 80097c9db4..44ee54c1ca 100644
--- a/gnuradio-core/src/lib/general/CMakeLists.txt
+++ b/gnuradio-core/src/lib/general/CMakeLists.txt
@@ -242,6 +242,17 @@ set(gr_core_general_triple_threats
gr_message_strobe
)
+if(ENABLE_GR_CTRLPORT)
+
+add_definitions(-DENABLE_GR_CTRLPORT=1)
+
+list(APPEND gr_core_general_triple_threats
+ gr_ctrlport_probe_c
+ gr_ctrlport_probe2_c
+)
+endif(ENABLE_GR_CTRLPORT)
+
+
foreach(file_tt ${gr_core_general_triple_threats})
list(APPEND gnuradio_core_sources ${CMAKE_CURRENT_SOURCE_DIR}/${file_tt}.cc)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${file_tt}.h DESTINATION ${GR_INCLUDE_DIR}/gnuradio COMPONENT "core_devel")
diff --git a/gnuradio-core/src/lib/general/general.i b/gnuradio-core/src/lib/general/general.i
index af275686f0..7d03c20640 100644
--- a/gnuradio-core/src/lib/general/general.i
+++ b/gnuradio-core/src/lib/general/general.i
@@ -183,3 +183,16 @@
%include "gr_tag_debug.i"
%include "gr_block_gateway.i"
%include "gr_message_strobe.i"
+
+
+#ifdef ENABLE_GR_CTRLPORT
+
+%{
+#include <gr_ctrlport_probe_c.h>
+#include <gr_ctrlport_probe2_c.h>
+%}
+
+%include "gr_ctrlport_probe_c.i"
+%include "gr_ctrlport_probe2_c.i"
+
+#endif /* ENABLE_GR_CTRLPORT */
diff --git a/gnuradio-core/src/lib/general/gr_nop.cc b/gnuradio-core/src/lib/general/gr_nop.cc
index edfe1d76d9..d6c7bf4f2d 100644
--- a/gnuradio-core/src/lib/general/gr_nop.cc
+++ b/gnuradio-core/src/lib/general/gr_nop.cc
@@ -39,6 +39,8 @@ gr_nop::gr_nop (size_t sizeof_stream_item)
gr_make_io_signature (0, -1, sizeof_stream_item)),
d_nmsgs_recvd(0)
{
+ set_rpc();
+
// Arrange to have count_received_msgs called when messages are received.
message_port_register_in(pmt::mp("port"));
set_msg_handler(pmt::mp("port"), boost::bind(&gr_nop::count_received_msgs, this, _1));
@@ -64,3 +66,25 @@ gr_nop::general_work (int noutput_items,
return noutput_items;
}
+
+void
+gr_nop::set_rpc()
+{
+#ifdef ENABLE_GR_CTRLPORT
+ d_rpc_vars.push_back(
+ rpcbasic_sptr(new rpcbasic_register_get<gr_nop, int>(
+ d_name, "test", this, unique_id(),
+ &gr_nop::ctrlport_test,
+ pmt::mp(-256), pmt::mp(255), pmt::mp(0),
+ "", "Simple testing variable",
+ RPC_PRIVLVL_MIN, DISPNULL)));
+
+ d_rpc_vars.push_back(
+ rpcbasic_sptr(new rpcbasic_register_set<gr_nop, int>(
+ d_name, "test", this, unique_id(),
+ &gr_nop::set_ctrlport_test,
+ pmt::mp(-256), pmt::mp(255), pmt::mp(0),
+ "", "Simple testing variable",
+ RPC_PRIVLVL_MIN, DISPNULL)));
+#endif /* ENABLE_GR_CTRLPORT */
+}
diff --git a/gnuradio-core/src/lib/general/gr_nop.h b/gnuradio-core/src/lib/general/gr_nop.h
index e0d59280f9..51921ac4ec 100644
--- a/gnuradio-core/src/lib/general/gr_nop.h
+++ b/gnuradio-core/src/lib/general/gr_nop.h
@@ -27,6 +27,10 @@
#include <gr_block.h>
#include <stddef.h> // size_t
+#ifdef ENABLE_GR_CTRLPORT
+#include <rpcregisterhelpers.h>
+#endif
+
class gr_nop;
typedef boost::shared_ptr<gr_nop> gr_nop_sptr;
@@ -42,8 +46,12 @@ class GR_CORE_API gr_nop : public gr_block
friend GR_CORE_API gr_nop_sptr gr_make_nop (size_t sizeof_stream_item);
gr_nop (size_t sizeof_stream_item);
+ std::vector<boost::any> d_rpc_vars;
+ void set_rpc();
+
protected:
int d_nmsgs_recvd;
+ int d_ctrlport_test;
// Method that just counts any received messages.
void count_received_msgs(pmt::pmt_t msg);
@@ -56,6 +64,8 @@ protected:
int nmsgs_received() const { return d_nmsgs_recvd; }
+ int ctrlport_test() { return d_ctrlport_test; }
+ void set_ctrlport_test(int x) { d_ctrlport_test = x; }
};
#endif /* INCLUDED_GR_NOP_H */
diff --git a/gnuradio-core/src/lib/general/gr_nop.i b/gnuradio-core/src/lib/general/gr_nop.i
index 977a15d186..73ffa93630 100644
--- a/gnuradio-core/src/lib/general/gr_nop.i
+++ b/gnuradio-core/src/lib/general/gr_nop.i
@@ -25,6 +25,9 @@ GR_SWIG_BLOCK_MAGIC(gr,nop)
gr_nop_sptr gr_make_nop (size_t sizeof_stream_item);
class gr_nop : public gr_block {
+public:
+ int ctrlport_test();
+ void set_ctrlport_test(int x);
private:
gr_nop (size_t sizeof_stream_item);
};