fair-acc / opencmw-cpp

Open Common Middle-Ware library for accelerator equipment- and beam-based control systems at FAIR.
https://opencmw.io
GNU Lesser General Public License v3.0
10 stars 8 forks source link

[3pt,0pt] Evaluate approaches for GR4-flowgraph integration with the OpenCMW Disruptor #199

Closed ivan-cukic closed 1 year ago

RalphSteinhagen commented 1 year ago

The original idea of splitting the sample-by-sample streaming and chunked data processing (using 'DataSet' objects) between GNU Radio and OpenCMW was dropped in favour of doing both types of processing in GNU Radio.

This design decision has been discussed and agreed upon during the GNU Radio 4.0 Architecture meeting. See (expanded) slides for details.

Thanks to the new circular_buffer<T> implementation the updated concepts can pass `DataSet'-type objects directly between blocks. Tentatively, the following type definition has been agreed upon: image

This streamlines both the processing, graph-based definition, and editing into one common framework, reducing the need for the Disruptor pattern and obsoletes the need for RxCpp in the original proposal entirely.

image

See the slides linked above for details.

This also closes https://github.com/fair-acc/opencmw-cpp/issues/200.