From 785afc898559833cd5dfb7415bdb0da52942886e Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Mon, 15 Nov 2021 18:14:19 +0100 Subject: Create UI Plot sink block --- src/gr-fadingui/grc/CMakeLists.txt | 2 +- .../grc/fadingui_dearpygui_sink.block.yml | 38 ++++++++++++++++++++ src/gr-fadingui/python/CMakeLists.txt | 3 +- src/gr-fadingui/python/__init__.py | 1 + src/gr-fadingui/python/dearpygui_sink.py | 41 ++++++++++++++++++++++ tests/fadingui/QAM/qam_nogui.grc | 20 +++++++++-- 6 files changed, 100 insertions(+), 5 deletions(-) create mode 100644 src/gr-fadingui/grc/fadingui_dearpygui_sink.block.yml create mode 100644 src/gr-fadingui/python/dearpygui_sink.py diff --git a/src/gr-fadingui/grc/CMakeLists.txt b/src/gr-fadingui/grc/CMakeLists.txt index e4b2ee9..98713e8 100644 --- a/src/gr-fadingui/grc/CMakeLists.txt +++ b/src/gr-fadingui/grc/CMakeLists.txt @@ -19,5 +19,5 @@ # Boston, MA 02110-1301, USA. install(FILES fadingui_datasource.block.yml - DESTINATION share/gnuradio/grc/blocks + fadingui_dearpygui_sink.block.yml DESTINATION share/gnuradio/grc/blocks ) diff --git a/src/gr-fadingui/grc/fadingui_dearpygui_sink.block.yml b/src/gr-fadingui/grc/fadingui_dearpygui_sink.block.yml new file mode 100644 index 0000000..3712be4 --- /dev/null +++ b/src/gr-fadingui/grc/fadingui_dearpygui_sink.block.yml @@ -0,0 +1,38 @@ +id: fadingui_dearpygui_sink +label: UI Sink +category: '[fadingui]' + +templates: + imports: import fadingui + make: fadingui.dearpygui_sink() + +# Make one 'parameters' list entry for every parameter you want settable from the GUI. +# Keys include: +# * id (makes the value accessible as \$keyname, e.g. in the make entry) +# * label (label shown in the GUI) +# * dtype (e.g. int, float, complex, byte, short, xxx_vector, ...) +parameters: +- id: sock_addr + label: Socket address + dtype: string + default: udp:// + +- id: ui_element_id + label: UI element ID + dtype: raw + + +# Make one 'inputs' list entry per input and one 'outputs' list entry per output. +# Keys include: +# * label (an identifier for the GUI) +# * domain (optional - stream or message. Default is stream) +# * dtype (e.g. int, float, complex, byte, short, xxx_vector, ...) +# * vlen (optional - data stream vector length. Default is 1) +# * optional (optional - set to 1 for optional inputs. Default is 0) +inputs: +- label: in + dtype: complex + +# 'file_format' specifies the version of the GRC yml format used in the file +# and should usually not be changed. +file_format: 1 diff --git a/src/gr-fadingui/python/CMakeLists.txt b/src/gr-fadingui/python/CMakeLists.txt index 4ab9bbc..27b5f4b 100644 --- a/src/gr-fadingui/python/CMakeLists.txt +++ b/src/gr-fadingui/python/CMakeLists.txt @@ -33,7 +33,7 @@ GR_PYTHON_INSTALL( FILES __init__.py datasource.py - DESTINATION ${GR_PYTHON_DIR}/fadingui + dearpygui_sink.py DESTINATION ${GR_PYTHON_DIR}/fadingui ) ######################################################################## @@ -43,3 +43,4 @@ include(GrTest) set(GR_TEST_TARGET_DEPS gnuradio-fadingui) set(GR_TEST_PYTHON_DIRS ${CMAKE_BINARY_DIR}/swig) +GR_ADD_TEST(qa_dearpygui_sink ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_dearpygui_sink.py) diff --git a/src/gr-fadingui/python/__init__.py b/src/gr-fadingui/python/__init__.py index 6cfa23b..d551a71 100644 --- a/src/gr-fadingui/python/__init__.py +++ b/src/gr-fadingui/python/__init__.py @@ -33,5 +33,6 @@ except ImportError: # import any pure python here from .datasource import datasource +from .dearpygui_sink import dearpygui_sink # diff --git a/src/gr-fadingui/python/dearpygui_sink.py b/src/gr-fadingui/python/dearpygui_sink.py new file mode 100644 index 0000000..2b8e9fb --- /dev/null +++ b/src/gr-fadingui/python/dearpygui_sink.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright 2021 Naoki Pross. +# +# This is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# This software is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this software; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# + + +import numpy as np +from gnuradio import gr + +class dearpygui_sink(gr.sync_block): + """ + docstring for block dearpygui_sink + """ + def __init__(self): + gr.sync_block.__init__(self, + name="dearpygui_sink", + in_sig=[np.complex64], + out_sig=None) + + + def work(self, input_items, output_items): + in0 = input_items[0] + # <+signal processing here+> + return len(input_items[0]) + diff --git a/tests/fadingui/QAM/qam_nogui.grc b/tests/fadingui/QAM/qam_nogui.grc index 681ec7f..be2f20a 100644 --- a/tests/fadingui/QAM/qam_nogui.grc +++ b/tests/fadingui/QAM/qam_nogui.grc @@ -337,7 +337,7 @@ blocks: modulus: eq_mod mu: eq_gain num_taps: eq_ntaps - sps: sps + sps: '1' states: bus_sink: false bus_source: false @@ -444,8 +444,8 @@ blocks: max_dev: '1.5' maxoutbuf: '0' minoutbuf: '0' - osps: sps - sps: sps * 1.001 + osps: '1' + sps: sps taps: rrc_taps type: ccf states: @@ -474,6 +474,19 @@ blocks: coordinate: [64, 252.0] rotation: 0 state: true +- name: fadingui_dearpygui_sink_0 + id: fadingui_dearpygui_sink + parameters: + affinity: '' + alias: '' + comment: '' + states: + bus_sink: false + bus_source: false + bus_structure: null + coordinate: [2120, 200.0] + rotation: 0 + state: true connections: - [blocks_throttle_0, '0', channels_channel_model_0, '0'] @@ -483,6 +496,7 @@ connections: - [digital_constellation_decoder_cb_0, '0', digital_diff_decoder_bb_0, '0'] - [digital_constellation_modulator_0, '0', blocks_throttle_0, '0'] - [digital_costas_loop_cc_0, '0', digital_constellation_decoder_cb_0, '0'] +- [digital_costas_loop_cc_0, '0', fadingui_dearpygui_sink_0, '0'] - [digital_diff_decoder_bb_0, '0', digital_map_bb_0, '0'] - [digital_map_bb_0, '0', blocks_null_sink_0, '0'] - [digital_pfb_clock_sync_xxx_0, '0', digital_cma_equalizer_cc_0, '0'] -- cgit v1.2.1