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