Skip to content

API call to trigger KeyFrame sending for DataSetWriter or WriterGroup immediately #2391

@dimtix

Description

@dimtix

Is your feature request related to a problem? Please describe.
We have the following scenario:
The Publisher is configured with a predefined set of DataSetWriters to send OPC UA PubSub messages on a specific topic. A client application subscribes to this topic at startup to display the current state of the system. Since the Publisher sends only delta frames when changes occur, the app either receives updated values or no data at all if there are no changes.

The app can access a middleware layer that, in turn, can call the Publisher API. However, this middleware does not expose the Publisher API externally, so the application itself cannot perform read operations on the required nodes via the Publisher API. In addition, the app might not know the full scope or the exact NodeIds of the relevant nodes, so it relies solely on messages received from the topic.

Describe the solution you'd like
Our proposed solution is that the app notifies the middleware when it needs the current values. The middleware would then invoke the Publisher API to trigger sending a KeyFrame. Therefore, we need an API call that forces an immediate KeyFrame for a specific DataSetWriter or WriterGroup.

Describe alternatives you've considered
Since the documentation states: “To accomplish this a writer can be configured with a DataSetKeyFrameCount value other than 0. If this is the case, all values are sent in the first message, and then every DataSetKeyFrameCount number of messages later,” we initially assumed that reconfiguring the DataSetKeyFrameCount for an existing DataSetWriter would trigger a KeyFrame. However, this interpretation was incorrect because DataSetKeyFrameCount can only be defined when creating the DataSetWriter and cannot be changed afterwards. Furthermore, we decided against this approach, as we do not want to constantly send KeyFrames, and resetting the DataSetKeyFrameCount would introduce additional complexity.

Additional context
Add any other context or screenshots about the feature request here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions