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