重新设计OpcUaBackgroundService后台服务

This commit is contained in:
2025-09-04 21:04:27 +08:00
parent 7fbc99c273
commit 4e73488e8f
7 changed files with 688 additions and 94 deletions

View File

@@ -0,0 +1,70 @@
using DMS.Application.DTOs;
using DMS.Infrastructure.Models;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace DMS.Infrastructure.Interfaces.Services
{
/// <summary>
/// 定义OPC UA服务管理器的接口
/// </summary>
public interface IOpcUaServiceManager : IDisposable
{
/// <summary>
/// 初始化服务管理器
/// </summary>
Task InitializeAsync(CancellationToken cancellationToken = default);
/// <summary>
/// 添加设备到监控列表
/// </summary>
void AddDevice(DeviceDto device);
/// <summary>
/// 移除设备监控
/// </summary>
Task RemoveDeviceAsync(int deviceId, CancellationToken cancellationToken = default);
/// <summary>
/// 更新设备变量
/// </summary>
void UpdateVariables(int deviceId, List<VariableDto> variables);
/// <summary>
/// 获取设备连接状态
/// </summary>
bool IsDeviceConnected(int deviceId);
/// <summary>
/// 重新连接设备
/// </summary>
Task ReconnectDeviceAsync(int deviceId, CancellationToken cancellationToken = default);
/// <summary>
/// 获取所有监控的设备ID
/// </summary>
IEnumerable<int> GetMonitoredDeviceIds();
/// <summary>
/// 连接指定设备
/// </summary>
Task ConnectDeviceAsync(int deviceId, CancellationToken cancellationToken = default);
/// <summary>
/// 断开指定设备连接
/// </summary>
Task DisconnectDeviceAsync(int deviceId, CancellationToken cancellationToken = default);
/// <summary>
/// 批量连接设备
/// </summary>
Task ConnectDevicesAsync(IEnumerable<int> deviceIds, CancellationToken cancellationToken = default);
/// <summary>
/// 批量断开设备连接
/// </summary>
Task DisconnectDevicesAsync(IEnumerable<int> deviceIds, CancellationToken cancellationToken = default);
}
}