From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点

---
 Aging.Infrastructure/Contracts/IDeviceService.cs |   81 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 81 insertions(+), 0 deletions(-)

diff --git a/Aging.Infrastructure/Contracts/IDeviceService.cs b/Aging.Infrastructure/Contracts/IDeviceService.cs
new file mode 100644
index 0000000..8d7b66e
--- /dev/null
+++ b/Aging.Infrastructure/Contracts/IDeviceService.cs
@@ -0,0 +1,81 @@
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace Aging.Infrastructure.Contracts
+{
+    /// <summary>
+    /// 璁惧鍛戒护鎵ц缁撴灉
+    /// </summary>
+    public sealed class DeviceCommandResult
+    {
+        /// <summary>
+        /// 鍛戒护鏄惁鎵ц鎴愬姛
+        /// </summary>
+        public bool Success { get; set; }
+
+        /// <summary>
+        /// 璁惧鍘熷鍝嶅簲瀛楃涓�
+        /// </summary>
+        public string? RawResponse { get; set; }
+
+        /// <summary>
+        /// 鍥炶鍊硷紙瑙f瀽鍚庣殑鏈夋晥鏁版嵁锛�
+        /// </summary>
+        public string? Readback { get; set; }
+
+        /// <summary>
+        /// 閿欒浠g爜
+        /// </summary>
+        public string? ErrorCode { get; set; }
+
+        /// <summary>
+        /// 閿欒淇℃伅
+        /// </summary>
+        public string? ErrorMessage { get; set; }
+
+        /// <summary>
+        /// 鍛戒护鎵ц寤惰繜锛堟绉掞級
+        /// </summary>
+        public double LatencyMs { get; set; }
+    }
+
+    /// <summary>
+    /// 璁惧鏈嶅姟鎺ュ彛銆�
+    /// 鎻愪緵鍩轰簬璧勬簮棰勭害鐨勫懡浠ゆ墽琛屽拰瀹夊叏鍏虫満鍔熻兘锛屽崗璋冭祫婧愮鐞嗗拰璁惧椹卞姩銆�
+    /// </summary>
+    public interface IDeviceService
+    {
+        /// <summary>
+        /// 寮傛鎵ц璁惧鍛戒护銆�
+        /// 闇�瑕佹湁鏁堢殑璧勬簮棰勭害鎵嶈兘鎵ц銆�
+        /// </summary>
+        /// <param name="deviceId">璁惧鏍囪瘑绗�</param>
+        /// <param name="command">鍛戒护瀛楃涓�</param>
+        /// <param name="owner">鎵�鏈夎�呬护鐗�</param>
+        /// <param name="ct">鍙栨秷浠ょ墝</param>
+        /// <returns>鍛戒护鎵ц缁撴灉</returns>
+        Task<DeviceCommandResult> ExecuteCommandAsync(
+            string deviceId, string command, ResourceOwnerToken owner, CancellationToken ct);
+
+        /// <summary>
+        /// 寮傛鎵ц璁惧鏌ヨ銆�
+        /// 闇�瑕佹湁鏁堢殑璧勬簮棰勭害鎵嶈兘鎵ц銆�
+        /// </summary>
+        /// <param name="deviceId">璁惧鏍囪瘑绗�</param>
+        /// <param name="query">鏌ヨ瀛楃涓�</param>
+        /// <param name="owner">鎵�鏈夎�呬护鐗�</param>
+        /// <param name="ct">鍙栨秷浠ょ墝</param>
+        /// <returns>鍛戒护鎵ц缁撴灉</returns>
+        Task<DeviceCommandResult> ExecuteQueryAsync(
+            string deviceId, string query, ResourceOwnerToken owner, CancellationToken ct);
+
+        /// <summary>
+        /// 寮傛瀹夊叏鍏抽棴璁惧銆�
+        /// 鎵ц璁惧鐗瑰畾鐨勫叧鏈哄簭鍒楋紝纭繚璁惧澶勪簬瀹夊叏鐘舵�併��
+        /// </summary>
+        /// <param name="deviceId">璁惧鏍囪瘑绗�</param>
+        /// <param name="owner">鎵�鏈夎�呬护鐗�</param>
+        /// <param name="ct">鍙栨秷浠ょ墝</param>
+        Task SafeShutdownAsync(string deviceId, ResourceOwnerToken owner, CancellationToken ct);
+    }
+}

--
Gitblit v1.9.1