1. Home
  2. /
  3. Projects
  4. /
  5. A Client-Server System for Test & Measurement Applications
Integra Sources home button.

GET IN TOUCH

A Client-Server System for Test & Measurement Applications

Custom software development FPGA Industrial solutions IoT Web development

Testing electronic devices normally require setting up an electronics laboratory with expensive equipment and tools. But what if these tools could all be accessed by any web browser from a tablet or laptop computer?

A client-server system for test & measurement applications

Request

A Slovenian test and measurement equipment manufacturing company developed an ecosystem of open-source out-of-the-box applications that allow electronics enthusiasts to test their electronic projects. While the entire ecosystem was open source, some of the test and measurement applications were supposed to be paid. The company was looking for a software development agency that could implement a software licensing mechanism to ensure that paid applications could not be distributed without a license.

Solution

We came up with a software licensing mechanism that generates a special license key on the server using an encryption algorithm. When a user buys an app or makes in-app purchases this mechanism initiates a license check, making it harder for hackers to remove security controls built into the software application.

After we successfully completed this project, our client decided to continue working with us. Together we improved their existing oscilloscope app and created a number of new apps including a spectrum analyzer with in-app purchases, a bode analyzer (an app for building amplitude-frequency characteristics), and a logic analyzer.

We automated the build delivery process, built frontend and backend, and provided proper documentation for our client.

The process of improving the oscilloscope application.

Scope of work

Software licensing mechanism development. We implemented the licensing procedures for the paid applications.

Software development for test and measurement applications:

  • Oscilloscope application
  • Spectrum analyzer application
  • Logic analyzer with support for UART, SPI, and I2C
  • Bode analyzer application
  • Vector network analyzer application
  • Digital multimeter application

Technologies used

  • Low-level part of this project was implemented using C/C++.
  • For GUI we used HTML, CSS, and JS (Javascript).
  • The device has 2 options for networking: Ethernet and WiFi.
  • Some utilities were implemented using Python.
  • Websockets is used to stream data from the device to the GUI part.
  • All software except GUI works on the Xilinx SoC platform.
  • We participated in custom Linux image building for the device.

Challenges solved

Minimized dead-time. When the oscilloscope is processing data, it can't capture and display signals. The dead-time or delay between the acquired signal and the displayed signal was about two seconds. We dug into the library and optimized rendering signals. We also optimized the web user interface to reduce the amount of data it needed to process. As a result, we reduced the dead-time to less than a second.

Improved performance. The logic analyzer uses eight channels to capture multiple signals. This is approximately four billion data points captured simultaneously. We improved the performance of eight concurrent channels to achieve the max ACQ speed of 125 MS/s per channel and up to five seconds per signal at a frequency of 125 MS/s.

The process of developing a client-server system with a backend based on customized Nginx.

Result

We helped the test and measurement company integrate a software licensing mechanism that allows users to buy applications and make in-app purchases. We also developed a client-server system with a backend based on customized Nginx. 

The system provides web access for starting and manipulating numerous applications for a measurement device from the browser. It allows users to measure signals with ACQ speed up to 125 MS/s, extract some information such as spectrum and decompose signals into logical data.

Fast analog inputs

2

Fast analog outputs

2

Developed applications

10 +

Digital inputs for a logic analyzer

8

Integra Sources' engineering team exceeded expectations. Daily reports on development projects made it easy for the client to stay on top of every task. The team at Integra Sources is easy to talk to, regardless of the topic of discussion.

CTO of Test & Measurement Equipment Company