Weekly blog on development
View the Project on GitHub ZiadFahmyZewailCity/blog-gr4.0-remotePlotting
by Ziad Fahmi
Hello everyone! Happy to say that the proof of concept for the OOT module is complete.
First, I’ll give a general overview of how the OOT module is intended to work, then get into what the POC specifically achieved.
The browser-based dashboard uses imGUI, written in C++ and compiled to WebAssembly (WASM) using Emscripten. It’s configured via a .json config file that specifies each panel, the elements within each panel (plots, sliders, text labels, etc.), and an ID for the data source of each element that will have data pushed to it.
Blocks for each kind of plot or widget can be placed directly in the GR4 flowgraph and connected to the data sources or variables you want to visualize or control — very similar to how the old gr-bokehGUI worked.
Hopfully ill be able to handle all networking in the background, so users won’t need a separate networking block cluttering their flowgraph.
The POC successfully demonstrates bi-directional communication between a GR4 flowgraph and the configurable dashboard: plotting live signal data coming from the flowgraph, and varying the frequency of a sine wave in real time via a slider widget in the browser.
SignalGenerator → SimCompute → Bridge
dashBoardBridge): Custom GR4 block that handles networking, streams data to the dashboard, and receives slider commands back from the browserThe POC intentionally simplifies a few things for speed:
Bridge block, rather than being split into separate, blocksSuccessfully achieving bi-directional communication between a live GR4 flowgraph and the configurable browser dashboard confirms that the general concept for the OOT module is sound.
tags: