From bf41ed4934742edf85e9973286b04f023f660c2f Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Thu, 11 Nov 2021 19:45:58 +0100 Subject: Create ZMQ test --- tests/zmq/lena512color.tiff | Bin 0 -> 786572 bytes tests/zmq/server.py | 4 ++ tests/zmq/zmqtest.grc | 112 ++++++++++++++++++++++++++++++++++++++++++++ tests/zmq/zmqtest.py | 85 +++++++++++++++++++++++++++++++++ 4 files changed, 201 insertions(+) create mode 100644 tests/zmq/lena512color.tiff create mode 100644 tests/zmq/server.py create mode 100644 tests/zmq/zmqtest.grc create mode 100755 tests/zmq/zmqtest.py (limited to 'tests') diff --git a/tests/zmq/lena512color.tiff b/tests/zmq/lena512color.tiff new file mode 100644 index 0000000..ffe5c83 Binary files /dev/null and b/tests/zmq/lena512color.tiff 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() -- cgit v1.2.1