Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Client Subscription and MonitoredItem API #1223

Merged
merged 80 commits into from
Mar 1, 2024

Conversation

kevinherron
Copy link
Contributor

@kevinherron kevinherron commented Feb 13, 2024

Implement a new client Subscription and MonitoredItem API.

The original implementation (OpcUaSubscriptionManager, OpcUaSubscription, OpcUaMonitoredItem) is functional but has a difficult to use asynchronous/non-blocking API.

The "Managed" API was built on top of that, in an attempt to provide an easier to use API, but neither API properly addresses the race condition that exists between creation of a MonitoredItem and hooking up a listener.

Between the 2 implementations there's something like 8 listener interfaces at this point.

This new API is a fresh start that provides an easy to use synchronous/blocking API, fixes the race conditions, and provides a sane set of callbacks to to implement. It also takes care of batching using the server operation limits when creating, modifying, and deleting monitored items or when changing the monitoring mode.

@kevinherron kevinherron marked this pull request as draft February 14, 2024 14:02
@kevinherron kevinherron marked this pull request as ready for review March 1, 2024 00:43
@kevinherron kevinherron merged commit d3eab6d into dev/1.0 Mar 1, 2024
2 checks passed
@andvasp andvasp mentioned this pull request Jun 28, 2024
10 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant