Skip to content

Conversation

@NikolaiShipilov
Copy link
Collaborator

No description provided.

openDAQ-dev and others added 30 commits January 29, 2026 15:17
* Use "definition" signal meta-data json-object to Encode/Decode signal descriptor fields
* Change the order of protocol meta-data messages - send/handle list of "available" signals first
  and meta-data of subscribed signals second
* Set the default data value Range {-15.0, 15.0} for signals of non-openDAQ ("fusion") devices,
  to be applied for auto-scaling the renderer window size

* Set-up Unit objects for descriptors of mock signals used in tests
* Client sends subscribe requests for all available signals
* Remove order dependency for receiving of time/value signal meta-data in ws streaming
* Fix websocket streaming for scenarios when tableId does not equal to signalId
* Use ws streaming protocol absoluteReference meta as signal origin
    * <TBBAS-906> Signal/Streaming framework: Automatically subscribing mirrored signals
                  when signal has at least one connection to the InputPort
                  and unsubscribing when the connection count decreases to zero.
    * <TBBAS-905> Native streaming: Subscribing domain signals automatically by client side
                  when value signal is being subscribed.
                  Adding/Removing reader on server side when signal is being subscribed/usubscribed

    * Streaming framework refactoring:
      SignalRemote renamed to MirroredSignalConfig for interfaces and smart pointers
      IMirroredSignalConfig inherits ISignalConfig
      Streaming source management methods moved from ISignalConfig to IMirroredSignalConfig
      Streaming and MirroredSignal implement additional private interfaces
      Mirrored signal gets initial DataDescriptorChanged EventPacket directly from active streaming source
* Drop received descriptor changed event packets by native streaming client if descriptors was not actually changed
* Make access to cached signal descriptors thread safe in streaming clients
* local signals - setting is ignored
* mirrored signals - subscription status is bound to 'streamed'  setting  and the existence of listeners
* 'WebsocketControlPort' property added to websocket streaming server config
* streaming server utilizes control server implementation from streaming-protocol-lt library
* server subscribes signals only if request received from client
* pseudo device can be alternatively connected using raw tcp sockets by prefix 'daq.tcp://'
    * subscribe/unsubscribe client signals which connected/disconnected to/from InputPort
    * temporarily subscribe all available signals during streaming connection initialization
* Immediate addition of a reader upon signal subscription.
* Immediate removal of a reader upon signal unsubscription.
- adding Instance Builder
- adding method InstanceFromBuilder
- expand instance tests with checking instance builder
- update changelog
- add description of Instance configuring in doc
Search filters, visible flag, component attributes
  - Add SearchFilter that allows for more granular component search on tree traversal methods (getItems, getSignals...)
  - Add visible flag to Component
  - Default component getters were modified to return only components with visible==true
  - PropertyChanged event packets were removed
  - ComponentModified core event was changed to AttributeModified
  - Attribute lock was added to components preventing changes to locked attributes
  - Name and Description are no longer properties, but component attributes
  - Add per-component core event triggers
…eaming client:

* Allow multiple data signals to have same `tableId`
* Add client handling of domain signals listed as available
* Add `MockStreamingServer` implementation used in tests to bypass the creation
  of artificial time signals within the streaming-lt library
* Expand the WebSocket pseudo device test suite with the relevant tests
…e config protocol.

* Additions:
  - encoding/decoding of native config packets within the native transport protocol.
  - support for a new device type in the native client module.
  - native config protocol support in the native server module.
  - a minimal set of integration tests.

* Fixes:
  - serialization of signal descriptors.
  - fix mutex lock issues in mirrored signals implementation upon subscribe/unsubscribe.
  - assign domain signals for deserialized signals.
NikolaiShipilov and others added 30 commits January 29, 2026 15:17
…openDAQ#556)

- Implement protocol version info
- Broadcasting protocol version via mDNS
- Add transferring the connection string path from server
* MacOs skipped tests
* Some excluded parametrized integration tests
* Tests skipped due to IPv6 unavailability
* Delete the fields `id`, `name`, and `versionInfo` from the `IModule` interface and add them to the new `IModuleInfo` interface, which is a new field in the `IModule` interface
* `IModuleInfo` field is also added to `IComponentType` interface
* Works over Native
* Component Type is moved from `coreobjects` to `opendaq`
* Bump year in license, etc. to 2025

* Update additional files
* shared libraries:
  - <TBBAS-1920> & <TBBAS-1923> extend MDNS discovery server and client
    to enable transmitting the custom non-discovery packages
  - Automatically advertise the ip-modification service within mdns discovery server
    if IP-modification is enabled within instance

* core:
  - enable passing the root device reference to mdns servers

* external dependencies:
  - Add patch for header-only mdns library to support custom non-discovery queries
  - Rename and extend parameters of mdns query callbacks

* Discovery refactoring:
  - replace dependency on opendaq to dependency on coreobjects lib
  - replace modules callbacks with direct instantiation of DeviceInfo object using discovered device data
  - Rename services to servers for discovery
  - Move duplicating discovery and ip modification code into common library

* Simulator:
  - Enable changing and retrieving IP config on simulator over netplan
  - Fix getting RefDevice SerialNumber from module options <TBBAS-2044>
  - Update vagrant installation for standalone build-packages ci job
  - Replace Avahi with internal mDNS server for OPC UA discovery
  - Remove Avahi from simulator and clean-up it's dependencies
  - Reduce simulator boot time when network is offline

* Add cpp and python examples for IP modification

* Fix unused variable warning in reader bindings
Fix LT streaming issues (openDAQ/openDAQ#696)

* keep client session open when unknown or incomplete signal's data received <TBBAS-2084> <TBBAS-1996>
* use raw Json value of linear rule delta when creating linear rule parameters <TBBAS-2013>
* utilize default start value for generating constant rule signal <TBBAS-2049> <TBBAS-1974>
* properly accept control connections via IPv4/v6 <TBBAS-2085>
* Fix parsing IPv6 addresses

* modify regex parsing according to https://datatracker.ietf.org/doc/html/rfc3986#section-2.3

Co-authored-by: Aljaž Frančič <aljaz.francic@gmail.com>

* Fix linklocal suffix for discovered IPv6 addresses on Windows

* Make connection string parsing regex static

* Update changelog

* Fix LT pseudo-device IPv6 connection info

* add tests for device connection info using IPv6 connection

---------

Co-authored-by: Aljaž Frančič <aljaz.francic@gmail.com>
* Provide host name for native client
* Fix redundant dropping of streaming connections when exclusive control client connected
* Fix property add and remove core events for DeviceInfo via config protocol
* Provide backward compatibility for older native config clients
* Switch to libNativeStreaming tag v1.0.18
* Make property removing thread-safe
* Add module helper method to populate discovered device info properties
* new WebSocket streaming server module

* wip

* add docs

* wip: CAN signals working except time

* wip: disable debug logging

* fix tests

* cleanup

* streaming-protocol-lt: 1.2.4

* add required Boost::asio to cmake

* Fixes for building on Windows.

* new ws streaming module in changelog

* ignore httpparser license headers

* Replace cryptopp with Boost for SHA1; cryptopp doesn't support clang

* new-ws-streaming fixes for windows 32-bit
Co-authored-by: Jaka Mohorko <jaka.mohorko@dewesoft.com>
Added circular buffer functionality when creating packets, buffer can only be used on packets of Exact data type. Default length of a buffer is 2 seconds.
)

* json lib update

Co-authored-by: David Norris <david.norris@hbkworld.com>

* streaming-lt version bump

---------

Co-authored-by: David Norris <david.norris@hbkworld.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.