namespace Aging.Infrastructure.Contracts { /// /// 设备驱动状态信息 /// public sealed class DeviceDriverStatus { /// /// 设备是否已连接 /// public bool IsConnected { get; set; } /// /// 设备是否健康(无故障) /// public bool IsHealthy { get; set; } /// /// 最后一次错误信息 /// public string LastError { get; set; } = ""; /// /// 最后一次错误发生的时间 /// public DateTime? LastErrorTime { get; set; } /// /// 通信延迟(毫秒) /// public double LatencyMs { get; set; } /// /// 重连次数 /// public int ReconnectCount { get; set; } } /// /// 设备连接状态变化事件参数 /// public sealed class DeviceConnectionEventArgs : EventArgs { /// /// 设备标识符 /// public string DeviceId { get; set; } = ""; /// /// 是否已连接 /// public bool IsConnected { get; set; } /// /// 状态变化原因(可选) /// public string? Reason { get; set; } } /// /// 设备驱动统一接口。 /// 所有硬件设备驱动必须实现此接口,提供连接、断开、命令发送和查询功能。 /// public interface IDeviceDriver : IDisposable { /// /// 设备唯一标识符 /// string DeviceId { get; } /// /// 设备当前是否已连接 /// bool IsConnected { get; } /// /// 异步连接设备 /// /// 取消令牌 Task ConnectAsync(CancellationToken ct); /// /// 异步断开设备连接 /// Task DisconnectAsync(); /// /// 发送命令到设备 /// /// 命令字符串 /// 取消令牌 /// 设备响应字符串 Task SendCommandAsync(string command, CancellationToken ct); /// /// 向设备发送查询并获取响应 /// /// 查询字符串 /// 取消令牌 /// 设备查询响应字符串 Task QueryAsync(string query, CancellationToken ct); /// /// 获取设备当前状态信息 /// /// 设备驱动状态 DeviceDriverStatus GetStatus(); /// /// 设备连接状态变化事件 /// event EventHandler? ConnectionChanged; } }