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 ++++++++++++++++++++++ 5 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 src/gr-fadingui/grc/fadingui_dearpygui_sink.block.yml create mode 100644 src/gr-fadingui/python/dearpygui_sink.py (limited to 'src') 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]) + -- cgit v1.2.1