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