Skip to content
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

GnuRadio service #123

Merged
merged 18 commits into from
Nov 13, 2023
Merged

GnuRadio service #123

merged 18 commits into from
Nov 13, 2023

Conversation

frankosterfeld
Copy link
Contributor

@frankosterfeld frankosterfeld commented Oct 27, 2023

Service running a gnuradio graph and providingdata via zmq subscriptions. Also integrated in the "opendigitizer" service binary.

The issue of the datasink creating pollers with finished=false after
stop has been fixed in graph-prototype, so the logic here can be
simplified.
Copy link
Member

@wirew0rm wirew0rm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a big step toward integration of all the different parts, thanks a lot for figuring out all the integration details.

image

Steps following up on this:

  • rest-backend/majordomo:
    • improve latencies
    • subscription semantics: at the moment the rest backend does not correctly forward query parameters, so only subscriptions that are otherwise active can be subscribed from http and event then they cannot be selectively queried -> at the moment only one subscription is usable at a time. -> has to be solved in opencmw-cpp
    • http subscriptions will saturate the http worker threads if they are updated less frequently than the client timeout, because there are no server-side timeouts or limits, other than the size of the global httplib thread pool, which will saturate.

- name: Configure CMake
shell: bash
run: cmake -S . -B ../build -DCMAKE_BUILD_TYPE=${{ matrix.cmake-build-type }} -DEMCMAKE_COMMAND=`which emcmake`
run: |
export SYSTEM_NODE=`which node` # use system node instead of old version distributed with emsdk for threading support
Copy link
Member

@wirew0rm wirew0rm Nov 13, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note: SYSTEM_NODE has to be passed to emcmake's -DCMAKE_CROSSCOMPILING_EMULATOR to take effect. Does not cause problems at the moment because the UI does not run unittests in the embedded emscripten build.

@wirew0rm wirew0rm merged commit 7afc207 into main Nov 13, 2023
7 checks passed
@wirew0rm wirew0rm deleted the frank/gr-service branch November 13, 2023 15:02
@frankosterfeld
Copy link
Contributor Author

This is a big step toward integration of all the different parts, thanks a lot for figuring out all the integration details.

image

Steps following up on this:

  • rest-backend/majordomo:

    • improve latencies
    • subscription semantics: at the moment the rest backend does not correctly forward query parameters, so only subscriptions that are otherwise active can be subscribed from http and event then they cannot be selectively queried -> at the moment only one subscription is usable at a time. -> has to be solved in opencmw-cpp
    • http subscriptions will saturate the http worker threads if they are updated less frequently than the client timeout, because there are no server-side timeouts or limits, other than the size of the global httplib thread pool, which will saturate.

For these I've now created the issues fair-acc/opencmw-cpp#328 and fair-acc/opencmw-cpp#329

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.

[5pt,9pt] Integration of PS4000 block into OpenDigitizer Serivce
3 participants