using System.Threading;
using System.Threading.Tasks;
namespace Aging.Infrastructure.Contracts
{
///
/// 设备命令执行结果
///
public sealed class DeviceCommandResult
{
///
/// 命令是否执行成功
///
public bool Success { get; set; }
///
/// 设备原始响应字符串
///
public string? RawResponse { get; set; }
///
/// 回读值(解析后的有效数据)
///
public string? Readback { get; set; }
///
/// 错误代码
///
public string? ErrorCode { get; set; }
///
/// 错误信息
///
public string? ErrorMessage { get; set; }
///
/// 命令执行延迟(毫秒)
///
public double LatencyMs { get; set; }
}
///
/// 设备服务接口。
/// 提供基于资源预约的命令执行和安全关机功能,协调资源管理和设备驱动。
///
public interface IDeviceService
{
///
/// 异步执行设备命令。
/// 需要有效的资源预约才能执行。
///
/// 设备标识符
/// 命令字符串
/// 所有者令牌
/// 取消令牌
/// 命令执行结果
Task ExecuteCommandAsync(
string deviceId, string command, ResourceOwnerToken owner, CancellationToken ct);
///
/// 异步执行设备查询。
/// 需要有效的资源预约才能执行。
///
/// 设备标识符
/// 查询字符串
/// 所有者令牌
/// 取消令牌
/// 命令执行结果
Task ExecuteQueryAsync(
string deviceId, string query, ResourceOwnerToken owner, CancellationToken ct);
///
/// 异步安全关闭设备。
/// 执行设备特定的关机序列,确保设备处于安全状态。
///
/// 设备标识符
/// 所有者令牌
/// 取消令牌
Task SafeShutdownAsync(string deviceId, ResourceOwnerToken owner, CancellationToken ct);
}
}