diff --git a/.github/workflows/build_cmake.yml b/.github/workflows/build_cmake.yml index 6a179bc7..6b98c694 100644 --- a/.github/workflows/build_cmake.yml +++ b/.github/workflows/build_cmake.yml @@ -71,6 +71,29 @@ jobs: sudo apt update sudo apt install -y libx11-dev libgl1-mesa-dev libsdl2-dev + - name: "Install timing system dependencies: etherbone" + shell: bash + run: | + git clone --branch v2.1.3 --depth=1 https://ohwr.org/project/etherbone-core.git + cd etherbone-core/api + touch ChangeLog # add an empty changelog file which is required by autotools + sed -e "s%AC_MSG_ERROR%AC_MSG_NOTICE%g" -i configure.ac + autoreconf -i + ./configure + make -j + sudo make install + + - name: "Install timing system dependencies: saftlib" + shell: bash + run: | + sudo apt-get -y install libsigc++-2.0-dev libxslt1-dev libboost-all-dev + git clone --branch v3.0.3 --depth=1 https://github.com/GSI-CS-CO/saftlib.git + cd saftlib + ./autogen.sh + ./configure + make + sudo make install + # Temporary dependency, until we rely on the plugin system to load gr-digitizers blocks at runtime - name: Install picoscope libraries run: | diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake index c111685d..01e653ed 100644 --- a/cmake/Dependencies.cmake +++ b/cmake/Dependencies.cmake @@ -9,7 +9,7 @@ FetchContent_Declare( FetchContent_Declare( graph-prototype GIT_REPOSITORY https://github.com/fair-acc/graph-prototype.git - GIT_TAG 953501708db91ecda21805b6e2dd8af1da50399c + GIT_TAG 7d22e962c7f67fee95fd98c38bdb32ccde78d616 ) FetchContent_Declare( diff --git a/src/service/cmake/Dependencies.cmake b/src/service/cmake/Dependencies.cmake index 3f4ca142..3c9d8bb4 100644 --- a/src/service/cmake/Dependencies.cmake +++ b/src/service/cmake/Dependencies.cmake @@ -5,7 +5,7 @@ include(FetchContent) FetchContent_Declare( gr-digitizers GIT_REPOSITORY https://github.com/fair-acc/gr-digitizers.git - GIT_TAG fe402e92b7e4cfc8ffc745f2349ab26b941fc8b9 # latest dev-prototype as of 2023-11-09 + GIT_TAG 68b8bfc2880a4eac9ce978458be63729d9d88c01 # latest dev-prototype as of 2014-01-18 ) FetchContent_MakeAvailable(gr-digitizers) diff --git a/src/service/gnuradio/test/CountSource.hpp b/src/service/gnuradio/test/CountSource.hpp index b8da9694..b969806e 100644 --- a/src/service/gnuradio/test/CountSource.hpp +++ b/src/service/gnuradio/test/CountSource.hpp @@ -78,9 +78,8 @@ struct CountSource : public gr::Block> { } } if (!_pending_tags.empty() && _pending_tags[0].index == static_cast(_produced)) { - this->output_tags()[0] = { 0, _pending_tags[0].map }; + this->publishTag(_pending_tags[0].map, 0); _pending_tags.pop_front(); - this->forwardTags(); } const auto subspan = std::span(output.begin(), output.end()).first(n); diff --git a/src/service/main.cpp b/src/service/main.cpp index 6c0a8360..28617ddf 100644 --- a/src/service/main.cpp +++ b/src/service/main.cpp @@ -53,9 +53,7 @@ struct TestSource : public gr::Block> { } if (_produced == 0 && n > 0) { - auto &tag = this->output_tags()[0]; - tag = { 0, { { std::string(gr::tag::SIGNAL_MIN.key()), -0.3f }, { std::string(gr::tag::SIGNAL_MAX.key()), 0.3f } } }; - this->forwardTags(); + this->publishTag({ { std::string(gr::tag::SIGNAL_MIN.key()), -0.3f }, { std::string(gr::tag::SIGNAL_MAX.key()), 0.3f } }, 0); } const auto edgeLength = static_cast(sample_rate / 200.f); diff --git a/src/ui/cmake/Dependencies.cmake b/src/ui/cmake/Dependencies.cmake index a08646da..392cfa36 100644 --- a/src/ui/cmake/Dependencies.cmake +++ b/src/ui/cmake/Dependencies.cmake @@ -49,7 +49,7 @@ FetchContent_Declare( FetchContent_Declare( graph-prototype GIT_REPOSITORY https://github.com/fair-acc/graph-prototype.git - GIT_TAG 953501708db91ecda21805b6e2dd8af1da50399c + GIT_TAG 7d22e962c7f67fee95fd98c38bdb32ccde78d616 ) FetchContent_MakeAvailable(imgui implot imgui-node-editor yaml-cpp stb opencmw-cpp plf_colony graph-prototype) diff --git a/src/ui/flowgraph/datasource.cpp b/src/ui/flowgraph/datasource.cpp index 2d3e495b..7d7d1e0b 100644 --- a/src/ui/flowgraph/datasource.cpp +++ b/src/ui/flowgraph/datasource.cpp @@ -40,17 +40,13 @@ struct SineSource : public gr::Block> { thread.join(); } - std::make_signed_t - available_samples(const SineSource & /*d*/) noexcept { - std::lock_guard lock(mutex); - const auto ret = std::make_signed_t(samples.size()); - return ret > 0 ? ret : -1; - } - T processOne() { std::lock_guard guard(mutex); - - T v = samples.front(); + assert(!samples.empty()); + if (samples.size() == 1) { + this->requestStop(); + } + T v = samples.front(); samples.pop_front(); return v; }