From ad64840cc04dac2278ca02f22ddc02b1a218e9cf Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期三, 15 四月 2026 22:44:18 +0800
Subject: [PATCH] feat(机器人任务): 实现换盘任务假电芯补充逻辑

---
 Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotSocketState.cs |  126 +++++++++++++++++++++++++++++++++++++-----
 1 files changed, 111 insertions(+), 15 deletions(-)

diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotSocketState.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotSocketState.cs
index d4077a5..6697b01 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotSocketState.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotSocketState.cs
@@ -4,86 +4,182 @@
 namespace WIDESEAWCS_Tasks
 {
     /// <summary>
-    /// 鏈烘鎵婼ocket閫氫俊鐘舵��
+    /// 鏈烘鎵� Socket 閫氫俊鐘舵�佹暟鎹被
     /// </summary>
+    /// <remarks>
+    /// 璇ョ被鐢ㄤ簬鍦� Redis 缂撳瓨涓瓨鍌ㄦ満姊版墜鐨勫疄鏃剁姸鎬侊紝鍖呮嫭浣嶇疆銆佷换鍔°�佹墜鑷傚璞$瓑淇℃伅銆�
+    /// 鎵�鏈夊睘鎬у潎璁捐涓虹嚎绋嬪畨鍏ㄦ洿鏂帮紝閫氳繃 <see cref="RobotStateManager"/> 鐨勭増鏈帶鍒舵満鍒舵潵闃叉骞跺彂瑕嗙洊銆�
+    /// </remarks>
     public class RobotSocketState
     {
+        /// <summary>
+        /// 鏈烘鎵嬬殑 IP 鍦板潃锛屼綔涓虹紦瀛橀敭鐨勫敮涓�鏍囪瘑
+        /// </summary>
         public string IPAddress { get; set; } = string.Empty;
 
         /// <summary>
-        /// 鐗堟湰鍙凤紝鐢ㄤ簬闃叉骞跺彂鏇存柊鏃舵棫鍊艰鐩栨柊鍊�
-        /// 姣忔淇敼鐘舵�佹椂閮藉簲璇ユ洿鏂版鍊�
+        /// 鐗堟湰鍙凤紝鐢ㄤ簬涔愯骞跺彂鎺у埗
         /// </summary>
+        /// <remarks>
+        /// 姣忔淇敼鐘舵�佹椂鏇存柊涓� DateTime.UtcNow.Ticks銆�
+        /// <see cref="RobotStateManager"/> 浣跨敤姝ゅ瓧娈靛疄鐜颁箰瑙傞攣锛岄槻姝㈠苟鍙戞洿鏂版椂鏃у�艰鐩栨柊鍊笺��
+        /// </remarks>
         public long Version { get; set; } = DateTime.UtcNow.Ticks;
 
         /// <summary>
-        /// 鏄惁宸茶闃呮秷鎭簨浠�
+        /// 鏄惁宸茶闃呮秷鎭簨浠舵爣蹇�
         /// </summary>
+        /// <remarks>
+        /// 纭繚姣忎釜瀹㈡埛绔彧鍚姩涓�娆℃秷鎭鐞嗗惊鐜紝閬垮厤閲嶅璁㈤槄瀵艰嚧鐨勬秷鎭噸澶嶅鐞嗐��
+        /// </remarks>
         public bool IsEventSubscribed { get; set; }
 
         /// <summary>
         /// 鏈烘鎵嬭繍琛屾ā寮�
         /// </summary>
+        /// <remarks>
+        /// 1: 鎵嬪姩妯″紡
+        /// 2: 鑷姩妯″紡
+        /// 褰� RobotRunMode == 2 涓� RobotControlMode == 1 鏃讹紝绯荤粺杩涘叆鑷姩鎺у埗鐘舵�併��
+        /// </remarks>
         public int? RobotRunMode { get; set; }
 
         /// <summary>
         /// 鏈烘鎵嬫帶鍒舵ā寮�
         /// </summary>
+        /// <remarks>
+        /// 1: 瀹㈡埛绔帶鍒�
+        /// 2: 鏈煡/鍏朵粬
+        /// 涓� RobotRunMode 閰嶅悎鍒ゆ柇鏈哄櫒浜虹殑褰撳墠鎺у埗鐘舵�併��
+        /// </remarks>
         public int? RobotControlMode { get; set; }
 
         /// <summary>
-        /// 鏈烘鎵嬫槸鍚︽姄鍙栫墿鏂欙紝0-鏃犵墿鏂欙紝1-鏈夌墿鏂�
+        /// 鏈烘鎵嬫墜鑷傛姄鍙栧璞$姸鎬�
         /// </summary>
+        /// <remarks>
+        /// 0: 鏃犵墿鏂欙紙鎵嬭噦绌洪棽锛�
+        /// 1: 鏈夌墿鏂欙紙宸叉姄鍙栬揣鐗╋級
+        /// 鐢ㄤ簬鍒ゆ柇鏈哄櫒浜烘槸鍚﹀彲浠ユ墽琛屼笅涓�姝ュ姩浣溿��
+        /// </remarks>
         public int? RobotArmObject { get; set; }
 
         /// <summary>
-        /// 鏈烘鎵嬭澶囦俊鎭�
+        /// 鏈烘鎵嬭澶囧熀纭�淇℃伅
         /// </summary>
+        /// <remarks>
+        /// 鍖呭惈璁惧鐨� DeviceCode銆丏eviceName銆両PAddress 绛夊熀纭�淇℃伅銆�
+        /// 鍦ㄧ姸鎬佸垵濮嬪寲鏃朵粠 JobDetail.JobDataMap 鑾峰彇骞剁紦瀛樸��
+        /// </remarks>
         public RobotCraneDevice? RobotCrane { get; set; }
 
         /// <summary>
-        /// 褰撳墠鍔ㄤ綔
+        /// 鏈烘鎵嬪垵濮嬪寲瀹屾垚鍥炲埌寰呮満浣�
         /// </summary>
+        /// <remarks>
+        /// 鍙兘鐨勫�硷細
+        /// - "Homed": 宸插洖闆�
+        /// - "Homing": 鍥為浂涓�
+        /// </remarks>
+        public string? Homed { get; set; }
+
+        /// <summary>
+        /// 鏈烘鎵嬪綋鍓嶆鍦ㄦ墽琛岀殑鍔ㄤ綔
+        /// </summary>
+        /// <remarks>
+        /// 鍙兘鐨勫�硷細
+        /// - "Picking": 鍙栬揣涓�
+        /// - "Putting": 鏀捐揣涓�
+        /// - "PickFinished": 鍙栬揣瀹屾垚
+        /// - "PutFinished": 鏀捐揣瀹屾垚
+        /// - "AllPickFinished": 鍏ㄩ儴鍙栬揣瀹屾垚
+        /// - "AllPutFinished": 鍏ㄩ儴鏀捐揣瀹屾垚
+        /// </remarks>
         public string? CurrentAction { get; set; }
 
         /// <summary>
-        /// 褰撳墠鐘舵��
+        /// 鏈烘鎵嬪綋鍓嶈繍琛岀姸鎬�
         /// </summary>
+        /// <remarks>
+        /// 鍙兘鐨勫�硷細
+        /// - "Homing": 鍥為浂涓�
+        /// - "Homed": 宸插洖闆�
+        /// - "Running": 杩愯涓�
+        /// - "Pausing": 鏆傚仠涓�
+        /// - "Warming": 棰勭儹涓�
+        /// - "Emstoping": 鎬ュ仠涓�
+        /// </remarks>
         public string? OperStatus { get; set; }
 
         /// <summary>
-        /// 鍙栬揣瀹屾垚浣嶇疆
+        /// 鏈�杩戜竴娆″彇璐у畬鎴愮殑浣嶇疆鏁扮粍
         /// </summary>
+        /// <remarks>
+        /// 鏁扮粍涓殑姣忎釜鍏冪礌浠h〃涓�涓數姹犱綅缃紪鍙枫��
+        /// 鐢ㄤ簬璁板綍鍙栬揣鍔ㄤ綔娑夊強鐨勮揣浣嶏紝渚涘悗缁粍鐩�/鎷嗙洏鎿嶄綔浣跨敤銆�
+        /// </remarks>
         public int[]? LastPickPositions { get; set; }
 
         /// <summary>
-        /// 鏀捐揣瀹屾垚浣嶇疆
+        /// 鏈�杩戜竴娆℃斁璐у畬鎴愮殑浣嶇疆鏁扮粍
         /// </summary>
+        /// <remarks>
+        /// 鏁扮粍涓殑姣忎釜鍏冪礌浠h〃涓�涓數姹犱綅缃紪鍙枫��
+        /// 鐢ㄤ簬璁板綍鏀捐揣鍔ㄤ綔娑夊強鐨勮揣浣嶃��
+        /// </remarks>
         public int[]? LastPutPositions { get; set; }
 
         /// <summary>
-        /// 鎶撳彇浣嶇疆鏉$爜
+        /// 鐢垫睜/璐т綅鏉$爜鍒楄〃
         /// </summary>
+        /// <remarks>
+        /// 鍦ㄧ粍鐩樻搷浣滄椂鐢ㄤ簬璁板綍鐢熸垚鐨勬墭鐩樻潯鐮併��
+        /// 姣忎釜鏉$爜鏍煎紡涓� "TRAY" + 鏃ユ湡 + 鏃堕棿 + 闅忔満鏁般��
+        /// </remarks>
         public List<string> CellBarcode { get; set; } = new List<string>();
 
         /// <summary>
-        /// 褰撳墠鎶撳彇浠诲姟
+        /// 鏈烘鎵嬪綋鍓嶆鍦ㄦ墽琛岀殑浠诲姟
         /// </summary>
+        /// <remarks>
+        /// 褰撲换鍔′笅鍙戝埌鏈哄櫒浜哄悗锛岃瀛楁淇濆瓨浠诲姟璇︽儏銆�
+        /// 浠诲姟绫诲瀷鍖呮嫭锛氱粍鐩�(500)銆佹崲鐩�(510)銆佹媶鐩�(520)銆�
+        /// </remarks>
         public Dt_RobotTask? CurrentTask { get; set; }
 
         /// <summary>
-        /// 鏄惁闇�瑕佹媶鐩�
+        /// 鏄惁闇�瑕佹墽琛屾媶鐩樹换鍔�
         /// </summary>
+        /// <remarks>
+        /// 褰撲换鍔$被鍨嬩负 SplitPallet (520) 鏃惰涓� true銆�
+        /// 鎷嗙洏浠诲姟灏嗙數姹犱粠鎵樼洏涓婂彇涓嬪苟閫愪釜鏀剧疆鍒扮洰鏍囦綅缃��
+        /// </remarks>
         public bool IsSplitPallet { get; set; }
 
         /// <summary>
-        /// 鏄惁闇�瑕佺粍鐩�
+        /// 鏄惁闇�瑕佹墽琛岀粍鐩樹换鍔�
         /// </summary>
+        /// <remarks>
+        /// 褰撲换鍔$被鍨嬩负 GroupPallet (500) 鎴� ChangePallet (510) 鏃惰涓� true銆�
+        /// 缁勭洏浠诲姟灏嗗涓數姹犵粍鍚堝埌鍚屼竴涓墭鐩樹笂銆�
+        /// </remarks>
         public bool IsGroupPallet { get; set; }
 
         /// <summary>
-        /// 浠诲姟鎬绘暟
+        /// 鏈哄櫒浜哄凡澶勭悊鐨勪换鍔℃�绘暟
         /// </summary>
+        /// <remarks>
+        /// 绱璁板綍鏈哄櫒浜哄凡瀹屾垚澶勭悊鐨勭數姹�/璐х墿鏁伴噺銆�
+        /// 褰撹揪鍒� MaxTaskTotalNum (48) 鏃讹紝涓嶅啀涓嬪彂鏂颁换鍔°��
+        /// </remarks>
         public int RobotTaskTotalNum { get; set; }
+
+        /// <summary>
+        /// 鏄惁澶勪簬鍋囩數鑺ˉ鍏呮ā寮�
+        /// </summary>
+        /// <remarks>
+        /// 褰撴甯哥數鑺换鍔″畬鎴愬悗璁句负 true锛屾満鍣ㄤ汉浠庡亣鐢佃姱浣嶇疆琛ュ厖鐢佃姱鑷�48涓��
+        /// </remarks>
+        public bool IsInFakeBatteryMode { get; set; }
     }
 }

--
Gitblit v1.9.3