-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Frank/datasink metadata #283
Conversation
cd6afff
to
d773abc
Compare
d773abc
to
9c0bb0a
Compare
9c0bb0a
to
8179c30
Compare
8179c30
to
4a9abfa
Compare
Revert the renaming of Block::init() to Block::performInit(). Instead of registering the DataSink at init time, do so in start(), and unregister in stop(). This needs changes in the tests, as a poller/callback can now only be registered while the execution is already running, the pollers/callbacks might not get all the data from the start. Add a initial delay (new block testing::Delay) to work around that.
8c4cc79
to
357666a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@frankosterfeld , thanks for the update. 👍
I like the std::optional<U> getProperty(const property_map &m, std::string_view key);
. We should (separate PR) elevate this to using std::expected<..>
and make this a core function or perhaps for the pmt-library itself as this is a common use case that I also saw @ivan-cukic introduced for the message handling.
I also like the GRC-based loader-based unit-test in qa_Settings. Why is this disabled for Emscripten?
As discussed in the GR Architecture channel, this grc-file-based definition is good both for unit-tests as well as basic-usage documentation. We had a quick iteration over here, and maybe we will add another optional using ... = fixed_string("grc definition");
to the blocks to allow for documenting these (at least the basic) use cases. Unit-tests and documentation aside, this could also be used on the GR website to launch a WASM GR UI for the block documentation where users could directly play/experiment with a give block.
Regarding the modifications to core library functions in Scheduler.hpp and Block.hpp (comments only), unless these changes address specific bugs or are critically needed, I suggest reverting them due to concurrent modifications being made in other PRs.
Your contributions are valuable, and with these minor adjustments, this PR could be merged. Thanks in advance.
#ifndef __EMSCRIPTEN__ | ||
// TODO enable this when load_grc works in emscripten (not relying on plugins here) | ||
"Property auto-forwarding with GRC-loaded graph"_test = [&] { | ||
constexpr std::string_view grc = R"( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like this, this is useful. 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@frankosterfeld thanks for the changes. Will squash-merge it once the CI passes.
Quality Gate failedFailed conditions |
Fix issues in DataSink:
Make sure lookup by signal_name is thread-safe and is not accessing the
signal_name member directly, which might be updated in another thread.
Simplify and fix the signal metadata propagation to work with the automatic forwarding of source properties matching default tags.
Fix the metadata propagation for GRC-loaded graphs.
Needed for fair-acc/opendigitizer#159 and fair-acc/opendigitizer#160