diff options
Diffstat (limited to 'gr-zeromq')
37 files changed, 486 insertions, 747 deletions
diff --git a/gr-zeromq/examples/python/client.py b/gr-zeromq/examples/python/client.py index ca7ad1830a..39055bd3fb 100755..100644 --- a/gr-zeromq/examples/python/client.py +++ b/gr-zeromq/examples/python/client.py @@ -1,3 +1,5 @@ +from __future__ import print_function +from __future__ import unicode_literals # # Copyright 2013 Free Software Foundation, Inc. # @@ -67,14 +69,14 @@ class top_block(gr.top_block): self.rpc_manager.start_watcher() def start_fg(self): - print "Start Flowgraph" + print("Start Flowgraph") try: self.start() except RuntimeError: - print "Can't start, flowgraph already running!" + print("Can't start, flowgraph already running!") def stop_fg(self): - print "Stop Flowgraph" + print("Stop Flowgraph") self.stop() self.wait() @@ -110,7 +112,7 @@ if __name__ == "__main__": time.sleep(1) except KeyboardInterrupt: pass - print "Shutting down flowgraph." + print("Shutting down flowgraph.") tb.rpc_manager.stop_watcher() tb.stop() tb.wait() diff --git a/gr-zeromq/examples/python/gui.py b/gr-zeromq/examples/python/gui.py index c932549408..832392f0a2 100755..100644 --- a/gr-zeromq/examples/python/gui.py +++ b/gr-zeromq/examples/python/gui.py @@ -1,3 +1,4 @@ +from __future__ import unicode_literals # # Copyright 2013 Free Software Foundation, Inc. # @@ -112,7 +113,7 @@ class gui(QtGui.QMainWindow): # plot the data from the queues def plot_data(self, plot, samples): - self.x = range(0,len(samples),1) + self.x = list(range(0,len(samples),1)) self.y = samples # clear the previous points from the plot plot.clear() diff --git a/gr-zeromq/examples/python/server.py b/gr-zeromq/examples/python/server.py index 23951664c1..b2cd8e8ef2 100755..100644 --- a/gr-zeromq/examples/python/server.py +++ b/gr-zeromq/examples/python/server.py @@ -1,3 +1,5 @@ +from __future__ import print_function +from __future__ import unicode_literals # # Copyright 2013 Free Software Foundation, Inc. # @@ -78,14 +80,14 @@ class top_block(gr.top_block): self.rpc_manager.start_watcher() def start_fg(self): - print "Start Flowgraph" + print("Start Flowgraph") try: self.start() except RuntimeError: - print "Can't start, flowgraph already running!" + print("Can't start, flowgraph already running!") def stop_fg(self): - print "Stop Flowgraph" + print("Stop Flowgraph") self.stop() self.wait() @@ -119,7 +121,7 @@ if __name__ == "__main__": time.sleep(1) except KeyboardInterrupt: pass - print "Shutting down flowgraph." + print("Shutting down flowgraph.") tb.rpc_manager.stop_watcher() tb.stop() tb.wait() diff --git a/gr-zeromq/grc/CMakeLists.txt b/gr-zeromq/grc/CMakeLists.txt index 7807bcfe9d..50aa1d7d52 100644 --- a/gr-zeromq/grc/CMakeLists.txt +++ b/gr-zeromq/grc/CMakeLists.txt @@ -18,18 +18,18 @@ # Boston, MA 02110-1301, USA. install(FILES - zeromq_pub_sink.xml - zeromq_pub_msg_sink.xml - zeromq_sub_source.xml - zeromq_sub_msg_source.xml - zeromq_push_sink.xml - zeromq_push_msg_sink.xml - zeromq_pull_source.xml - zeromq_pull_msg_source.xml - zeromq_rep_sink.xml - zeromq_rep_msg_sink.xml - zeromq_req_source.xml - zeromq_req_msg_source.xml + zeromq_pub_sink.block.yml + zeromq_pub_msg_sink.block.yml + zeromq_sub_source.block.yml + zeromq_sub_msg_source.block.yml + zeromq_push_sink.block.yml + zeromq_push_msg_sink.block.yml + zeromq_pull_source.block.yml + zeromq_pull_msg_source.block.yml + zeromq_rep_sink.block.yml + zeromq_rep_msg_sink.block.yml + zeromq_req_source.block.yml + zeromq_req_msg_source.block.yml DESTINATION share/gnuradio/grc/blocks ) diff --git a/gr-zeromq/grc/zeromq_pub_msg_sink.block.yml b/gr-zeromq/grc/zeromq_pub_msg_sink.block.yml new file mode 100644 index 0000000000..ee4e9739df --- /dev/null +++ b/gr-zeromq/grc/zeromq_pub_msg_sink.block.yml @@ -0,0 +1,23 @@ +id: zeromq_pub_msg_sink +label: ZMQ PUB Message Sink +category: '[Core]/ZeroMQ Interfaces' + +parameters: +- id: address + label: Address + dtype: string +- id: timeout + label: Timeout (msec) + dtype: float + default: '100' + +inputs: +- domain: message + id: in + optional: true + +templates: + imports: from gnuradio import zeromq + make: zeromq.pub_msg_sink(${address}, ${timeout}) + +file_format: 1 diff --git a/gr-zeromq/grc/zeromq_pub_msg_sink.xml b/gr-zeromq/grc/zeromq_pub_msg_sink.xml deleted file mode 100644 index 245ac37180..0000000000 --- a/gr-zeromq/grc/zeromq_pub_msg_sink.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0"?> -<block> - <name>ZMQ PUB Message Sink</name> - <key>zeromq_pub_msg_sink</key> - <category>[Core]/ZeroMQ Interfaces</category> - <import>from gnuradio import zeromq</import> - <make>zeromq.pub_msg_sink($address, $timeout)</make> - - <param> - <name>Address</name> - <key>address</key> - <type>string</type> - </param> - - <param> - <name>Timeout (msec)</name> - <key>timeout</key> - <value>100</value> - <type>float</type> - </param> - - <sink> - <name>in</name> - <type>message</type> - <optional>1</optional> - </sink> - -</block> diff --git a/gr-zeromq/grc/zeromq_pub_sink.block.yml b/gr-zeromq/grc/zeromq_pub_sink.block.yml new file mode 100644 index 0000000000..d8e5983d20 --- /dev/null +++ b/gr-zeromq/grc/zeromq_pub_sink.block.yml @@ -0,0 +1,48 @@ +id: zeromq_pub_sink +label: ZMQ PUB Sink +category: '[Core]/ZeroMQ Interfaces' + +parameters: +- id: type + label: IO Type + dtype: enum + options: [complex, float, int, short, byte] + option_attributes: + itemsize: [gr.sizeof_gr_complex, gr.sizeof_float, gr.sizeof_int, gr.sizeof_short, + gr.sizeof_char] + hide: part +- id: vlen + label: Vec Length + dtype: int + default: '1' + hide: ${ 'part' if vlen == 1 else 'none' } +- id: address + label: Address + dtype: string +- id: timeout + label: Timeout (msec) + dtype: float + default: '100' +- id: pass_tags + label: Pass Tags + dtype: enum + default: 'False' + options: ['True', 'False'] + option_labels: ['Yes', 'No'] +- id: hwm + label: High Watermark + dtype: int + default: '-1' + hide: ${ ('part' if hwm == -1 else 'none') } + +inputs: +- domain: stream + dtype: ${ type } + vlen: ${ vlen } + +templates: + imports: from gnuradio import zeromq + make: zeromq.pub_sink(${type.itemsize}, ${vlen}, ${address}, ${timeout}, ${pass_tags}, + ${hwm}) + +file_format: 1 diff --git a/gr-zeromq/grc/zeromq_pub_sink.xml b/gr-zeromq/grc/zeromq_pub_sink.xml deleted file mode 100644 index af130eeb21..0000000000 --- a/gr-zeromq/grc/zeromq_pub_sink.xml +++ /dev/null @@ -1,89 +0,0 @@ -<?xml version="1.0"?> -<block> - <name>ZMQ PUB Sink</name> - <key>zeromq_pub_sink</key> - <category>[Core]/ZeroMQ Interfaces</category> - <import>from gnuradio import zeromq</import> - <make>zeromq.pub_sink($type.itemsize, $vlen, $address, $timeout, $pass_tags, $hwm)</make> - - <param> - <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> - - <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> - - <param> - <name>Timeout (msec)</name> - <key>timeout</key> - <value>100</value> - <type>float</type> - </param> - - <param> - <name>Pass Tags</name> - <key>pass_tags</key> - <value>False</value> - <type>enum</type> - <option> - <name>Yes</name> - <key>True</key> - </option> - <option> - <name>No</name> - <key>False</key> - </option> - </param> - - <param> - <name>High Watermark</name> - <key>hwm</key> - <value>-1</value> - <type>int</type> - <hide>#if $hwm() == -1 then 'part' else 'none'#</hide> - </param> - - <sink> - <name>in</name> - <type>$type</type> - <vlen>$vlen</vlen> - </sink> - -</block> diff --git a/gr-zeromq/grc/zeromq_pull_msg_source.block.yml b/gr-zeromq/grc/zeromq_pull_msg_source.block.yml new file mode 100644 index 0000000000..00be80c2c2 --- /dev/null +++ b/gr-zeromq/grc/zeromq_pull_msg_source.block.yml @@ -0,0 +1,23 @@ +id: zeromq_pull_msg_source +label: ZMQ PULL Message Source +category: '[Core]/ZeroMQ Interfaces' + +parameters: +- id: address + label: Address + dtype: string +- id: timeout + label: Timeout (msec) + dtype: float + default: '100' + +outputs: +- domain: message + id: out + optional: true + +templates: + imports: from gnuradio import zeromq + make: zeromq.pull_msg_source(${address}, ${timeout}) + +file_format: 1 diff --git a/gr-zeromq/grc/zeromq_pull_msg_source.xml b/gr-zeromq/grc/zeromq_pull_msg_source.xml deleted file mode 100644 index c6004d987e..0000000000 --- a/gr-zeromq/grc/zeromq_pull_msg_source.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0"?> -<block> - <name>ZMQ PULL Message Source</name> - <key>zeromq_pull_msg_source</key> - <category>[Core]/ZeroMQ Interfaces</category> - <import>from gnuradio import zeromq</import> - <make>zeromq.pull_msg_source($address, $timeout)</make> - - <param> - <name>Address</name> - <key>address</key> - <type>string</type> - </param> - - <param> - <name>Timeout (msec)</name> - <key>timeout</key> - <value>100</value> - <type>float</type> - </param> - - <source> - <name>out</name> - <type>message</type> - <optional>1</optional> - </source> - -</block> diff --git a/gr-zeromq/grc/zeromq_pull_source.block.yml b/gr-zeromq/grc/zeromq_pull_source.block.yml new file mode 100644 index 0000000000..a318b568f1 --- /dev/null +++ b/gr-zeromq/grc/zeromq_pull_source.block.yml @@ -0,0 +1,48 @@ +id: zeromq_pull_source +label: ZMQ PULL Source +category: '[Core]/ZeroMQ Interfaces' + +parameters: +- id: type + label: IO Type + dtype: enum + options: [complex, float, int, short, byte] + option_attributes: + itemsize: [gr.sizeof_gr_complex, gr.sizeof_float, gr.sizeof_int, gr.sizeof_short, + gr.sizeof_char] + hide: part +- id: vlen + label: Vec Length + dtype: int + default: '1' + hide: ${ 'part' if vlen == 1 else 'none' } +- id: address + label: Address + dtype: string +- id: timeout + label: Timeout (msec) + dtype: float + default: '100' +- id: pass_tags + label: Pass Tags + dtype: enum + default: 'False' + options: ['True', 'False'] + option_labels: ['Yes', 'No'] +- id: hwm + label: High Watermark + dtype: int + default: '-1' + hide: ${ ('part' if hwm == -1 else 'none') } + +outputs: +- domain: stream + dtype: ${ type } + vlen: ${ vlen } + +templates: + imports: from gnuradio import zeromq + make: zeromq.pull_source(${type.itemsize}, ${vlen}, ${address}, ${timeout}, ${pass_tags}, + ${hwm}) + +file_format: 1 diff --git a/gr-zeromq/grc/zeromq_pull_source.xml b/gr-zeromq/grc/zeromq_pull_source.xml deleted file mode 100644 index f2c8b61d86..0000000000 --- a/gr-zeromq/grc/zeromq_pull_source.xml +++ /dev/null @@ -1,89 +0,0 @@ -<?xml version="1.0"?> -<block> - <name>ZMQ PULL Source</name> - <key>zeromq_pull_source</key> - <category>[Core]/ZeroMQ Interfaces</category> - <import>from gnuradio import zeromq</import> - <make>zeromq.pull_source($type.itemsize, $vlen, $address, $timeout, $pass_tags, $hwm)</make> - - <param> - <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> - - <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> - - <param> - <name>Timeout (msec)</name> - <key>timeout</key> - <value>100</value> - <type>float</type> - </param> - - <param> - <name>Pass Tags</name> - <key>pass_tags</key> - <value>False</value> - <type>enum</type> - <option> - <name>Yes</name> - <key>True</key> - </option> - <option> - <name>No</name> - <key>False</key> - </option> - </param> - - <param> - <name>High Watermark</name> - <key>hwm</key> - <value>-1</value> - <type>int</type> - <hide>#if $hwm() == -1 then 'part' else 'none'#</hide> - </param> - - <source> - <name>out</name> - <type>$type</type> - <vlen>$vlen</vlen> - </source> - -</block> diff --git a/gr-zeromq/grc/zeromq_push_msg_sink.block.yml b/gr-zeromq/grc/zeromq_push_msg_sink.block.yml new file mode 100644 index 0000000000..d1c9d8f82c --- /dev/null +++ b/gr-zeromq/grc/zeromq_push_msg_sink.block.yml @@ -0,0 +1,23 @@ +id: zeromq_push_msg_sink +label: ZMQ PUSH Message Sink +category: '[Core]/ZeroMQ Interfaces' + +parameters: +- id: address + label: Address + dtype: string +- id: timeout + label: Timeout (msec) + dtype: float + default: '100' + +inputs: +- domain: message + id: in + optional: true + +templates: + imports: from gnuradio import zeromq + make: zeromq.push_msg_sink(${address}, ${timeout}) + +file_format: 1 diff --git a/gr-zeromq/grc/zeromq_push_msg_sink.xml b/gr-zeromq/grc/zeromq_push_msg_sink.xml deleted file mode 100644 index 283a250064..0000000000 --- a/gr-zeromq/grc/zeromq_push_msg_sink.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0"?> -<block> - <name>ZMQ PUSH Message Sink</name> - <key>zeromq_push_msg_sink</key> - <category>[Core]/ZeroMQ Interfaces</category> - <import>from gnuradio import zeromq</import> - <make>zeromq.push_msg_sink($address, $timeout)</make> - - <param> - <name>Address</name> - <key>address</key> - <type>string</type> - </param> - - <param> - <name>Timeout (msec)</name> - <key>timeout</key> - <value>100</value> - <type>float</type> - </param> - - <sink> - <name>in</name> - <type>message</type> - <optional>1</optional> - </sink> - -</block> diff --git a/gr-zeromq/grc/zeromq_push_sink.block.yml b/gr-zeromq/grc/zeromq_push_sink.block.yml new file mode 100644 index 0000000000..63b9d2497c --- /dev/null +++ b/gr-zeromq/grc/zeromq_push_sink.block.yml @@ -0,0 +1,48 @@ +id: zeromq_push_sink +label: ZMQ PUSH Sink +category: '[Core]/ZeroMQ Interfaces' + +parameters: +- id: type + label: IO Type + dtype: enum + options: [complex, float, int, short, byte] + option_attributes: + itemsize: [gr.sizeof_gr_complex, gr.sizeof_float, gr.sizeof_int, gr.sizeof_short, + gr.sizeof_char] + hide: part +- id: vlen + label: Vec Length + dtype: int + default: '1' + hide: ${ 'part' if vlen == 1 else 'none' } +- id: address + label: Address + dtype: string +- id: timeout + label: Timeout (msec) + dtype: float + default: '100' +- id: pass_tags + label: Pass Tags + dtype: enum + default: 'False' + options: ['True', 'False'] + option_labels: ['Yes', 'No'] +- id: hwm + label: High Watermark + dtype: int + default: '-1' + hide: ${ ('part' if hwm == -1 else 'none') } + +inputs: +- domain: stream + dtype: ${ type } + vlen: ${ vlen } + +templates: + imports: from gnuradio import zeromq + make: zeromq.push_sink(${type.itemsize}, ${vlen}, ${address}, ${timeout}, ${pass_tags}, + ${hwm}) + +file_format: 1 diff --git a/gr-zeromq/grc/zeromq_push_sink.xml b/gr-zeromq/grc/zeromq_push_sink.xml deleted file mode 100644 index 8277c02c22..0000000000 --- a/gr-zeromq/grc/zeromq_push_sink.xml +++ /dev/null @@ -1,89 +0,0 @@ -<?xml version="1.0"?> -<block> - <name>ZMQ PUSH Sink</name> - <key>zeromq_push_sink</key> - <category>[Core]/ZeroMQ Interfaces</category> - <import>from gnuradio import zeromq</import> - <make>zeromq.push_sink($type.itemsize, $vlen, $address, $timeout, $pass_tags, $hwm)</make> - - <param> - <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> - - <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> - - <param> - <name>Timeout (msec)</name> - <key>timeout</key> - <value>100</value> - <type>float</type> - </param> - - <param> - <name>Pass Tags</name> - <key>pass_tags</key> - <value>False</value> - <type>enum</type> - <option> - <name>Yes</name> - <key>True</key> - </option> - <option> - <name>No</name> - <key>False</key> - </option> - </param> - - <param> - <name>High Watermark</name> - <key>hwm</key> - <value>-1</value> - <type>int</type> - <hide>#if $hwm() == -1 then 'part' else 'none'#</hide> - </param> - - <sink> - <name>in</name> - <type>$type</type> - <vlen>$vlen</vlen> - </sink> - -</block> diff --git a/gr-zeromq/grc/zeromq_rep_msg_sink.block.yml b/gr-zeromq/grc/zeromq_rep_msg_sink.block.yml new file mode 100644 index 0000000000..d4732a705d --- /dev/null +++ b/gr-zeromq/grc/zeromq_rep_msg_sink.block.yml @@ -0,0 +1,23 @@ +id: zeromq_rep_msg_sink +label: ZMQ REP Message Sink +category: '[Core]/ZeroMQ Interfaces' + +parameters: +- id: address + label: Address + dtype: string +- id: timeout + label: Timeout (msec) + dtype: float + default: '100' + +inputs: +- domain: message + id: in + optional: true + +templates: + imports: from gnuradio import zeromq + make: zeromq.rep_msg_sink(${address}, ${timeout}) + +file_format: 1 diff --git a/gr-zeromq/grc/zeromq_rep_msg_sink.xml b/gr-zeromq/grc/zeromq_rep_msg_sink.xml deleted file mode 100644 index 37515b39bc..0000000000 --- a/gr-zeromq/grc/zeromq_rep_msg_sink.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0"?> -<block> - <name>ZMQ REP Message Sink</name> - <key>zeromq_rep_msg_sink</key> - <category>[Core]/ZeroMQ Interfaces</category> - <import>from gnuradio import zeromq</import> - <make>zeromq.rep_msg_sink($address, $timeout)</make> - - <param> - <name>Address</name> - <key>address</key> - <type>string</type> - </param> - - <param> - <name>Timeout (msec)</name> - <key>timeout</key> - <value>100</value> - <type>float</type> - </param> - - <sink> - <name>in</name> - <type>message</type> - <optional>1</optional> - </sink> - -</block> diff --git a/gr-zeromq/grc/zeromq_rep_sink.block.yml b/gr-zeromq/grc/zeromq_rep_sink.block.yml new file mode 100644 index 0000000000..fbc27fcf0d --- /dev/null +++ b/gr-zeromq/grc/zeromq_rep_sink.block.yml @@ -0,0 +1,49 @@ +id: zeromq_rep_sink +label: ZMQ REP Sink +category: '[Core]/ZeroMQ Interfaces' + + +parameters: +- id: type + label: IO Type + dtype: enum + options: [complex, float, int, short, byte] + option_attributes: + itemsize: [gr.sizeof_gr_complex, gr.sizeof_float, gr.sizeof_int, gr.sizeof_short, + gr.sizeof_char] + hide: part +- id: vlen + label: Vec Length + dtype: int + default: '1' + hide: ${ 'part' if vlen == 1 else 'none' } +- id: address + label: Address + dtype: string +- id: timeout + label: Timeout (msec) + dtype: float + default: '100' +- id: pass_tags + label: Pass Tags + dtype: enum + default: 'False' + options: ['True', 'False'] + option_labels: ['Yes', 'No'] +- id: hwm + label: High Watermark + dtype: int + default: '-1' + hide: ${ ('part' if hwm == -1 else 'none') } + +inputs: +- domain: stream + dtype: ${ type } + vlen: ${ vlen } + +templates: + imports: from gnuradio import zeromq + make: zeromq.rep_sink(${type.itemsize}, ${vlen}, ${address}, ${timeout}, ${pass_tags}, + ${hwm}) + +file_format: 1 diff --git a/gr-zeromq/grc/zeromq_rep_sink.xml b/gr-zeromq/grc/zeromq_rep_sink.xml deleted file mode 100644 index 17c824156c..0000000000 --- a/gr-zeromq/grc/zeromq_rep_sink.xml +++ /dev/null @@ -1,89 +0,0 @@ -<?xml version="1.0"?> -<block> - <name>ZMQ REP Sink</name> - <key>zeromq_rep_sink</key> - <category>[Core]/ZeroMQ Interfaces</category> - <import>from gnuradio import zeromq</import> - <make>zeromq.rep_sink($type.itemsize, $vlen, $address, $timeout, $pass_tags, $hwm)</make> - - <param> - <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> - - <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> - - <param> - <name>Timeout (msec)</name> - <key>timeout</key> - <value>100</value> - <type>float</type> - </param> - - <param> - <name>Pass Tags</name> - <key>pass_tags</key> - <value>False</value> - <type>enum</type> - <option> - <name>Yes</name> - <key>True</key> - </option> - <option> - <name>No</name> - <key>False</key> - </option> - </param> - - <param> - <name>High Watermark</name> - <key>hwm</key> - <value>-1</value> - <type>int</type> - <hide>#if $hwm() == -1 then 'part' else 'none'#</hide> - </param> - - <sink> - <name>in</name> - <type>$type</type> - <vlen>$vlen</vlen> - </sink> - -</block> diff --git a/gr-zeromq/grc/zeromq_req_msg_source.block.yml b/gr-zeromq/grc/zeromq_req_msg_source.block.yml new file mode 100644 index 0000000000..81cefd573a --- /dev/null +++ b/gr-zeromq/grc/zeromq_req_msg_source.block.yml @@ -0,0 +1,23 @@ +id: zeromq_req_msg_source +label: ZMQ REQ Message Source +category: '[Core]/ZeroMQ Interfaces' + +parameters: +- id: address + label: Address + dtype: string +- id: timeout + label: Timeout (msec) + dtype: float + default: '100' + +outputs: +- domain: message + id: out + optional: true + +templates: + imports: from gnuradio import zeromq + make: zeromq.req_msg_source(${address}, ${timeout}) + +file_format: 1 diff --git a/gr-zeromq/grc/zeromq_req_msg_source.xml b/gr-zeromq/grc/zeromq_req_msg_source.xml deleted file mode 100644 index ae34c30dd0..0000000000 --- a/gr-zeromq/grc/zeromq_req_msg_source.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0"?> -<block> - <name>ZMQ REQ Message Source</name> - <key>zeromq_req_msg_source</key> - <category>[Core]/ZeroMQ Interfaces</category> - <import>from gnuradio import zeromq</import> - <make>zeromq.req_msg_source($address, $timeout)</make> - - <param> - <name>Address</name> - <key>address</key> - <type>string</type> - </param> - - <param> - <name>Timeout (msec)</name> - <key>timeout</key> - <value>100</value> - <type>float</type> - </param> - - <source> - <name>out</name> - <type>message</type> - <optional>1</optional> - </source> - -</block> diff --git a/gr-zeromq/grc/zeromq_req_source.block.yml b/gr-zeromq/grc/zeromq_req_source.block.yml new file mode 100644 index 0000000000..f534e106a9 --- /dev/null +++ b/gr-zeromq/grc/zeromq_req_source.block.yml @@ -0,0 +1,48 @@ +id: zeromq_req_source +label: ZMQ REQ Source +category: '[Core]/ZeroMQ Interfaces' + +parameters: +- id: type + label: IO Type + dtype: enum + options: [complex, float, int, short, byte] + option_attributes: + itemsize: [gr.sizeof_gr_complex, gr.sizeof_float, gr.sizeof_int, gr.sizeof_short, + gr.sizeof_char] + hide: part +- id: vlen + label: Vec Length + dtype: int + default: '1' + hide: ${ 'part' if vlen == 1 else 'none' } +- id: address + label: Address + dtype: string +- id: timeout + label: Timeout (msec) + dtype: float + default: '100' +- id: pass_tags + label: Pass Tags + dtype: enum + default: 'False' + options: ['True', 'False'] + option_labels: ['Yes', 'No'] +- id: hwm + label: High Watermark + dtype: int + default: '-1' + hide: ${ ('part' if hwm == -1 else 'none') } + +outputs: +- domain: stream + dtype: ${ type } + vlen: ${ vlen } + +templates: + imports: from gnuradio import zeromq + make: zeromq.req_source(${type.itemsize}, ${vlen}, ${address}, ${timeout}, ${pass_tags}, + ${hwm}) + +file_format: 1 diff --git a/gr-zeromq/grc/zeromq_req_source.xml b/gr-zeromq/grc/zeromq_req_source.xml deleted file mode 100644 index 0fc1aa1488..0000000000 --- a/gr-zeromq/grc/zeromq_req_source.xml +++ /dev/null @@ -1,89 +0,0 @@ -<?xml version="1.0"?> -<block> - <name>ZMQ REQ Source</name> - <key>zeromq_req_source</key> - <category>[Core]/ZeroMQ Interfaces</category> - <import>from gnuradio import zeromq</import> - <make>zeromq.req_source($type.itemsize, $vlen, $address, $timeout, $pass_tags, $hwm)</make> - - <param> - <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> - - <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> - - <param> - <name>Timeout (msec)</name> - <key>timeout</key> - <value>100</value> - <type>float</type> - </param> - - <param> - <name>Pass Tags</name> - <key>pass_tags</key> - <value>False</value> - <type>enum</type> - <option> - <name>Yes</name> - <key>True</key> - </option> - <option> - <name>No</name> - <key>False</key> - </option> - </param> - - <param> - <name>High Watermark</name> - <key>hwm</key> - <value>-1</value> - <type>int</type> - <hide>#if $hwm() == -1 then 'part' else 'none'#</hide> - </param> - - <source> - <name>out</name> - <type>$type</type> - <vlen>$vlen</vlen> - </source> - -</block> diff --git a/gr-zeromq/grc/zeromq_sub_msg_source.block.yml b/gr-zeromq/grc/zeromq_sub_msg_source.block.yml new file mode 100644 index 0000000000..a9202d9480 --- /dev/null +++ b/gr-zeromq/grc/zeromq_sub_msg_source.block.yml @@ -0,0 +1,23 @@ +id: zeromq_sub_msg_source +label: ZMQ SUB Message Source +category: '[Core]/ZeroMQ Interfaces' + +parameters: +- id: address + label: Address + dtype: string +- id: timeout + label: Timeout (msec) + dtype: float + default: '100' + +outputs: +- domain: message + id: out + optional: true + +templates: + imports: from gnuradio import zeromq + make: zeromq.sub_msg_source(${address}, ${timeout}) + +file_format: 1 diff --git a/gr-zeromq/grc/zeromq_sub_msg_source.xml b/gr-zeromq/grc/zeromq_sub_msg_source.xml deleted file mode 100644 index 475537f5fe..0000000000 --- a/gr-zeromq/grc/zeromq_sub_msg_source.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0"?> -<block> - <name>ZMQ SUB Message Source</name> - <key>zeromq_sub_msg_source</key> - <category>[Core]/ZeroMQ Interfaces</category> - <import>from gnuradio import zeromq</import> - <make>zeromq.sub_msg_source($address, $timeout)</make> - - <param> - <name>Address</name> - <key>address</key> - <type>string</type> - </param> - - <param> - <name>Timeout (msec)</name> - <key>timeout</key> - <value>100</value> - <type>float</type> - </param> - - <source> - <name>out</name> - <type>message</type> - <optional>1</optional> - </source> - -</block> diff --git a/gr-zeromq/grc/zeromq_sub_source.block.yml b/gr-zeromq/grc/zeromq_sub_source.block.yml new file mode 100644 index 0000000000..7235d480f4 --- /dev/null +++ b/gr-zeromq/grc/zeromq_sub_source.block.yml @@ -0,0 +1,48 @@ +id: zeromq_sub_source +label: ZMQ SUB Source +category: '[Core]/ZeroMQ Interfaces' + +parameters: +- id: type + label: IO Type + dtype: enum + options: [complex, float, int, short, byte] + option_attributes: + itemsize: [gr.sizeof_gr_complex, gr.sizeof_float, gr.sizeof_int, gr.sizeof_short, + gr.sizeof_char] + hide: part +- id: vlen + label: Vec Length + dtype: int + default: '1' + hide: ${ 'part' if vlen == 1 else 'none' } +- id: address + label: Address + dtype: string +- id: timeout + label: Timeout (msec) + dtype: float + default: '100' +- id: pass_tags + label: Pass Tags + dtype: enum + default: 'False' + options: ['True', 'False'] + option_labels: ['Yes', 'No'] +- id: hwm + label: High Watermark + dtype: int + default: '-1' + hide: ${ ('part' if hwm == -1 else 'none') } + +outputs: +- domain: stream + dtype: ${ type } + vlen: ${ vlen } + +templates: + imports: from gnuradio import zeromq + make: zeromq.sub_source(${type.itemsize}, ${vlen}, ${address}, ${timeout}, ${pass_tags}, + ${hwm}) + +file_format: 1 diff --git a/gr-zeromq/grc/zeromq_sub_source.xml b/gr-zeromq/grc/zeromq_sub_source.xml deleted file mode 100644 index 31e6170c6a..0000000000 --- a/gr-zeromq/grc/zeromq_sub_source.xml +++ /dev/null @@ -1,89 +0,0 @@ -<?xml version="1.0"?> -<block> - <name>ZMQ SUB Source</name> - <key>zeromq_sub_source</key> - <category>[Core]/ZeroMQ Interfaces</category> - <import>from gnuradio import zeromq</import> - <make>zeromq.sub_source($type.itemsize, $vlen, $address, $timeout, $pass_tags, $hwm)</make> - - <param> - <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> - - <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> - - <param> - <name>Timeout (msec)</name> - <key>timeout</key> - <value>100</value> - <type>float</type> - </param> - - <param> - <name>Pass Tags</name> - <key>pass_tags</key> - <value>False</value> - <type>enum</type> - <option> - <name>Yes</name> - <key>True</key> - </option> - <option> - <name>No</name> - <key>False</key> - </option> - </param> - - <param> - <name>High Watermark</name> - <key>hwm</key> - <value>-1</value> - <type>int</type> - <hide>#if $hwm() == -1 then 'part' else 'none'#</hide> - </param> - - <source> - <name>out</name> - <type>$type</type> - <vlen>$vlen</vlen> - </source> - -</block> diff --git a/gr-zeromq/python/zeromq/CMakeLists.txt b/gr-zeromq/python/zeromq/CMakeLists.txt index 66fc65a4b5..100d1028fe 100644 --- a/gr-zeromq/python/zeromq/CMakeLists.txt +++ b/gr-zeromq/python/zeromq/CMakeLists.txt @@ -51,6 +51,6 @@ if(ENABLE_TESTING) file(GLOB py_qa_test_files "qa_*.py") foreach(py_qa_test_file ${py_qa_test_files}) get_filename_component(py_qa_test_name ${py_qa_test_file} NAME_WE) - GR_ADD_TEST(${py_qa_test_name} ${QA_PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${py_qa_test_file}) + GR_ADD_TEST(${py_qa_test_name} ${QA_PYTHON_EXECUTABLE} -B ${py_qa_test_file}) endforeach(py_qa_test_file) endif(ENABLE_TESTING) diff --git a/gr-zeromq/python/zeromq/__init__.py b/gr-zeromq/python/zeromq/__init__.py index cab4b67640..3b3e3869bd 100644 --- a/gr-zeromq/python/zeromq/__init__.py +++ b/gr-zeromq/python/zeromq/__init__.py @@ -22,15 +22,17 @@ ''' Blocks for interfacing with ZeroMQ endpoints. ''' +from __future__ import absolute_import +from __future__ import unicode_literals import os try: - from zeromq_swig import * + from .zeromq_swig import * except ImportError: dirname, filename = os.path.split(os.path.abspath(__file__)) __path__.append(os.path.join(dirname, "..", "..", "swig")) - from zeromq_swig import * + from .zeromq_swig import * -from probe_manager import probe_manager -from rpc_manager import rpc_manager +from .probe_manager import probe_manager +from .rpc_manager import rpc_manager diff --git a/gr-zeromq/python/zeromq/probe_manager.py b/gr-zeromq/python/zeromq/probe_manager.py index 9facb33b2b..c224ca7870 100644 --- a/gr-zeromq/python/zeromq/probe_manager.py +++ b/gr-zeromq/python/zeromq/probe_manager.py @@ -1,3 +1,4 @@ +from __future__ import unicode_literals # # Copyright 2013 Free Software Foundation, Inc. # @@ -20,10 +21,9 @@ # import zmq -import threading import numpy -class probe_manager(): +class probe_manager(object): def __init__(self): self.zmq_context = zmq.Context() self.poller = zmq.Poller() @@ -31,7 +31,7 @@ class probe_manager(): def add_socket(self, address, data_type, callback_func): socket = self.zmq_context.socket(zmq.SUB) - socket.setsockopt(zmq.SUBSCRIBE, "") + socket.setsockopt(zmq.SUBSCRIBE, b"") socket.connect(address) # use a tuple to store interface elements self.interfaces.append((socket, data_type, callback_func)) diff --git a/gr-zeromq/python/zeromq/qa_zeromq_pub.py b/gr-zeromq/python/zeromq/qa_zeromq_pub.py index cc856d57cc..2cee710d2a 100755..100644 --- a/gr-zeromq/python/zeromq/qa_zeromq_pub.py +++ b/gr-zeromq/python/zeromq/qa_zeromq_pub.py @@ -21,6 +21,7 @@ # Boston, MA 02110-1301, USA. # + from gnuradio import gr, gr_unittest from gnuradio import blocks, zeromq from gnuradio import eng_notation @@ -37,7 +38,7 @@ class qa_zeromq_pub (gr_unittest.TestCase): def test_001 (self): vlen = 10 self.rx_data = None - src_data = range(vlen)*100 + src_data = list(range(vlen))*100 src = blocks.vector_source_f(src_data, False, vlen) zeromq_pub_sink = zeromq.pub_sink(gr.sizeof_float, vlen, "tcp://127.0.0.1:5555") self.tb.connect(src, zeromq_pub_sink) diff --git a/gr-zeromq/python/zeromq/qa_zeromq_pubsub.py b/gr-zeromq/python/zeromq/qa_zeromq_pubsub.py index bb853d892f..21c96a3713 100755..100644 --- a/gr-zeromq/python/zeromq/qa_zeromq_pubsub.py +++ b/gr-zeromq/python/zeromq/qa_zeromq_pubsub.py @@ -21,6 +21,7 @@ # Boston, MA 02110-1301, USA. # + from gnuradio import gr, gr_unittest from gnuradio import blocks, zeromq import time @@ -37,7 +38,7 @@ class qa_zeromq_pubsub (gr_unittest.TestCase): def test_001 (self): vlen = 10 - src_data = range(vlen)*100 + src_data = list(range(vlen))*100 src = blocks.vector_source_f(src_data, False, vlen) zeromq_pub_sink = zeromq.pub_sink(gr.sizeof_float, vlen, "tcp://127.0.0.1:5556", 0) zeromq_sub_source = zeromq.sub_source(gr.sizeof_float, vlen, "tcp://127.0.0.1:5556", 0) diff --git a/gr-zeromq/python/zeromq/qa_zeromq_pushpull.py b/gr-zeromq/python/zeromq/qa_zeromq_pushpull.py index 388f7ff9cb..b4dde8b2b2 100755..100644 --- a/gr-zeromq/python/zeromq/qa_zeromq_pushpull.py +++ b/gr-zeromq/python/zeromq/qa_zeromq_pushpull.py @@ -20,6 +20,7 @@ # Boston, MA 02110-1301, USA. # + from gnuradio import gr, gr_unittest, blocks, zeromq import time @@ -35,7 +36,7 @@ class qa_zeromq_pushpull (gr_unittest.TestCase): def test_001 (self): vlen = 10 - src_data = range(vlen)*100 + src_data = list(range(vlen))*100 src = blocks.vector_source_f(src_data, False, vlen) zeromq_push_sink = zeromq.push_sink(gr.sizeof_float, vlen, "tcp://127.0.0.1:5557") zeromq_pull_source = zeromq.pull_source(gr.sizeof_float, vlen, "tcp://127.0.0.1:5557", 0) diff --git a/gr-zeromq/python/zeromq/qa_zeromq_reqrep.py b/gr-zeromq/python/zeromq/qa_zeromq_reqrep.py index a5a3d33f67..9fccbf300d 100755..100644 --- a/gr-zeromq/python/zeromq/qa_zeromq_reqrep.py +++ b/gr-zeromq/python/zeromq/qa_zeromq_reqrep.py @@ -21,6 +21,7 @@ # Boston, MA 02110-1301, USA. # + from gnuradio import gr, gr_unittest from gnuradio import blocks, zeromq from gnuradio import eng_notation @@ -38,7 +39,7 @@ class qa_zeromq_reqrep (gr_unittest.TestCase): def test_001 (self): vlen = 10 - src_data = range(vlen)*100 + src_data = list(range(vlen))*100 src = blocks.vector_source_f(src_data, False, vlen) zeromq_rep_sink = zeromq.rep_sink(gr.sizeof_float, vlen, "tcp://127.0.0.1:5558", 0) zeromq_req_source = zeromq.req_source(gr.sizeof_float, vlen, "tcp://127.0.0.1:5558", 0) diff --git a/gr-zeromq/python/zeromq/qa_zeromq_sub.py b/gr-zeromq/python/zeromq/qa_zeromq_sub.py index f916901ff7..d6006780dc 100755 --- a/gr-zeromq/python/zeromq/qa_zeromq_sub.py +++ b/gr-zeromq/python/zeromq/qa_zeromq_sub.py @@ -44,7 +44,7 @@ class qa_zeromq_sub (gr_unittest.TestCase): def test_001 (self): vlen = 10 - src_data = numpy.array(range(vlen)*100, 'float32') + src_data = numpy.array(range(vlen), 'float32')*100 zeromq_sub_source = zeromq.sub_source(gr.sizeof_float, vlen, "tcp://127.0.0.1:5555") sink = blocks.vector_sink_f(vlen) self.tb.connect(zeromq_sub_source, sink) @@ -60,7 +60,7 @@ class qa_zeromq_sub (gr_unittest.TestCase): vlen = 10 # Construct multipart source data to publish - raw_data = [numpy.array(range(vlen)*100, 'float32'), numpy.array(range(vlen, 2*vlen)*100, 'float32')] + raw_data = [numpy.array(range(vlen), 'float32')*100, numpy.array(range(vlen, 2*vlen), 'float32')*100] src_data = [a.tostring() for a in raw_data] zeromq_sub_source = zeromq.sub_source(gr.sizeof_float, vlen, "tcp://127.0.0.1:5555") sink = blocks.vector_sink_f(vlen) diff --git a/gr-zeromq/python/zeromq/rpc_manager.py b/gr-zeromq/python/zeromq/rpc_manager.py index 2dce997bd4..f7c972b752 100644 --- a/gr-zeromq/python/zeromq/rpc_manager.py +++ b/gr-zeromq/python/zeromq/rpc_manager.py @@ -19,12 +19,15 @@ # Boston, MA 02110-1301, USA. # +from __future__ import print_function +from __future__ import unicode_literals + import zmq import pmt import threading -class rpc_manager(): +class rpc_manager(object): def __init__(self): self.zmq_context = zmq.Context() self.poller_rep = zmq.Poller() @@ -39,22 +42,22 @@ class rpc_manager(): def set_reply_socket(self, address): self.rep_socket = self.zmq_context.socket(zmq.REP) self.rep_socket.bind(address) - print "[RPC] reply socket bound to: ", address + print("[RPC] reply socket bound to: ", address) self.poller_rep.register(self.rep_socket, zmq.POLLIN) def set_request_socket(self, address): self.req_socket = self.zmq_context.socket(zmq.REQ) self.req_socket.connect(address) - print "[RPC] request socket connected to: ", address + print("[RPC] request socket connected to: ", address) self.poller_req_out.register(self.req_socket, zmq.POLLOUT) self.poller_req_in.register(self.req_socket, zmq.POLLIN) def add_interface(self, id_str, callback_func): - if not self.interfaces.has_key(id_str): + if id_str not in self.interfaces: self.interfaces[id_str] = callback_func - print "[RPC] added reply interface:", id_str + print("[RPC] added reply interface:", id_str) else: - print "[RPC] ERROR: duplicate id_str:", id_str + print("[RPC] ERROR: duplicate id_str:", id_str) def watcher(self): self.keep_running = True @@ -65,7 +68,7 @@ class rpc_manager(): # receive call msg = self.rep_socket.recv() (id_str, args) = pmt.to_python(pmt.deserialize_str(msg)) - print "[RPC] request:", id_str, ", args:", args + print("[RPC] request:", id_str, ", args:", args) reply = self.callback(id_str, args) self.rep_socket.send(pmt.serialize_str(pmt.to_pmt(reply))) @@ -85,11 +88,11 @@ class rpc_manager(): socks = dict(self.poller_req_in.poll(10)) if socks.get(self.req_socket) == zmq.POLLIN: reply = pmt.to_python(pmt.deserialize_str(self.req_socket.recv())) - print "[RPC] reply:", reply + print("[RPC] reply:", reply) return reply def callback(self, id_str, args): - if self.interfaces.has_key(id_str): + if id_str in self.interfaces: callback_func = self.interfaces.get(id_str) if not args == None: # use unpacking or splat operator * to unpack argument list @@ -97,5 +100,5 @@ class rpc_manager(): else: return(callback_func()) else: - print "[RPC] ERROR: id_str not found:", id_str + print("[RPC] ERROR: id_str not found:", id_str) return None |