OpenDigitizer is an open-source project modernising FAIR’s time- and frequency-domain digitizer infrastructure embracing modern C++20 standards and uses the OpenCMW, GNU Radio (version 4.0), ImGUI and WebAssembly ecosystems.
While initially designed for the FAIR facility, the expressed intent is to be highly adaptable also for use by other research facilities, industry, academia, as well as private users.
The primary applications of OpenDigitizer include:
The key components are:
Follow these instructions in the subdirectories to compile the individual parts of the project. The top-level CMakeList can be used to compile the complete project in one go:
cmake -S . -B build -DEMCMAKE_COMMAND=`which emcmake` && cmake --build build
This will compile the native UI, the WebAssemblyUI (in a subbuild), and the service which includes the wasm artifacts in its assets.
export DIGITIZER_CHECK_CERTIFICATES=0 # to disable certificate checking, if wanted
export DIGITIZER_HOSTNAME=localhost # set a custom host
export OPENCMW_REST_CERT_FILE=${BUILD_DIR}/_deps/opencmw-cpp-src/src/client/test/assets/server-cert.pem
export OPENCMW_REST_PRIVATE_KEY_FILE=${BUILD_DIR}/_deps/opencmw-cpp-src/src/client/test/assets/server-key.pem
build/src/service/opendigitizer & # launches the service
build/src/ui/opendigitizer-ui & # launches the native digitizer UI
xdg-open https://localhost:8080/web/index.html # launches the webassembly UI
xdg-open https://localhost:8080/flowchart # launches the html based web ui for the flowgraph property
xdg-open https://localhost:8080/acquisition # launches the html based web ui for the acquisition property
We are committed to:
Clean & Lean Code (Muda 無駄 & Kaizen 改善 )
Boost maintainability and adaptability through concise, modular code, eliminating waste and fostering continuous improvement
Test-Driven & Extreme Programming
Ensure software reliability, accelerate, and keep developing applications fit-for-purpose
Bus Factor & Knowledge Distribution
Foster collaborative environments and respect for people to enhance team resilience by sharing knowledge and responsibilities
FAIR Principles (see here and here for details)
Improve the discoverability, accessibility, interoperability, and reusability of digital assets, benefiting the research community and wider public through standardisation
Automation & Efficiency
Streamline processes and improve productivity with continuous integration/deployment, optimising resource usage and promoting continuous improvement
Scalability & Resource Optimisation
Ensure software longevity and efficient resource usage by designing with future growth in mind, eliminating waste, and optimizing delivery
Security & Long-Term Planning
Safeguard data and software by prioritizing security, while fostering sustainable development through long-term planning and continuous improvement
Develop People & Teams
Capitalise on the inverse of 'Conway's Law' by nurturing skilled engineers, create opportunities for experimentation, inspiring and guiding them towards sound solutions, allowing them to continuously adapt organisational structures that support producing better technical outcomes