aboutsummaryrefslogtreecommitdiffstats
path: root/src/gr-fadingui
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/gr-fadingui/grc/CMakeLists.txt3
-rw-r--r--src/gr-fadingui/grc/fadingui_ber.block.yml37
-rw-r--r--src/gr-fadingui/python/CMakeLists.txt4
-rw-r--r--src/gr-fadingui/python/__init__.py1
-rw-r--r--src/gr-fadingui/python/ber.py55
-rwxr-xr-xsrc/gr-fadingui/python/qa_ber.py41
6 files changed, 139 insertions, 2 deletions
diff --git a/src/gr-fadingui/grc/CMakeLists.txt b/src/gr-fadingui/grc/CMakeLists.txt
index d5f23a6..297ae8d 100644
--- a/src/gr-fadingui/grc/CMakeLists.txt
+++ b/src/gr-fadingui/grc/CMakeLists.txt
@@ -22,5 +22,6 @@ install(FILES
fadingui_dearpygui_sink.block.yml
fadingui_deframer.block.yml
fadingui_frame_obj.block.yml
- fadingui_multipath_fading.block.yml DESTINATION share/gnuradio/grc/blocks
+ fadingui_multipath_fading.block.yml
+ fadingui_ber.block.yml DESTINATION share/gnuradio/grc/blocks
)
diff --git a/src/gr-fadingui/grc/fadingui_ber.block.yml b/src/gr-fadingui/grc/fadingui_ber.block.yml
new file mode 100644
index 0000000..3383df5
--- /dev/null
+++ b/src/gr-fadingui/grc/fadingui_ber.block.yml
@@ -0,0 +1,37 @@
+id: fadingui_ber
+label: BER
+category: '[fadingui]'
+
+templates:
+ imports: import fadingui
+ make: fadingui.ber(vgl=${vgl})
+
+# 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: vgl
+ label: Vergleichsparameter
+ dtype: raw
+# - id: ...
+# label: ...
+# dtype: ...
+
+# 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
+ domain: stream
+ dtype: byte
+
+
+# '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 eb0e7cc..e04eb5b 100644
--- a/src/gr-fadingui/python/CMakeLists.txt
+++ b/src/gr-fadingui/python/CMakeLists.txt
@@ -37,7 +37,8 @@ GR_PYTHON_INSTALL(
dearpygui_sink.py
deframer.py
frame_obj.py
- multipath_fading.py DESTINATION ${GR_PYTHON_DIR}/fadingui
+ multipath_fading.py
+ ber.py DESTINATION ${GR_PYTHON_DIR}/fadingui
)
########################################################################
@@ -48,3 +49,4 @@ include(GrTest)
set(GR_TEST_TARGET_DEPS gnuradio-fadingui)
set(GR_TEST_PYTHON_DIRS ${CMAKE_BINARY_DIR}/swig)
GR_ADD_TEST(qa_multipath_fading ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_multipath_fading.py)
+GR_ADD_TEST(qa_ber ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_ber.py)
diff --git a/src/gr-fadingui/python/__init__.py b/src/gr-fadingui/python/__init__.py
index dba999e..9fe45d5 100644
--- a/src/gr-fadingui/python/__init__.py
+++ b/src/gr-fadingui/python/__init__.py
@@ -38,5 +38,6 @@ from .dearpygui_sink import dearpygui_sink
from .deframer import deframer
from .frame_obj import frame_obj
from .multipath_fading import multipath_fading
+from .ber import ber
#
diff --git a/src/gr-fadingui/python/ber.py b/src/gr-fadingui/python/ber.py
new file mode 100644
index 0000000..387b75f
--- /dev/null
+++ b/src/gr-fadingui/python/ber.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# Copyright 2021 Sara Cinzia Halter.
+#
+# 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
+
+from fadingui.logger import get_logger
+log = get_logger("ber")
+
+class ber(gr.sync_block):
+ """
+ docstring for block ber
+ """
+ def __init__(self, vgl):
+ gr.sync_block.__init__(self,
+ name="ber",
+ in_sig=[np.byte, ],
+ out_sig=None)
+ self.vgl=vgl
+
+
+
+ def work(self, input_items, output_items):
+ inp = input_items[0]
+ # <+signal processing here+>
+
+ v = self.vgl^inp
+ v_array= np.array(v,dtype = np.uint8)
+
+ ber = sum(np.unpackbits(v_array))
+
+
+ log.debug(ber)
+
+ return len(input_items[0])
+
diff --git a/src/gr-fadingui/python/qa_ber.py b/src/gr-fadingui/python/qa_ber.py
new file mode 100755
index 0000000..8b6d56e
--- /dev/null
+++ b/src/gr-fadingui/python/qa_ber.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# Copyright 2021 Sara Cinzia Halter.
+#
+# 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.
+#
+
+from gnuradio import gr, gr_unittest
+from gnuradio import blocks
+from ber import ber
+
+class qa_ber(gr_unittest.TestCase):
+
+ def setUp(self):
+ self.tb = gr.top_block()
+
+ def tearDown(self):
+ self.tb = None
+
+ def test_001_t(self):
+ # set up fg
+ self.tb.run()
+ # check data
+
+
+if __name__ == '__main__':
+ gr_unittest.run(qa_ber)