aboutsummaryrefslogtreecommitdiffstats
path: root/tests/zmq
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tests/zmq/lena512color.tiffbin0 -> 786572 bytes
-rw-r--r--tests/zmq/server.py4
-rw-r--r--tests/zmq/zmqtest.grc112
-rwxr-xr-xtests/zmq/zmqtest.py85
4 files changed, 201 insertions, 0 deletions
diff --git a/tests/zmq/lena512color.tiff b/tests/zmq/lena512color.tiff
new file mode 100644
index 0000000..ffe5c83
--- /dev/null
+++ b/tests/zmq/lena512color.tiff
Binary files differ
diff --git a/tests/zmq/server.py b/tests/zmq/server.py
new file mode 100644
index 0000000..be4bede
--- /dev/null
+++ b/tests/zmq/server.py
@@ -0,0 +1,4 @@
+import zmq
+import pmt
+
+import numpy as np
diff --git a/tests/zmq/zmqtest.grc b/tests/zmq/zmqtest.grc
new file mode 100644
index 0000000..ad1729d
--- /dev/null
+++ b/tests/zmq/zmqtest.grc
@@ -0,0 +1,112 @@
+options:
+ parameters:
+ author: Naoki Pross
+ category: '[GRC Hier Blocks]'
+ cmake_opt: ''
+ comment: ''
+ copyright: ''
+ description: ''
+ gen_cmake: 'On'
+ gen_linking: dynamic
+ generate_options: no_gui
+ hier_block_src_path: '.:'
+ id: zmqtest
+ max_nouts: '0'
+ output_language: python
+ placement: (0,0)
+ qt_qss_theme: ''
+ realtime_scheduling: '1'
+ run: 'True'
+ run_command: '{python} -u {filename}'
+ run_options: prompt
+ sizing_mode: fixed
+ thread_safe_setters: ''
+ title: ZMQ test
+ window_size: ''
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [8, 8]
+ rotation: 0
+ state: enabled
+
+blocks:
+- name: samp_rate
+ id: variable
+ parameters:
+ comment: ''
+ value: '32000'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [184, 12]
+ rotation: 0
+ state: enabled
+- name: blocks_throttle_0
+ id: blocks_throttle
+ parameters:
+ affinity: ''
+ alias: ''
+ comment: ''
+ ignoretag: 'True'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ samples_per_second: samp_rate
+ type: complex
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [440, 324.0]
+ rotation: 0
+ state: true
+- name: zeromq_rep_sink_0
+ id: zeromq_rep_sink
+ parameters:
+ address: ''
+ affinity: ''
+ alias: ''
+ comment: ''
+ hwm: '-1'
+ pass_tags: 'False'
+ timeout: '100'
+ type: complex
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [664, 308.0]
+ rotation: 0
+ state: true
+- name: zeromq_req_source_0
+ id: zeromq_req_source
+ parameters:
+ address: ''
+ affinity: ''
+ alias: ''
+ comment: ''
+ hwm: '-1'
+ maxoutbuf: '0'
+ minoutbuf: '0'
+ pass_tags: 'False'
+ timeout: '100'
+ type: complex
+ vlen: '1'
+ states:
+ bus_sink: false
+ bus_source: false
+ bus_structure: null
+ coordinate: [216, 308.0]
+ rotation: 0
+ state: true
+
+connections:
+- [blocks_throttle_0, '0', zeromq_rep_sink_0, '0']
+- [zeromq_req_source_0, '0', blocks_throttle_0, '0']
+
+metadata:
+ file_format: 1
diff --git a/tests/zmq/zmqtest.py b/tests/zmq/zmqtest.py
new file mode 100755
index 0000000..a046c13
--- /dev/null
+++ b/tests/zmq/zmqtest.py
@@ -0,0 +1,85 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+#
+# SPDX-License-Identifier: GPL-3.0
+#
+# GNU Radio Python Flow Graph
+# Title: ZMQ test
+# Author: Naoki Pross
+# GNU Radio version: 3.8.2.0
+
+from gnuradio import blocks
+from gnuradio import gr
+from gnuradio.filter import firdes
+import sys
+import signal
+from argparse import ArgumentParser
+from gnuradio.eng_arg import eng_float, intx
+from gnuradio import eng_notation
+from gnuradio import zeromq
+
+
+class zmqtest(gr.top_block):
+
+ def __init__(self):
+ gr.top_block.__init__(self, "ZMQ test")
+
+ ##################################################
+ # Variables
+ ##################################################
+ self.samp_rate = samp_rate = 32000
+
+ ##################################################
+ # Blocks
+ ##################################################
+ self.zeromq_req_source_0 = zeromq.req_source(gr.sizeof_gr_complex, 1, '', 100, False, -1)
+ self.zeromq_rep_sink_0 = zeromq.rep_sink(gr.sizeof_gr_complex, 1, '', 100, False, -1)
+ self.blocks_throttle_0 = blocks.throttle(gr.sizeof_gr_complex*1, samp_rate,True)
+
+
+
+ ##################################################
+ # Connections
+ ##################################################
+ self.connect((self.blocks_throttle_0, 0), (self.zeromq_rep_sink_0, 0))
+ self.connect((self.zeromq_req_source_0, 0), (self.blocks_throttle_0, 0))
+
+
+ def get_samp_rate(self):
+ return self.samp_rate
+
+ def set_samp_rate(self, samp_rate):
+ self.samp_rate = samp_rate
+ self.blocks_throttle_0.set_sample_rate(self.samp_rate)
+
+
+
+
+
+def main(top_block_cls=zmqtest, options=None):
+ if gr.enable_realtime_scheduling() != gr.RT_OK:
+ print("Error: failed to enable real-time scheduling.")
+ tb = top_block_cls()
+
+ def sig_handler(sig=None, frame=None):
+ tb.stop()
+ tb.wait()
+
+ sys.exit(0)
+
+ signal.signal(signal.SIGINT, sig_handler)
+ signal.signal(signal.SIGTERM, sig_handler)
+
+ tb.start()
+
+ try:
+ input('Press Enter to quit: ')
+ except EOFError:
+ pass
+ tb.stop()
+ tb.wait()
+
+
+if __name__ == '__main__':
+ main()