From 2d02a9787d3bbd7320f23a3c65ee8e8ed0369c1e Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 3 Dec 2021 22:19:57 +0100 Subject: Replace DearPyGui Sink with Network Sink --- tests/sockets/send.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 tests/sockets/send.py (limited to 'tests/sockets') diff --git a/tests/sockets/send.py b/tests/sockets/send.py new file mode 100644 index 0000000..87faf5d --- /dev/null +++ b/tests/sockets/send.py @@ -0,0 +1,21 @@ +import socket +from urllib.parse import urlparse + +import numpy as np + +remote = "upd://localhost:31415" +url = urlparse(remote) + +print(url.hostname) +print(url.port) + +sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) +sock.connect((url.hostname, url.port)) + +# sent some text +sock.send(bytes("hello", "ascii")) + +arr = np.arange(0, 10) +print(arr) + +sock.send(arr.tobytes()) -- cgit v1.2.1 From b39b8351476679e2f89cefade40a1eca2566067f Mon Sep 17 00:00:00 2001 From: sara Date: Sat, 4 Dec 2021 15:24:53 +0100 Subject: GNUR Radio Test Sockets --- tests/sockets/Socket_test.grc | 140 ++++++++++++++++++++++++++++++++++++ tests/sockets/Test_Bit_Errorrate.py | 139 +++++++++++++++++++++++++++++++++++ 2 files changed, 279 insertions(+) create mode 100644 tests/sockets/Socket_test.grc create mode 100755 tests/sockets/Test_Bit_Errorrate.py (limited to 'tests/sockets') diff --git a/tests/sockets/Socket_test.grc b/tests/sockets/Socket_test.grc new file mode 100644 index 0000000..41c7f0a --- /dev/null +++ b/tests/sockets/Socket_test.grc @@ -0,0 +1,140 @@ +options: + parameters: + author: 'Sara Halter ' + category: '[GRC Hier Blocks]' + cmake_opt: '' + comment: '' + copyright: '' + description: '' + gen_cmake: 'On' + gen_linking: dynamic + generate_options: qt_gui + hier_block_src_path: '.:' + id: Test_Bit_Errorrate + max_nouts: '0' + output_language: python + placement: (0,0) + qt_qss_theme: '' + realtime_scheduling: '' + run: 'True' + run_command: '{python} -u {filename}' + run_options: prompt + sizing_mode: fixed + thread_safe_setters: '' + title: 'Bit Error Rate 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: analog_noise_source_x_0 + id: analog_noise_source_x + parameters: + affinity: '' + alias: '' + amp: '1' + comment: '' + maxoutbuf: '0' + minoutbuf: '0' + noise_type: analog.GR_GAUSSIAN + seed: '0' + type: float + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [528, 108.0] + rotation: 0 + state: disabled +- name: blocks_null_source_0 + id: blocks_null_source + parameters: + affinity: '' + alias: '' + bus_structure_source: '[[0,],]' + comment: '' + maxoutbuf: '0' + minoutbuf: '0' + num_outputs: '1' + type: byte + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [552, 224.0] + rotation: 0 + state: true +- name: blocks_throttle_1 + id: blocks_throttle + parameters: + affinity: '' + alias: '' + comment: '' + ignoretag: 'True' + maxoutbuf: '0' + minoutbuf: '0' + samples_per_second: samp_rate + type: byte + vlen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [800, 156.0] + rotation: 0 + state: true +- name: fadingui_netsink_0 + id: fadingui_netsink + parameters: + address: udp://localhost:31415 + affinity: '' + alias: '' + comment: '' + type: byte + veclen: '1' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [1016, 156.0] + rotation: 0 + state: true +- name: import_0 + id: import + parameters: + alias: '' + comment: '' + imports: import numpy as np + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [328, 20.0] + rotation: 0 + state: true + +connections: +- [analog_noise_source_x_0, '0', blocks_throttle_1, '0'] +- [blocks_null_source_0, '0', blocks_throttle_1, '0'] +- [blocks_throttle_1, '0', fadingui_netsink_0, '0'] + +metadata: + file_format: 1 diff --git a/tests/sockets/Test_Bit_Errorrate.py b/tests/sockets/Test_Bit_Errorrate.py new file mode 100755 index 0000000..b545104 --- /dev/null +++ b/tests/sockets/Test_Bit_Errorrate.py @@ -0,0 +1,139 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# +# SPDX-License-Identifier: GPL-3.0 +# +# GNU Radio Python Flow Graph +# Title: Bit Error Rate test +# Author: Sara Halter +# GNU Radio version: 3.8.2.0 + +from distutils.version import StrictVersion + +if __name__ == '__main__': + import ctypes + import sys + if sys.platform.startswith('linux'): + try: + x11 = ctypes.cdll.LoadLibrary('libX11.so') + x11.XInitThreads() + except: + print("Warning: failed to XInitThreads()") + +from gnuradio import blocks +from gnuradio import gr +from gnuradio.filter import firdes +import sys +import signal +from PyQt5 import Qt +from argparse import ArgumentParser +from gnuradio.eng_arg import eng_float, intx +from gnuradio import eng_notation +import fadingui +import numpy as np + +from gnuradio import qtgui + +class Test_Bit_Errorrate(gr.top_block, Qt.QWidget): + + def __init__(self): + gr.top_block.__init__(self, "Bit Error Rate test ") + Qt.QWidget.__init__(self) + self.setWindowTitle("Bit Error Rate test ") + qtgui.util.check_set_qss() + try: + self.setWindowIcon(Qt.QIcon.fromTheme('gnuradio-grc')) + except: + pass + self.top_scroll_layout = Qt.QVBoxLayout() + self.setLayout(self.top_scroll_layout) + self.top_scroll = Qt.QScrollArea() + self.top_scroll.setFrameStyle(Qt.QFrame.NoFrame) + self.top_scroll_layout.addWidget(self.top_scroll) + self.top_scroll.setWidgetResizable(True) + self.top_widget = Qt.QWidget() + self.top_scroll.setWidget(self.top_widget) + self.top_layout = Qt.QVBoxLayout(self.top_widget) + self.top_grid_layout = Qt.QGridLayout() + self.top_layout.addLayout(self.top_grid_layout) + + self.settings = Qt.QSettings("GNU Radio", "Test_Bit_Errorrate") + + try: + if StrictVersion(Qt.qVersion()) < StrictVersion("5.0.0"): + self.restoreGeometry(self.settings.value("geometry").toByteArray()) + else: + self.restoreGeometry(self.settings.value("geometry")) + except: + pass + + ################################################## + # Variables + ################################################## + self.samp_rate = samp_rate = 32000 + + ################################################## + # Blocks + ################################################## + self.fadingui_netsink_0 = fadingui.netsink(address='udp://localhost:31415', dtype="byte", vlen=1) + self.blocks_throttle_1 = blocks.throttle(gr.sizeof_char*1, samp_rate,True) + self.blocks_null_source_0 = blocks.null_source(gr.sizeof_char*1) + + + + ################################################## + # Connections + ################################################## + self.connect((self.blocks_null_source_0, 0), (self.blocks_throttle_1, 0)) + self.connect((self.blocks_throttle_1, 0), (self.fadingui_netsink_0, 0)) + + + def closeEvent(self, event): + self.settings = Qt.QSettings("GNU Radio", "Test_Bit_Errorrate") + self.settings.setValue("geometry", self.saveGeometry()) + event.accept() + + def get_samp_rate(self): + return self.samp_rate + + def set_samp_rate(self, samp_rate): + self.samp_rate = samp_rate + self.blocks_throttle_1.set_sample_rate(self.samp_rate) + + + + + +def main(top_block_cls=Test_Bit_Errorrate, options=None): + + if StrictVersion("4.5.0") <= StrictVersion(Qt.qVersion()) < StrictVersion("5.0.0"): + style = gr.prefs().get_string('qtgui', 'style', 'raster') + Qt.QApplication.setGraphicsSystem(style) + qapp = Qt.QApplication(sys.argv) + + tb = top_block_cls() + + tb.start() + + tb.show() + + def sig_handler(sig=None, frame=None): + Qt.QApplication.quit() + + signal.signal(signal.SIGINT, sig_handler) + signal.signal(signal.SIGTERM, sig_handler) + + timer = Qt.QTimer() + timer.start(500) + timer.timeout.connect(lambda: None) + + def quitting(): + tb.stop() + tb.wait() + + qapp.aboutToQuit.connect(quitting) + qapp.exec_() + +if __name__ == '__main__': + main() -- cgit v1.2.1 From 30012258948049da894e260d78551d1de44c2f50 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sat, 4 Dec 2021 16:46:23 +0100 Subject: Update net.py to decode UDP data stream --- tests/sockets/Socket_test.grc | 24 +++++------ tests/sockets/Test_Bit_Errorrate.py | 83 ++++++------------------------------- 2 files changed, 24 insertions(+), 83 deletions(-) (limited to 'tests/sockets') diff --git a/tests/sockets/Socket_test.grc b/tests/sockets/Socket_test.grc index 41c7f0a..fbc3cdf 100644 --- a/tests/sockets/Socket_test.grc +++ b/tests/sockets/Socket_test.grc @@ -8,7 +8,7 @@ options: description: '' gen_cmake: 'On' gen_linking: dynamic - generate_options: qt_gui + generate_options: no_gui hier_block_src_path: '.:' id: Test_Bit_Errorrate max_nouts: '0' @@ -18,7 +18,7 @@ options: realtime_scheduling: '' run: 'True' run_command: '{python} -u {filename}' - run_options: prompt + run_options: run sizing_mode: fixed thread_safe_setters: '' title: 'Bit Error Rate test ' @@ -41,7 +41,7 @@ blocks: bus_sink: false bus_source: false bus_structure: null - coordinate: [184, 12] + coordinate: [216, 20.0] rotation: 0 state: enabled - name: analog_noise_source_x_0 @@ -60,9 +60,9 @@ blocks: bus_sink: false bus_source: false bus_structure: null - coordinate: [528, 108.0] + coordinate: [32, 148.0] rotation: 0 - state: disabled + state: enabled - name: blocks_null_source_0 id: blocks_null_source parameters: @@ -73,15 +73,15 @@ blocks: maxoutbuf: '0' minoutbuf: '0' num_outputs: '1' - type: byte + type: complex vlen: '1' states: bus_sink: false bus_source: false bus_structure: null - coordinate: [552, 224.0] + coordinate: [64, 264.0] rotation: 0 - state: true + state: disabled - name: blocks_throttle_1 id: blocks_throttle parameters: @@ -92,13 +92,13 @@ blocks: maxoutbuf: '0' minoutbuf: '0' samples_per_second: samp_rate - type: byte + type: float vlen: '1' states: bus_sink: false bus_source: false bus_structure: null - coordinate: [800, 156.0] + coordinate: [280, 164.0] rotation: 0 state: true - name: fadingui_netsink_0 @@ -108,13 +108,13 @@ blocks: affinity: '' alias: '' comment: '' - type: byte + type: float veclen: '1' states: bus_sink: false bus_source: false bus_structure: null - coordinate: [1016, 156.0] + coordinate: [504, 164.0] rotation: 0 state: true - name: import_0 diff --git a/tests/sockets/Test_Bit_Errorrate.py b/tests/sockets/Test_Bit_Errorrate.py index b545104..6a989df 100755 --- a/tests/sockets/Test_Bit_Errorrate.py +++ b/tests/sockets/Test_Bit_Errorrate.py @@ -9,64 +9,23 @@ # Author: Sara Halter # GNU Radio version: 3.8.2.0 -from distutils.version import StrictVersion - -if __name__ == '__main__': - import ctypes - import sys - if sys.platform.startswith('linux'): - try: - x11 = ctypes.cdll.LoadLibrary('libX11.so') - x11.XInitThreads() - except: - print("Warning: failed to XInitThreads()") - +from gnuradio import analog from gnuradio import blocks from gnuradio import gr from gnuradio.filter import firdes import sys import signal -from PyQt5 import Qt from argparse import ArgumentParser from gnuradio.eng_arg import eng_float, intx from gnuradio import eng_notation import fadingui import numpy as np -from gnuradio import qtgui -class Test_Bit_Errorrate(gr.top_block, Qt.QWidget): +class Test_Bit_Errorrate(gr.top_block): def __init__(self): gr.top_block.__init__(self, "Bit Error Rate test ") - Qt.QWidget.__init__(self) - self.setWindowTitle("Bit Error Rate test ") - qtgui.util.check_set_qss() - try: - self.setWindowIcon(Qt.QIcon.fromTheme('gnuradio-grc')) - except: - pass - self.top_scroll_layout = Qt.QVBoxLayout() - self.setLayout(self.top_scroll_layout) - self.top_scroll = Qt.QScrollArea() - self.top_scroll.setFrameStyle(Qt.QFrame.NoFrame) - self.top_scroll_layout.addWidget(self.top_scroll) - self.top_scroll.setWidgetResizable(True) - self.top_widget = Qt.QWidget() - self.top_scroll.setWidget(self.top_widget) - self.top_layout = Qt.QVBoxLayout(self.top_widget) - self.top_grid_layout = Qt.QGridLayout() - self.top_layout.addLayout(self.top_grid_layout) - - self.settings = Qt.QSettings("GNU Radio", "Test_Bit_Errorrate") - - try: - if StrictVersion(Qt.qVersion()) < StrictVersion("5.0.0"): - self.restoreGeometry(self.settings.value("geometry").toByteArray()) - else: - self.restoreGeometry(self.settings.value("geometry")) - except: - pass ################################################## # Variables @@ -76,24 +35,19 @@ class Test_Bit_Errorrate(gr.top_block, Qt.QWidget): ################################################## # Blocks ################################################## - self.fadingui_netsink_0 = fadingui.netsink(address='udp://localhost:31415', dtype="byte", vlen=1) - self.blocks_throttle_1 = blocks.throttle(gr.sizeof_char*1, samp_rate,True) - self.blocks_null_source_0 = blocks.null_source(gr.sizeof_char*1) + self.fadingui_netsink_0 = fadingui.netsink(address='udp://localhost:31415', dtype="float", vlen=1) + self.blocks_throttle_1 = blocks.throttle(gr.sizeof_float*1, samp_rate,True) + self.analog_noise_source_x_0 = analog.noise_source_f(analog.GR_GAUSSIAN, 1, 0) ################################################## # Connections ################################################## - self.connect((self.blocks_null_source_0, 0), (self.blocks_throttle_1, 0)) + self.connect((self.analog_noise_source_x_0, 0), (self.blocks_throttle_1, 0)) self.connect((self.blocks_throttle_1, 0), (self.fadingui_netsink_0, 0)) - def closeEvent(self, event): - self.settings = Qt.QSettings("GNU Radio", "Test_Bit_Errorrate") - self.settings.setValue("geometry", self.saveGeometry()) - event.accept() - def get_samp_rate(self): return self.samp_rate @@ -106,34 +60,21 @@ class Test_Bit_Errorrate(gr.top_block, Qt.QWidget): def main(top_block_cls=Test_Bit_Errorrate, options=None): - - if StrictVersion("4.5.0") <= StrictVersion(Qt.qVersion()) < StrictVersion("5.0.0"): - style = gr.prefs().get_string('qtgui', 'style', 'raster') - Qt.QApplication.setGraphicsSystem(style) - qapp = Qt.QApplication(sys.argv) - tb = top_block_cls() - tb.start() - - tb.show() - def sig_handler(sig=None, frame=None): - Qt.QApplication.quit() + tb.stop() + tb.wait() + + sys.exit(0) signal.signal(signal.SIGINT, sig_handler) signal.signal(signal.SIGTERM, sig_handler) - timer = Qt.QTimer() - timer.start(500) - timer.timeout.connect(lambda: None) + tb.start() - def quitting(): - tb.stop() - tb.wait() + tb.wait() - qapp.aboutToQuit.connect(quitting) - qapp.exec_() if __name__ == '__main__': main() -- cgit v1.2.1