Application Software & Framework Development for Open-Source Data Acquisition & Measurement Platform
Project in Nutshell:Â We developed open-source software based on the OPC UA protocol for the data acquisition and measurement platform, helping our client create their own ecosystem of multi-vendor control devices and take a leading position in the market. Â
Client & Challenge
A test and measurement equipment manufacturer approached us to develop a framework and application user software for an open, vendor-independent data collection platform.
Our client aimed to move away from the vendor lock-in strategy, where hardware and software are limited to the same supplier. To address this issue, they partnered with several companies to create open-source software for test and measurement equipment based on the OPC UA protocol.
Â
Solution
The project involved two engineering teams tackling different tasks: application software development for the client's devices and SDK generation for the platform. Both teams worked in the client's infrastructure.
1. Application software development
We used the client's open-source library to develop application software with the following advantages:Â
- A modular architecture for using the same modules across different devices.Â
- Cross-platform compatibility, where the user's code is independent of the operating system and drivers.Â
During the project, we addressed the following issues:Â
- We explored the potential capabilities of the library and its compatibility issues across different platforms. This was particularly important as one of the library's main tasks is to separate the user code from the core of the operating system or device drivers.Â
- We tested the software to ensure it worked correctly with other components. We quickly rectified shortcomings and developed updated versions of the software.
 - We developed best practices and approaches for incorporating the library into code: we identified typical problems users may encounter and devised scenarios for effective use of the library.Â
The open platform greatly simplifies the engineer's work: they no longer need to write code to enable communication between the programme and the operating system, for example via the OPC UA protocol. Here's how it works without using an open platform:
The engineer independently writes business logic, programs interaction with drivers, programs with the OS, and program interaction with the network
In the new solution, the framework manages the interaction between the software and the OS automatically, allowing engineers to focus on the business logic and classes that manage the base layer. ModuleManager automatically finds, connects and manages compiled modules, simplifying the development process. The diagrams below show how it works:
Block diagram of the open platform framework workflow
To solve the tasks of this stage, we used the following technology stack:Â
- Programming language: C++17;Â
- Modular testing library: Google Testing Framework (GTest);Â
- Build system: CMake;Â
- Version control system: Git.Â
2. Framework development
Here are the tasks our software engineers solved in the development of the framework based on the customer's open-source library:Â
- Added automatic package building for all current Python versions across all platforms except MacOS;
- Improved the user documentation with examples of SDK usage;Â
- Improved the SDK components related to Python usage;Â
- Revised the software interfaces to comply with Python standards;Â
- Redesigned the benchmark application;Â
- Integrated new functionality into the code generator;Â
- Expanded the test coverage, ensuring that new features are now accompanied by tests.Â
- Set up continuous integration for GitHub.Â
In this project, we also utilised CMake and Git systems, employed the GitHub actions service for test automation, and worked with several programming languages:Â
- Python 3.8–3.12;Â
- C++17;Â
- C#.Â
Business ValueÂ
Â
More of What We Do for Measuring Equipment:
- Industrial Software Development: study our experience in using the OPC UA protocol in software development for industrial automation systems.
- Software for Optical Reflectometer: a case studу on the development of software for an OTDR used in optical data transmission networks.
- Power Quality Analysers: a case study on the design of devices that improve energy efficiency and ensure compliance with EN50160 & IEC 61000.
Engineering Notes
The OPC UA protocol (Open Platform Communications Unified Architecture) is a machine-to-machine communication protocol developed for industrial automation applications. It ensures secure and reliable data exchange in industrial environments, facilitating interaction between various systems and devices regardless of the manufacturer.Â
The protocol features a platform-independent architecture, allowing it to function across different operating systems and hardware platforms.Â
OPC UA supports complex data types and object-oriented architecture. Thanks to this feature, it is suitable for modern industrial applications that require the exchange of complex data structures, such as measurements, status information, and commands between devices and control systems.Â
Due to its scalability, standardisation, and integration capabilities with other industrial standards, the OPC UA protocol has become the foundation for ensuring compatibility and data exchange between various devices and systems involved in data collection, monitoring, and analysis.Â