summaryrefslogtreecommitdiff
path: root/gr-blocks/lib/ctrlport_probe2_i_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gr-blocks/lib/ctrlport_probe2_i_impl.cc')
-rw-r--r--gr-blocks/lib/ctrlport_probe2_i_impl.cc200
1 files changed, 104 insertions, 96 deletions
diff --git a/gr-blocks/lib/ctrlport_probe2_i_impl.cc b/gr-blocks/lib/ctrlport_probe2_i_impl.cc
index 7e17d8e8fe..d52f1762b0 100644
--- a/gr-blocks/lib/ctrlport_probe2_i_impl.cc
+++ b/gr-blocks/lib/ctrlport_probe2_i_impl.cc
@@ -28,123 +28,131 @@
#include <gnuradio/io_signature.h>
namespace gr {
- namespace blocks {
-
- ctrlport_probe2_i::sptr
- ctrlport_probe2_i::make(const std::string &id,
- const std::string &desc,
- int len, unsigned int disp_mask)
- {
- return gnuradio::get_initial_sptr
- (new ctrlport_probe2_i_impl(id, desc, len, disp_mask));
- }
-
- ctrlport_probe2_i_impl::ctrlport_probe2_i_impl(const std::string &id,
- const std::string &desc,
- int len, unsigned int disp_mask)
- : sync_block("probe2_i",
- io_signature::make(1, 1, sizeof(int)),
- io_signature::make(0, 0, 0)),
- d_id(id), d_desc(desc), d_len(len), d_disp_mask(disp_mask)
- {
- set_length(len);
- }
-
- ctrlport_probe2_i_impl::~ctrlport_probe2_i_impl()
- {
- }
-
- void
- ctrlport_probe2_i_impl::forecast(int noutput_items,
- gr_vector_int &ninput_items_required)
- {
- // make sure all inputs have noutput_items available
- unsigned ninputs = ninput_items_required.size();
- for(unsigned i = 0; i < ninputs; i++)
+namespace blocks {
+
+ctrlport_probe2_i::sptr ctrlport_probe2_i::make(const std::string& id,
+ const std::string& desc,
+ int len,
+ unsigned int disp_mask)
+{
+ return gnuradio::get_initial_sptr(
+ new ctrlport_probe2_i_impl(id, desc, len, disp_mask));
+}
+
+ctrlport_probe2_i_impl::ctrlport_probe2_i_impl(const std::string& id,
+ const std::string& desc,
+ int len,
+ unsigned int disp_mask)
+ : sync_block(
+ "probe2_i", io_signature::make(1, 1, sizeof(int)), io_signature::make(0, 0, 0)),
+ d_id(id),
+ d_desc(desc),
+ d_len(len),
+ d_disp_mask(disp_mask)
+{
+ set_length(len);
+}
+
+ctrlport_probe2_i_impl::~ctrlport_probe2_i_impl() {}
+
+void ctrlport_probe2_i_impl::forecast(int noutput_items,
+ gr_vector_int& ninput_items_required)
+{
+ // make sure all inputs have noutput_items available
+ unsigned ninputs = ninput_items_required.size();
+ for (unsigned i = 0; i < ninputs; i++)
ninput_items_required[i] = d_len;
- }
+}
- std::vector<int>
- ctrlport_probe2_i_impl::get()
- {
- return buffered_get.get();
- }
+std::vector<int> ctrlport_probe2_i_impl::get() { return buffered_get.get(); }
- void
- ctrlport_probe2_i_impl::set_length(int len)
- {
- gr::thread::scoped_lock guard(d_setlock);
+void ctrlport_probe2_i_impl::set_length(int len)
+{
+ gr::thread::scoped_lock guard(d_setlock);
- if(len > 8191) {
+ if (len > 8191) {
GR_LOG_WARN(d_logger,
boost::format("probe2_i: length %1% exceeds maximum"
- " buffer size of 8191") % len);
+ " buffer size of 8191") %
+ len);
len = 8191;
- }
-
- d_len = len;
- d_buffer.resize(d_len);
- d_index = 0;
}
- int
- ctrlport_probe2_i_impl::length() const
- {
- return (int)d_len;
- }
+ d_len = len;
+ d_buffer.resize(d_len);
+ d_index = 0;
+}
- int
- ctrlport_probe2_i_impl::work(int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
- {
- const int *in = (const int*)input_items[0];
+int ctrlport_probe2_i_impl::length() const { return (int)d_len; }
- gr::thread::scoped_lock guard(d_setlock);
+int ctrlport_probe2_i_impl::work(int noutput_items,
+ gr_vector_const_void_star& input_items,
+ gr_vector_void_star& output_items)
+{
+ const int* in = (const int*)input_items[0];
- // copy samples to get buffer if we need samples
- if(d_index < d_len) {
+ gr::thread::scoped_lock guard(d_setlock);
+
+ // copy samples to get buffer if we need samples
+ if (d_index < d_len) {
// copy smaller of remaining buffer space and num inputs to work()
- int num_copy = std::min( (int)(d_len - d_index), noutput_items );
+ int num_copy = std::min((int)(d_len - d_index), noutput_items);
- memcpy(&d_buffer[d_index], in, num_copy*sizeof(int));
+ memcpy(&d_buffer[d_index], in, num_copy * sizeof(int));
d_index += num_copy;
- }
+ }
- // notify the waiting get() if we fill up the buffer
- if(d_index == d_len) {
+ // notify the waiting get() if we fill up the buffer
+ if (d_index == d_len) {
buffered_get.offer_data(d_buffer);
d_index = 0;
- }
-
- return noutput_items;
}
- void
- ctrlport_probe2_i_impl::setup_rpc()
- {
+ return noutput_items;
+}
+
+void ctrlport_probe2_i_impl::setup_rpc()
+{
#ifdef GR_CTRLPORT
- int len = static_cast<int>(d_len);
- d_rpc_vars.push_back(
- rpcbasic_sptr(new rpcbasic_register_get<ctrlport_probe2_i, std::vector<int> >(
- alias(), d_id.c_str(), &ctrlport_probe2_i::get,
- pmt::mp(-32768), pmt::mp(32767), pmt::mp(0),
- "volts", d_desc.c_str(), RPC_PRIVLVL_MIN,
- d_disp_mask)));
-
- d_rpc_vars.push_back(
- rpcbasic_sptr(new rpcbasic_register_get<ctrlport_probe2_i, int>(
- alias(), "length", &ctrlport_probe2_i::length,
- pmt::mp(1), pmt::mp(10*len), pmt::mp(len),
- "samples", "get vector length", RPC_PRIVLVL_MIN, DISPNULL)));
-
- d_rpc_vars.push_back(
- rpcbasic_sptr(new rpcbasic_register_set<ctrlport_probe2_i, int>(
- alias(), "length", &ctrlport_probe2_i::set_length,
- pmt::mp(1), pmt::mp(10*len), pmt::mp(len),
- "samples", "set vector length", RPC_PRIVLVL_MIN, DISPNULL)));
+ int len = static_cast<int>(d_len);
+ d_rpc_vars.push_back(
+ rpcbasic_sptr(new rpcbasic_register_get<ctrlport_probe2_i, std::vector<int>>(
+ alias(),
+ d_id.c_str(),
+ &ctrlport_probe2_i::get,
+ pmt::mp(-32768),
+ pmt::mp(32767),
+ pmt::mp(0),
+ "volts",
+ d_desc.c_str(),
+ RPC_PRIVLVL_MIN,
+ d_disp_mask)));
+
+ d_rpc_vars.push_back(rpcbasic_sptr(
+ new rpcbasic_register_get<ctrlport_probe2_i, int>(alias(),
+ "length",
+ &ctrlport_probe2_i::length,
+ pmt::mp(1),
+ pmt::mp(10 * len),
+ pmt::mp(len),
+ "samples",
+ "get vector length",
+ RPC_PRIVLVL_MIN,
+ DISPNULL)));
+
+ d_rpc_vars.push_back(rpcbasic_sptr(
+ new rpcbasic_register_set<ctrlport_probe2_i, int>(alias(),
+ "length",
+ &ctrlport_probe2_i::set_length,
+ pmt::mp(1),
+ pmt::mp(10 * len),
+ pmt::mp(len),
+ "samples",
+ "set vector length",
+ RPC_PRIVLVL_MIN,
+ DISPNULL)));
#endif /* GR_CTRLPORT */
- }
+}
- } /* namespace blocks */
+} /* namespace blocks */
} /* namespace gr */