Skip to content

Qa annotator raw morewait#10

Open
marcusmueller wants to merge 145 commits into
mainfrom
qa_annotator_raw_morewait
Open

Qa annotator raw morewait#10
marcusmueller wants to merge 145 commits into
mainfrom
qa_annotator_raw_morewait

Conversation

@marcusmueller

Copy link
Copy Markdown
Owner

No description provided.

argilo and others added 30 commits September 9, 2024 07:21
This ensures that flowgraph execution completes, and that the Repeat
function works, for files whose length is not known in advance, such
as MP3.

Signed-off-by: Clayton Smith <argilo@gmail.com>
Signed-off-by: Clayton Smith <argilo@gmail.com>
closeEvent is defined several times. In case of build qt cpp code, closeEvent can only be defined once.

Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
Use `BlockToolException` instead of `modtool.cli.ModToolException`
in `GenericHeaderParser._parse_cc_h` to avoid importing `modtool.cli`

Signed-off-by: AsriFox <asrifox@yandex.ru>
In grc --gtk you can select some blocks and by right clicking on one of the selected blocks,
you can generate a skeleton for an hierarchical block.

This option is available in grc --qt, too, but not implemented.

This pr implements the missing function.

Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
Traceback (most recent call last):
  File "/home/schroer/gnuradiocomponents/Test/./callhier.py", line 24, in get_state_directory
    log.warn(f"Found persistent state path '{newpath}', but file does not exist. " +
    ^^^
NameError: name 'log' is not defined

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/schroer/gnuradiocomponents/Test/./callhier.py", line 47, in <module>
    sys.path.append(os.environ.get('GRC_HIER_PATH', get_state_directory()))
                                                    ^^^^^^^^^^^^^^^^^^^^^
  File "/home/schroer/gnuradiocomponents/Test/./callhier.py", line 33, in get_state_directory
    log.warn("Could not retrieve GNU Radio persistent state directory from GNU Radio." +
    ^^^
NameError: name 'log' is not defined

Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
According to the documentation for NamedTemporaryFile, the temporary file
cannot be opened a second time on Windows unless delete=False is used.

Signed-off-by: Clayton Smith <argilo@gmail.com>
Signed-off-by: Clayton Smith <argilo@gmail.com>
The templates for cpp code generation for many filters are wrong.

This pr fixes these errors.

In Addition the beta parameter is only displayed in the filter parameter gui, if the
window for the filter is Kaiser.

Fixes gnuradio#7507

Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
If a block contains many parameters, the PropsDialog is hard to read.

So this pr makes the parameter section scrollable.

As an example take a QT GUI Frequency sink block.

Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
The cpp templates for variable_*_filter_taps are wrong.
This is fixed here.

In addition the beta parameter is only displayed in the parameter gui, if the window for the filter is Kaiser.

Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
Signed-off-by: Ladislav Sladecek <ladislav.sladecek@gmail.com>
Signed-off-by: Ladislav Sladecek <ladislav.sladecek@gmail.com>
also reduced visual clutter in linear_equalizer_compare.grc with a tag
gate, and added .gitignore files to ignore temporary files created by
running flowgraphs

Signed-off-by: Matt Carrick <matt@wavewalkerdsp.com>
I would like someone to confirm that this fix works for linux.  Under
windows this fixes a problem with python modifying __init__.py imporperly
and I believe this will occur under linux as well, but I have not tested
with linux.

I would also like to ensure that this doesn't negatively impact cpp code
generation as I have not yet tested it with cpp.

Signed-off-by: Chris Gorman <chrisjohgorman@gmail.com>
Signed-off-by: Clayton Smith <argilo@gmail.com>
Signed-off-by: Clayton Smith <argilo@gmail.com>
Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
Multiline text cannot be saved  ( In comments)
This is fixed now

The return key is connected to the accept button. So you have to reopen the dialog, to do further changes.
Now this key only finishes the input on an entry and you can modify this entry again, without reopening.

After changing a parameter the gui is now updated.

For instance open a filter block and change the window parameter from Hamming to Kaiser, than the Beta parameter appears.

Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
excluded:

- apache::thrift (no comprehensive testing)
- ::uhd / gr::uhd in the rfnoc domain (intentional by orig. author)

Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
Meanwhile the Qt.Key_Enter is not always mapped to accept.
So in some cases an extra Qt.Key_Enter has to be inserted.

The fg_path variable must be taken as string otherwise we get errors like:

CALL ERROR: Exceptions caught in Qt event loop:
________________________________________________________________________________
Traceback (most recent call last):
  File "/home/schroer/gnuradiocomponents/gnuradio-volker/grc/gui_qt/components/window.py", line 1028, in save_triggered
    self.save_as_triggered()
  File "/home/schroer/gnuradiocomponents/gnuradio-volker/grc/gui_qt/components/window.py", line 1054, in save_as_triggered
    self.add_recent_file(filename)
  File "/home/schroer/gnuradiocomponents/gnuradio-volker/grc/gui_qt/components/window.py", line 1549, in add_recent_file
    actions_list[i].setText(self.recent_files[i])
TypeError: setText(self, text: Optional[str]): argument 1 has unexpected type 'PosixPath'

Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
Signed-off-by: tinyboxvk <tinyboxvk@users.noreply.github.com>
Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
This updates the portion of gr-uhd that deals with generating RFNoC
bitfiles from within GRC. For now, this is limited to generating a .grc
file with GNU Radio Companion that describes an RFNoC image core; this
file must then be passed to `rfnoc_image_builder` with the `-r`
argument, the same way that regular image core YAML files are passed
with the `-y` argument.

The following changes are included:
- All available image core blocks were updated to match recent UHD
- New image core blocks were added (addsub, CHDR DMA transport adapter,
  no-connect, fosphor aka f15, keep-one-in-N, null source/sink,
  replay/capture, stream endpoint, signal generator, split-stream,
  switchboard).
- The X310 BSP block was replaced with a generic BSP block, which
  supports all currently available RFNoC devices.
- The domains were updated, and domains for axi4_mm, gpio, and transport
  adapters were added.
- Two examples for image core files were added: An X3x0 image, which can
  be used to generate X300_HG, X300_XG, X310_HG, and X310_XG standard
  bitfiles, and an x410_X4_200 example.
- A README.md is added in gr-uhd/examples/grc to better explain what's
  going on.

The usage of this to generate RFNoC bitfiles depends on the availability
of updated UHD. However, note that with current UHD and GNU Radio, the
image builder feature of gr-uhd was not functional.

Signed-off-by: Martin Braun <martin.braun@ettus.com>
Signed-off-by: Landry Breuil <landry@openbsd.org>
Signed-off-by: Landry Breuil <landry@openbsd.org>
The current wavfile_sink block API has getter and
setter functions for the sample bit size. However,
the setter function's value is ignored because the
sample size is fully determined by the file format
and subformat. Additionally, the code is inconsistent,
as the getter returns bytes instead of bits, and
there is a risk of using uninitialized memory.

This update removes unnecessary operations and
resolves the inconsistency between bits and bytes.

Signed-off-by: Ladislav Sladecek <ladislav.sladecek@gmail.com>
marcusmueller and others added 30 commits March 22, 2025 17:50
New checks! Actually found bugs with the RAII checker.

Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
When generating a flow graph, we make the generator aware if it's being
called directly, or implied by "execute". This can be useful for future
workflows.

Signed-off-by: Martin Braun <martin.braun@ettus.com>
These functions are GUI-independent, and should therefore go into
a non-widget-specific location.

Signed-off-by: Martin Braun <martin.braun@ettus.com>
Signed-off-by: Håkon Vågsether <hakon.vagsether@gmail.com>
This allows to use all FEC encoders and decoders by just creating
corresponding encoder and decoder objects in Python and without
creating a flowgraph

Signed-off-by: Andrej Rode <mail@andrejro.de>
In the previous version of GRC, workflows were hard-coded. There was C++
vs.  Python, with and without Qt, as hier block or as top block. This
changeset enables a different paradigm: All workflows are now available
as plugins. By default, GNU Radio supports all workflows that were
previously hardcoded (see list above, plus gr-bokeh_gui with Python).

A major part of this changeset is the updated Options block. The YAML
for the Options block no longer lists all the available workflows.
Rather, there is a Python-based implementation of the Options block,
which will dynamically load all workflows it can find.

Co-authored-by: Martin Braun <martin.braun@ettus.com>
Signed-off-by: ZakyHermawan <zaky.hermawan9615@gmail.com>
Signed-off-by: Martin Braun <martin.braun@ettus.com>
Signed-off-by: Håkon Vågsether <hakon.vagsether@gmail.com>
By definition, pybind has to bind even deprecated functions (until we
actually remove them).

So, erroring out when we do that is not an option.

Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
This adds a new output language and build options to GRC and allows
building RFNoC FPGA bitfile straight out of GNU Radio.

Signed-off-by: Martin Braun <martin.braun@ettus.com>
Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
…xible io

This is an API-breaking commit and should not be backported.

This also modernizes code and moves implementation details to the .cc
file.

Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
Signed-off-by: Håkon Vågsether <hakon.vagsether@gmail.com>
Without this fix, whenever bind_oot_file.py is called (e.g., through
CMake because something changed), a new <modulename>_python.cc file is
generated. During the re-generation, the include path in this file is
corrupted. After running `gr_modtool newmod foo`, and creating a block
(`gr_modtool add bar`), the file gr-foo/python/bindings/bar_python.cc
contains this line:

```cpp
    #include <gnuradio/foo/bar.h>
```

Afterwards, this line is modified to:

```cpp
    #include <foo/bar.h>
```

Signed-off-by: Martin Braun <martin.braun@ettus.com>
The Options block must not be deleted (like in grc --gtk)

Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
Signed-off-by: helloziyi <hellocaoziyi@gmail.com>
Co-authored-by: Marcus Müller <marcus@hostalia.de>

Signed-off-by: DBAA <hellocaoziyi@gmail.com>
Signed-off-by: DBAA <hellocaoziyi@gmail.com>
Signed-off-by: Julian Schuler <julianschuler@users.noreply.github.com>
Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
… support

Signed-off-by: Sahil Lenka <sahillenka44@gmail.com>
Signed-off-by: Sahil Lenka <sahillenka44@gmail.com>
Increase overall processing time to increase tolerances

Puh, this is really not a tight race to win, and the macOS builder still
manages to lose it.

Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
…ck solved

Argilo demonstrated in gnuradio#7711
pretty concisely what the problem is:

Our C++-wrapping doesn't hold the GIL. When we pass in a python function
to be executed by the predicate-checking functionality, that however
needs the GIL. It does hold the buffer mutex.

When, from another place, holding the GIL, something tries to acquire
the buffer mutex, it blocks until get_first_tag_in_range yields it.
Which it can't, because it is waiting for the GIL to be yielded.
Deadlock.

This is not trivial to fix (it requires reworking the kind of locking
happening – currently, there's but one buffer mutex, protecting all:
you can't even concurrently read tags or the buffer pointers, let alone
write them; and all this happens with no chance of interruption when the
critical sections are through.)

So, solution to unblock GR main development for now is to disable this
QA.

Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
Signed-off-by: info@revskills.de <info@revskills.de>
Signed-off-by: Jreitmei <johannes.reitmeier@emerson.com>
Despite using qtpy, the signature for opening files on PyQt5 and PySide2
is different. Luckily, the order of arguments is the same, so by not
using keyword arguments, we can make this call cross-compatible.

On PyQt5, the third argument is called 'directory', and on PySide2, it's
called 'dir'.

Signed-off-by: Martin Braun <martin.braun@ettus.com>
Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
Not clear what's happening here. Moar tolerance?

Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.