diff options
-rwxr-xr-x | gr-zeromq/examples/client.py | 5 | ||||
-rwxr-xr-x | gr-zeromq/examples/run_app.sh | 4 | ||||
-rwxr-xr-x | gr-zeromq/examples/server.py | 4 | ||||
-rw-r--r-- | gr-zeromq/grc/zeromq_pull_source.xml | 9 | ||||
-rw-r--r-- | gr-zeromq/grc/zeromq_push_sink.xml | 9 | ||||
-rw-r--r-- | gr-zeromq/grc/zeromq_rep_sink.xml | 9 | ||||
-rw-r--r-- | gr-zeromq/grc/zeromq_source_reqrep.xml | 74 | ||||
-rw-r--r-- | gr-zeromq/include/gnuradio/zeromq/pull_source.h | 2 | ||||
-rw-r--r-- | gr-zeromq/include/gnuradio/zeromq/push_sink.h | 2 | ||||
-rw-r--r-- | gr-zeromq/include/gnuradio/zeromq/rep_sink.h | 2 | ||||
-rw-r--r-- | gr-zeromq/include/gnuradio/zeromq/source_reqrep.h | 2 | ||||
-rw-r--r-- | gr-zeromq/lib/pull_source_impl.cc | 8 | ||||
-rw-r--r-- | gr-zeromq/lib/pull_source_impl.h | 2 | ||||
-rw-r--r-- | gr-zeromq/lib/push_sink_impl.cc | 8 | ||||
-rw-r--r-- | gr-zeromq/lib/push_sink_impl.h | 2 | ||||
-rw-r--r-- | gr-zeromq/lib/rep_sink_impl.cc | 8 | ||||
-rw-r--r-- | gr-zeromq/lib/rep_sink_impl.h | 2 | ||||
-rw-r--r-- | gr-zeromq/lib/source_reqrep_impl.cc | 8 | ||||
-rw-r--r-- | gr-zeromq/lib/source_reqrep_impl.h | 2 |
19 files changed, 102 insertions, 60 deletions
diff --git a/gr-zeromq/examples/client.py b/gr-zeromq/examples/client.py index 9ae57f7d15..a892273d82 100755 --- a/gr-zeromq/examples/client.py +++ b/gr-zeromq/examples/client.py @@ -26,6 +26,7 @@ # Imports ############################################################################### from gnuradio import zeromq +#import zeromq from gnuradio import gr from gnuradio import blocks from gnuradio import analog @@ -53,8 +54,8 @@ class top_block(gr.top_block): # blocks #self.zmq_source = zeromq.source_reqrep_nopoll(gr.sizeof_float,source_adr) - self.zmq_source = zeromq.source_reqrep(gr.sizeof_float,source_adr) - #self.zmq_source = zeromq.pull_source(gr.sizeof_float,source_adr) + self.zmq_source = zeromq.source_reqrep(gr.sizeof_float, 1, source_adr) + #self.zmq_source = zeromq.pull_source(gr.sizeof_float, 1, source_adr) #self.zmq_probe = zeromq.push_sink(gr.sizeof_float,probe_adr) self.zmq_probe = zeromq.pub_sink(gr.sizeof_float,probe_adr) diff --git a/gr-zeromq/examples/run_app.sh b/gr-zeromq/examples/run_app.sh index 59370d0efe..4af936ca82 100755 --- a/gr-zeromq/examples/run_app.sh +++ b/gr-zeromq/examples/run_app.sh @@ -1,4 +1,4 @@ #!/bin/sh -export LD_LIBRARY_PATH="$PWD/../build/gr-zeromq/lib" -export PYTHONPATH="$PWD/../build/gr-zeromq/swig:$PWD/../python" +export LD_LIBRARY_PATH="$PWD/../../build/gr-zeromq/lib" +export PYTHONPATH="$PWD/../../build/gr-zeromq/swig:$PWD/../../python" /usr/bin/python $1 $2 $3 $4 $5 $6 $7 $8 $9 diff --git a/gr-zeromq/examples/server.py b/gr-zeromq/examples/server.py index 4750df9aa4..49640f8fd6 100755 --- a/gr-zeromq/examples/server.py +++ b/gr-zeromq/examples/server.py @@ -59,8 +59,8 @@ class top_block(gr.top_block): self.throttle = blocks.throttle(gr.sizeof_float, samp_rate) self.mult = blocks.multiply_const_ff(1) #self.zmq_sink = zeromq.rep_sink_nopoll(gr.sizeof_float, sink_adr) - self.zmq_sink = zeromq.rep_sink(gr.sizeof_float, sink_adr) - #self.zmq_sink = zeromq.push_sink(gr.sizeof_float, sink_adr) + self.zmq_sink = zeromq.rep_sink(gr.sizeof_float, 1, sink_adr) + #self.zmq_sink = zeromq.push_sink(gr.sizeof_float, 1, sink_adr) #self.zmq_probe = zeromq.push_sink(gr.sizeof_float, probe_adr) self.zmq_probe = zeromq.pub_sink(gr.sizeof_float, probe_adr) #self.null_sink = blocks.null_sink(gr.sizeof_float) diff --git a/gr-zeromq/grc/zeromq_pull_source.xml b/gr-zeromq/grc/zeromq_pull_source.xml index 7ca14fc2a3..72625ee7be 100644 --- a/gr-zeromq/grc/zeromq_pull_source.xml +++ b/gr-zeromq/grc/zeromq_pull_source.xml @@ -4,7 +4,7 @@ <key>zeromq_pull_source</key> <category>ZeroMQ Interfaces</category> <import>from gnuradio import zeromq</import> - <make>zeromq.pull_source($type.itemsize, $address, $timeout)</make> + <make>zeromq.pull_source($type.itemsize, $vlen, $address, $timeout)</make> <param> <name>IO Type</name> @@ -38,6 +38,13 @@ </param> <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + + <param> <name>Address</name> <key>address</key> <type>string</type> diff --git a/gr-zeromq/grc/zeromq_push_sink.xml b/gr-zeromq/grc/zeromq_push_sink.xml index 15069c714a..e106389b9f 100644 --- a/gr-zeromq/grc/zeromq_push_sink.xml +++ b/gr-zeromq/grc/zeromq_push_sink.xml @@ -4,7 +4,7 @@ <key>zeromq_push_sink</key> <category>ZeroMQ Interfaces</category> <import>from gnuradio import zeromq</import> - <make>zeromq.push_sink($type.itemsize, $address, $blocking)</make> + <make>zeromq.push_sink($type.itemsize, $vlen, $address, $blocking)</make> <param> <name>IO Type</name> @@ -38,6 +38,13 @@ </param> <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + + <param> <name>Address</name> <key>address</key> <type>string</type> diff --git a/gr-zeromq/grc/zeromq_rep_sink.xml b/gr-zeromq/grc/zeromq_rep_sink.xml index a6307943fb..21fe8c106a 100644 --- a/gr-zeromq/grc/zeromq_rep_sink.xml +++ b/gr-zeromq/grc/zeromq_rep_sink.xml @@ -4,7 +4,7 @@ <key>zeromq_rep_sink</key> <category>ZeroMQ Interfaces</category> <import>from gnuradio import zeromq</import> - <make>zeromq.rep_sink($type.itemsize, $address, $blocking)</make> + <make>zeromq.rep_sink($type.itemsize, $vlen, $address, $blocking)</make> <param> <name>IO Type</name> @@ -38,6 +38,13 @@ </param> <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + + <param> <name>Address</name> <key>address</key> <type>string</type> diff --git a/gr-zeromq/grc/zeromq_source_reqrep.xml b/gr-zeromq/grc/zeromq_source_reqrep.xml index 56ac7871bf..1a1a7b0d05 100644 --- a/gr-zeromq/grc/zeromq_source_reqrep.xml +++ b/gr-zeromq/grc/zeromq_source_reqrep.xml @@ -1,38 +1,58 @@ <?xml version="1.0"?> <block> - <name>source_reqrep</name> + <name>ZMQ REQ Source</name> <key>zeromq_source_reqrep</key> - <category>zeromq</category> - <import>import zeromq</import> - <make>zeromq.source_reqrep($itemsize, $*address)</make> - <!-- Make one 'param' node for every Parameter you want settable from the GUI. - Sub-nodes: - * name - * key (makes the value accessible as $keyname, e.g. in the make node) - * type --> + <category>ZeroMQ Interfaces</category> + <import>from gnuradio import zeromq</import> + <make>zeromq.source_reqrep($type.itemsize, $vlen, $address)</make> + <param> - <name>...</name> - <key>...</key> - <type>...</type> + <name>IO Type</name> + <key>type</key> + <type>enum</type> + <option> + <name>Complex</name> + <key>complex</key> + <opt>itemsize:gr.sizeof_gr_complex</opt> + </option> + <option> + <name>Float</name> + <key>float</key> + <opt>itemsize:gr.sizeof_float</opt> + </option> + <option> + <name>Int</name> + <key>int</key> + <opt>itemsize:gr.sizeof_int</opt> + </option> + <option> + <name>Short</name> + <key>short</key> + <opt>itemsize:gr.sizeof_short</opt> + </option> + <option> + <name>Byte</name> + <key>byte</key> + <opt>itemsize:gr.sizeof_char</opt> + </option> </param> - <!-- Make one 'sink' node per input. Sub-nodes: - * name (an identifier for the GUI) - * type - * vlen - * optional (set to 1 for optional inputs) --> - <sink> - <name>in</name> - <type><!-- e.g. int, float, complex, byte, short, xxx_vector, ...--></type> - </sink> + <param> + <name>Vec Length</name> + <key>vlen</key> + <value>1</value> + <type>int</type> + </param> + + <param> + <name>Address</name> + <key>address</key> + <type>string</type> + </param> - <!-- Make one 'source' node per output. Sub-nodes: - * name (an identifier for the GUI) - * type - * vlen - * optional (set to 1 for optional inputs) --> <source> <name>out</name> - <type><!-- e.g. int, float, complex, byte, short, xxx_vector, ...--></type> + <type>$type</type> </source> + </block> diff --git a/gr-zeromq/include/gnuradio/zeromq/pull_source.h b/gr-zeromq/include/gnuradio/zeromq/pull_source.h index 46d861b270..12c1005174 100644 --- a/gr-zeromq/include/gnuradio/zeromq/pull_source.h +++ b/gr-zeromq/include/gnuradio/zeromq/pull_source.h @@ -50,7 +50,7 @@ namespace gr { * \param timeout Receive timeout in seconds, default is 100ms, 1us increments * */ - static sptr make(size_t itemsize, char *address, float timeout=0.1); + static sptr make(size_t itemsize, size_t vlen, char *address, float timeout=0.1); }; } // namespace zeromq diff --git a/gr-zeromq/include/gnuradio/zeromq/push_sink.h b/gr-zeromq/include/gnuradio/zeromq/push_sink.h index cffe2d3154..2f68e44ca0 100644 --- a/gr-zeromq/include/gnuradio/zeromq/push_sink.h +++ b/gr-zeromq/include/gnuradio/zeromq/push_sink.h @@ -54,7 +54,7 @@ namespace gr { * \param blocking Indicate whether blocking sends should be used, default true. * */ - static sptr make(size_t itemsize, char *address, bool blocking=true); + static sptr make(size_t itemsize, size_t vlen, char *address, bool blocking=true); }; } // namespace zeromq diff --git a/gr-zeromq/include/gnuradio/zeromq/rep_sink.h b/gr-zeromq/include/gnuradio/zeromq/rep_sink.h index dcae967f32..9c2cafba12 100644 --- a/gr-zeromq/include/gnuradio/zeromq/rep_sink.h +++ b/gr-zeromq/include/gnuradio/zeromq/rep_sink.h @@ -53,7 +53,7 @@ namespace gr { * \param blocking Indicate whether blocking sends should be used, default true. * */ - static sptr make(size_t itemsize, char *address, float timeout=0.1, bool blocking=true); + static sptr make(size_t itemsize, size_t vlen, char *address, float timeout=0.1, bool blocking=true); }; } // namespace zeromq diff --git a/gr-zeromq/include/gnuradio/zeromq/source_reqrep.h b/gr-zeromq/include/gnuradio/zeromq/source_reqrep.h index f0b9c3a2d2..54d4b8da21 100644 --- a/gr-zeromq/include/gnuradio/zeromq/source_reqrep.h +++ b/gr-zeromq/include/gnuradio/zeromq/source_reqrep.h @@ -47,7 +47,7 @@ namespace gr { * class. zeromq::source_reqrep::make is the public interface for * creating new instances. */ - static sptr make(size_t itemsize, char *address); + static sptr make(size_t itemsize, size_t vlen, char *address); }; } // namespace zeromq diff --git a/gr-zeromq/lib/pull_source_impl.cc b/gr-zeromq/lib/pull_source_impl.cc index d5b815ecce..9b9e50a38f 100644 --- a/gr-zeromq/lib/pull_source_impl.cc +++ b/gr-zeromq/lib/pull_source_impl.cc @@ -31,16 +31,16 @@ namespace gr { namespace zeromq { pull_source::sptr - pull_source::make(size_t itemsize, char *address, float timeout) + pull_source::make(size_t itemsize, size_t vlen, char *address, float timeout) { return gnuradio::get_initial_sptr - (new pull_source_impl(itemsize, address, timeout)); + (new pull_source_impl(itemsize, vlen, address, timeout)); } - pull_source_impl::pull_source_impl(size_t itemsize, char *address, float timeout) + pull_source_impl::pull_source_impl(size_t itemsize, size_t vlen, char *address, float timeout) : gr::sync_block("pull_source", gr::io_signature::make(0, 0, 0), - gr::io_signature::make(1, 1, itemsize)), + gr::io_signature::make(1, 1, itemsize * vlen)), d_itemsize(itemsize) { d_timeout = timeout >= 0 ? (int)(timeout*1e6) : 0; diff --git a/gr-zeromq/lib/pull_source_impl.h b/gr-zeromq/lib/pull_source_impl.h index ff15e1968b..3e56bdc4c5 100644 --- a/gr-zeromq/lib/pull_source_impl.h +++ b/gr-zeromq/lib/pull_source_impl.h @@ -38,7 +38,7 @@ namespace gr { zmq::socket_t *d_socket; public: - pull_source_impl(size_t itemsize, char *address, float timeout); + pull_source_impl(size_t itemsize, size_t vlen, char *address, float timeout); ~pull_source_impl(); int work(int noutput_items, diff --git a/gr-zeromq/lib/push_sink_impl.cc b/gr-zeromq/lib/push_sink_impl.cc index 461ed6f24a..43ccd9dbca 100644 --- a/gr-zeromq/lib/push_sink_impl.cc +++ b/gr-zeromq/lib/push_sink_impl.cc @@ -31,15 +31,15 @@ namespace gr { namespace zeromq { push_sink::sptr - push_sink::make(size_t itemsize, char *address, bool blocking) + push_sink::make(size_t itemsize, size_t vlen, char *address, bool blocking) { return gnuradio::get_initial_sptr - (new push_sink_impl(itemsize, address, blocking)); + (new push_sink_impl(itemsize, vlen, address, blocking)); } - push_sink_impl::push_sink_impl(size_t itemsize, char *address, bool blocking) + push_sink_impl::push_sink_impl(size_t itemsize, size_t vlen, char *address, bool blocking) : gr::sync_block("push_sink", - gr::io_signature::make(1, 1, itemsize), + gr::io_signature::make(1, 1, itemsize * vlen), gr::io_signature::make(0, 0, 0)), d_itemsize(itemsize) { diff --git a/gr-zeromq/lib/push_sink_impl.h b/gr-zeromq/lib/push_sink_impl.h index 010261817d..77f1f60c8d 100644 --- a/gr-zeromq/lib/push_sink_impl.h +++ b/gr-zeromq/lib/push_sink_impl.h @@ -38,7 +38,7 @@ namespace gr { zmq::socket_t *d_socket; public: - push_sink_impl(size_t itemsize, char *address, bool blocking); + push_sink_impl(size_t itemsize, size_t vlen, char *address, bool blocking); ~push_sink_impl(); int work(int noutput_items, diff --git a/gr-zeromq/lib/rep_sink_impl.cc b/gr-zeromq/lib/rep_sink_impl.cc index abd4e6d5a7..38bb7d779e 100644 --- a/gr-zeromq/lib/rep_sink_impl.cc +++ b/gr-zeromq/lib/rep_sink_impl.cc @@ -31,15 +31,15 @@ namespace gr { namespace zeromq { rep_sink::sptr - rep_sink::make(size_t itemsize, char *address, float timeout, bool blocking) + rep_sink::make(size_t itemsize, size_t vlen, char *address, float timeout, bool blocking) { return gnuradio::get_initial_sptr - (new rep_sink_impl(itemsize, address, timeout, blocking)); + (new rep_sink_impl(itemsize, vlen, address, timeout, blocking)); } - rep_sink_impl::rep_sink_impl(size_t itemsize, char *address, float timeout, bool blocking) + rep_sink_impl::rep_sink_impl(size_t itemsize, size_t vlen, char *address, float timeout, bool blocking) : gr::sync_block("rep_sink", - gr::io_signature::make(1, 1, itemsize), + gr::io_signature::make(1, 1, itemsize * vlen), gr::io_signature::make(0, 0, 0)), d_itemsize(itemsize), d_blocking(blocking) { diff --git a/gr-zeromq/lib/rep_sink_impl.h b/gr-zeromq/lib/rep_sink_impl.h index ad2db2a081..0996d53616 100644 --- a/gr-zeromq/lib/rep_sink_impl.h +++ b/gr-zeromq/lib/rep_sink_impl.h @@ -39,7 +39,7 @@ namespace gr { bool d_blocking; public: - rep_sink_impl(size_t itemsize, char *address, float timeout, bool blocking); + rep_sink_impl(size_t itemsize, size_t vlen, char *address, float timeout, bool blocking); ~rep_sink_impl(); int work(int noutput_items, diff --git a/gr-zeromq/lib/source_reqrep_impl.cc b/gr-zeromq/lib/source_reqrep_impl.cc index 1674955ddb..c6aee7cdd2 100644 --- a/gr-zeromq/lib/source_reqrep_impl.cc +++ b/gr-zeromq/lib/source_reqrep_impl.cc @@ -31,16 +31,16 @@ namespace gr { namespace zeromq { source_reqrep::sptr - source_reqrep::make(size_t itemsize, char *address) + source_reqrep::make(size_t itemsize, size_t vlen, char *address) { return gnuradio::get_initial_sptr - (new source_reqrep_impl(itemsize, address)); + (new source_reqrep_impl(itemsize, vlen, address)); } - source_reqrep_impl::source_reqrep_impl(size_t itemsize, char *address) + source_reqrep_impl::source_reqrep_impl(size_t itemsize, size_t vlen, char *address) : gr::sync_block("source_reqrep", gr::io_signature::make(0, 0, 0), - gr::io_signature::make(1, 1, itemsize)), + gr::io_signature::make(1, 1, itemsize * vlen)), d_itemsize(itemsize) { d_context = new zmq::context_t(1); diff --git a/gr-zeromq/lib/source_reqrep_impl.h b/gr-zeromq/lib/source_reqrep_impl.h index a1e3bc6438..544549f6ce 100644 --- a/gr-zeromq/lib/source_reqrep_impl.h +++ b/gr-zeromq/lib/source_reqrep_impl.h @@ -37,7 +37,7 @@ namespace gr { zmq::socket_t *d_socket; public: - source_reqrep_impl(size_t itemsize, char *address); + source_reqrep_impl(size_t itemsize, size_t vlen, char *address); ~source_reqrep_impl(); int work(int noutput_items, |