using DMS.Infrastructure.Models; using System; using System.Collections.Generic; using System.Threading.Tasks; namespace DMS.Infrastructure.Interfaces.Services { public interface IOpcUaService { bool IsConnected { get; } Task ConnectAsync(string serviceURL); Task DisconnectAsync(); Task> BrowseNode(OpcUaNode? nodeToBrowse); void SubscribeToNode(OpcUaNode node, Action onDataChange, int publishingInterval = 1000, int samplingInterval = 500); void SubscribeToNode(List nodes, Action onDataChange, int publishingInterval = 1000, int samplingInterval = 500); void UnsubscribeFromNode(OpcUaNode node); void UnsubscribeFromNode(List nodes); List GetSubscribedNodes(); Task ReadNodeValueAsync(OpcUaNode node); Task ReadNodeValuesAsync(List nodes); Task WriteNodeValueAsync(OpcUaNode node, object value); Task WriteNodeValuesAsync(Dictionary nodesToWrite); } }