diff options
author | Tom Rondeau <trondeau@vt.edu> | 2012-12-03 19:43:50 -0500 |
---|---|---|
committer | Tom Rondeau <trondeau@vt.edu> | 2012-12-03 19:43:50 -0500 |
commit | 406e881106de9ce5d09fa6f4c24e08d8ef63cb49 (patch) | |
tree | cc2426035b9910855aa464b5f21784e0efb20202 /gnuradio-core/src/lib/general | |
parent | 1fea3358fbb5796ca50475e55dd7f0d443f1cd73 (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.txt | 11 | ||||
-rw-r--r-- | gnuradio-core/src/lib/general/general.i | 13 | ||||
-rw-r--r-- | gnuradio-core/src/lib/general/gr_nop.cc | 24 | ||||
-rw-r--r-- | gnuradio-core/src/lib/general/gr_nop.h | 10 | ||||
-rw-r--r-- | gnuradio-core/src/lib/general/gr_nop.i | 3 |
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); }; |