Files
DMS/DMS.Infrastructure/Interfaces/Services/IOpcUaService.cs
2025-09-01 21:03:34 +08:00

25 lines
1.1 KiB
C#

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<List<OpcUaNode>> BrowseNode(OpcUaNode? nodeToBrowse);
void SubscribeToNode(OpcUaNode node, Action<OpcUaNode> onDataChange, int publishingInterval = 1000, int samplingInterval = 500);
void SubscribeToNode(List<OpcUaNode> nodes, Action<OpcUaNode> onDataChange, int publishingInterval = 1000, int samplingInterval = 500);
void UnsubscribeFromNode(OpcUaNode node);
void UnsubscribeFromNode(List<OpcUaNode> nodes);
List<OpcUaNode> GetSubscribedNodes();
Task ReadNodeValueAsync(OpcUaNode node);
Task ReadNodeValuesAsync(List<OpcUaNode> nodes);
Task<bool> WriteNodeValueAsync(OpcUaNode node, object value);
Task<bool> WriteNodeValuesAsync(Dictionary<OpcUaNode, object> nodesToWrite);
}
}