using System.Threading;
|
using System.Threading.Tasks;
|
|
namespace Aging.Infrastructure.Contracts
|
{
|
/// <summary>
|
/// 设备管理接口。
|
/// 提供设备驱动的注册、连接管理和状态查询功能。
|
/// </summary>
|
public interface IDeviceManager
|
{
|
/// <summary>
|
/// 根据设备ID获取设备驱动实例
|
/// </summary>
|
/// <param name="deviceId">设备标识符</param>
|
/// <returns>设备驱动实例,不存在时返回 null</returns>
|
IDeviceDriver? GetDriver(string deviceId);
|
|
/// <summary>
|
/// 获取设备当前状态
|
/// </summary>
|
/// <param name="deviceId">设备标识符</param>
|
/// <returns>设备驱动状态</returns>
|
DeviceDriverStatus GetStatus(string deviceId);
|
|
/// <summary>
|
/// 注册设备驱动
|
/// </summary>
|
/// <param name="deviceId">设备标识符</param>
|
/// <param name="driver">设备驱动实例</param>
|
void RegisterDriver(string deviceId, IDeviceDriver driver);
|
|
/// <summary>
|
/// 注销设备驱动
|
/// </summary>
|
/// <param name="deviceId">设备标识符</param>
|
void UnregisterDriver(string deviceId);
|
|
/// <summary>
|
/// 异步连接设备
|
/// </summary>
|
/// <param name="deviceId">设备标识符</param>
|
/// <param name="ct">取消令牌</param>
|
Task ConnectAsync(string deviceId, CancellationToken ct);
|
|
/// <summary>
|
/// 异步断开设备连接
|
/// </summary>
|
/// <param name="deviceId">设备标识符</param>
|
Task DisconnectAsync(string deviceId);
|
|
/// <summary>
|
/// 获取所有已注册设备的ID列表
|
/// </summary>
|
/// <returns>设备ID只读列表</returns>
|
IReadOnlyList<string> GetRegisteredDevices();
|
|
/// <summary>
|
/// 检查设备是否已注册
|
/// </summary>
|
/// <param name="deviceId">设备标识符</param>
|
/// <returns>设备是否已注册</returns>
|
bool IsDeviceRegistered(string deviceId);
|
}
|
}
|