Skip to content

v3.10.0

Choose a tag to compare

@JakaMohorko JakaMohorko released this 03 Dec 08:48
· 16 commits to release/3.10 since this release
92f0c00

Release notes

The 3.10 release is the first production release since openDAQ 3.0, as such, the changelog below highlights the most relevant changes between the two versions.

In the upcoming year, we will be adhering to the following release schedule:

  • Monthly/bimonthly developer releases where the minor version will be incremented by 1 (next development release will be v3.11)
  • 3-4 production releases per year with 1-2 months of RC iterations. Official releases will have a minor version increment of 10 (next production release will be v3.20)

What's changed

Role Management, Access Control and Authentication

  • Ability to authenticate as a user when connecting to devices.
  • Depending on their role, users have read/write/execute permissions defined at the openDAQ component level.

Exclusive control client

  • Ability to connect as an “Exclusive control” client, ensuring that no other clients can be connected as control clients.

IPv6 connectivity

  • IPv6 can now be used to connect to openDAQ devices.

Discovery improvements

  • Information about discovered device addresses is now available
  • A general configuration object can be generated to connect to discovered devices, allowing customization of the configuration and streaming connections. It can be accessed via IDevice::createDefaultAddDeviceConfig
  • A discovery server has been added to openDAQ, allowing devices to advertise themselves via mDNS without external software.

Data streaming stability and performance improvements

  • The Native and LT streaming protocols have been improved with new connectivity features such as reconnect.
  • The Native protocol connection can be customized with new connection parameters when connecting to an openDAQ device.

Gap packets

  • Input ports can be configured to create “Gap packets” indicating data loss in linear-rule signals.

Reference domain information

  • Allows users to check if two devices/signals have compatible domains - if they share the reference domain ID, signals are assumed to be synchronized.
  • The reference domain information is part of the device domain and the signal’s data descriptor (usually configured on a domain signal).

openDAQ reader rework and stability/usability improvements

  • The openDAQ readers have been reworked to adopt the builder pattern, as well as to allow for them to be created with input ports as constructor parameters instead of signals, allowing usage in function blocks.
  • Readers have been extended with a “Reader status” output when reading data, indicating whether an event has been encountered.
  • Readers have adopted the openDAQ “builder” pattern where a builder interface is available for all readers, allowing further customization of behaviour.

Client-to-server streaming with the openDAQ native communication protocol

  • Data can now be streamed from the openDAQ client to the server via the native communication protocol.

Save/Load configuration rework and stabilization

  • Device setup saving and loading has been stabilized for various edge cases including nested function blocks and components created dynamically during the loading process.

Python GUI application improvements

  • Major improvements to the usability of the GUI application accessible through py -m opendaq.

Python and .NET binding improvements

  • General improvements to usability.
  • Major improvements to reader integration into Python.

Several stability, usability, and performance improvements

General bug fixes