SDK that bridges the gap between data acquisition devices, in an era where incompatibility is the norm
openDAQ is a software development kit that allows for easy integration of data acquisition devices into its ecosystem. It provides a simple generic API that allows users to connect to Data Acquisition (DAQ) devices that are compliant with openDAQ and any of its supported open standards. With the SDK, users can configure properties of devices and read their measurement data. It also contains a framework for developing custom signal processing blocks that process and analyse signal data. In a world where DAQ devices do not readily communicate, openDAQ provides a common language for all to speak while also embracing existing standards such as MQTT and XCP via Ethernet.
- Simple connection to openDAQ-enabled devices, allowing for property visualisation/configuration and data streaming.
- Simple integration of existing data acquisition devices into the openDAQ ecosystem.
- SDK that runs the same code on both the device (server) and application (client).
- Signal processing framework that allows for implementation of custom data processing blocks that run on any SDK instance (device or application).
- OPC UA for structure/property transfer, WebSocket streaming for data.
- API built of C++ pure abstract classes that can be passed across shared library boundaries regardless of compiler and platform used.
- C++ pointer wrappers that allow for C++ features to be used in conjunction with the openDAQ pure abstract classes.
- Wrappers for Python and Delphi (C# in development).
The Doxygen documentation can be built by enabling the OPENDAQ_BUILD_DOCUMENTATION
cmake flag. The user guide
documentation can be built with Antora by following the guide found in docs/Antora/README.md.
OS | Platform | GCC 7.3.1+ | Clang 5+ | VC++ (v14.1+) |
Windows (Visual Studio) |
x86, x64 | / | ✅ | ✅ |
arm64 | ||||
Windows (MinGW) |
x86, x64 | ☑️ | ☑️ | / |
Linux | x86, x64 | ✅ | ✅ | |
armhfv7, aarch64 | ☑️ | ☑️ | ||
MacOS (>= 10.15) |
x64 | ☑️ | ✅ | |
arm64 | ☑️ | ☑️ | ||
iOS | arm64 | 🛠️ | 🛠️ | |
Android | aarch64 | 🛠️ | 🛠️ |
✅ | Actively supported (checked with CI) |
☑️ | Actively supported (no CI) |
Not actively supported | |
🛠️ | Requires some manual changes or special configuration |
- CMake 3.24 or higher: https://cmake.org/ (might come with development environment like Visual Studio)
- Git: https://git-scm.com/
- Compiler:
- (msvc) Visual Studio 2017 or higher with installed Workload for C++
- (gcc windows) MSYS2: http://www.msys2.org, https://github.com/msys2/msys2/wiki/MSYS2-installation
- (gcc) Ninja build system: https://ninja-build.org/
- Python3: https://www.python.org/downloads/
- (optional) Boost C++ Library: https://sourceforge.net/projects/boost/files/boost-binaries/ , http://theboostcpplibraries.com
- If installed, set CMake option
OPENDAQ_ALWAYS_FETCH_BOOST=OFF
to allow the SDK to use it. - See also document BUILD.md.
- If installed, set CMake option
See Required tools before building above.
git clone git@github.com:openDAQ/openDAQ.git
cd openDAQ
In the repository root folder execute the following command to list available presets then select the one that fits you and generate CMake project:
cmake --list-presets=all
cmake --preset "x64/msvc-22/full"
ℹ️ If for any reason there is no preset for your compiler (version) you can list the "CMake generators" and specify one to override the closest preset (e.g. to use Visual Studio 2019):
cmake -G cmake --preset "x64/msvc-17/full" -G "Visual Studio 16 2019"
Open and build build/x64/msvc-22/full/openDAQ.sln
using Visual Studio (if one msvc
preset had been used above).
Or use command line:
# build from repository root
cmake --build build/x64/msvc-22/full
# or move to build directory
cd build/x64/msvc-22/full
cmake --build .
For other compilers than msvc
one can add parameter -j 4
to the build command to specify the number of parallel builds
(see cmake.org: Build a Project with CMake).
For example in Ubuntu
sudo apt-get update
sudo apt-get install -y git build-essential lld cmake ninja-build mono-complete python3
git clone git@github.com:openDAQ/openDAQ.git
cd openDAQ
In the repository root folder execute the following command to list available presets then select the one that fits you and generate CMake project:
cmake --list-presets=all
cmake --preset "x64/gcc/full/debug"
# build from repository root
cmake --build build/x64/gcc/full/debug
# or move to build directory
cd build/x64/gcc/full/debug
cmake --build .
More information about advanced building options can be found in BUILD.md document.