From 9f225bb1f1e26d25c1652d3e1ec2a8f239f69615 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期二, 18 三月 2025 10:41:29 +0800
Subject: [PATCH] 1

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineExtend/AGVsignal.cs |   68 ++++++++++++++++++++++++++++++++-
 1 files changed, 65 insertions(+), 3 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineExtend/AGVsignal.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineExtend/AGVsignal.cs"
index 505baac..4cb0717 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineExtend/AGVsignal.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineExtend/AGVsignal.cs"
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing AutoMapper;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
@@ -6,12 +7,73 @@
 using WIDESEAWCS_Communicator;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_DTO.AGVInfo;
+using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.Service;
+using WIDESEAWCS_Tasks.ConveyorLineJob.ConveyorLineExtend;
 
-namespace WIDESEAWCS_Tasks.ConveyorLineJob.ConveyorLineExtend
+namespace WIDESEAWCS_Tasks
 {
-    public class AGVsignal
+    public partial class AGVsignal
     {
+        /// <summary>
+        /// AGV涓庤緭閫佺嚎浜や簰
+        /// </summary>
+        /// <param name="conveyor"></param>
+        /// <returns></returns>
+        public static WebResponseContent AGVRequestin(ConveyorLineDTO conveyor)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                if (conveyor == null) throw new Exception("璇锋眰鏁版嵁涓虹┖");
+                if (string.IsNullOrEmpty(conveyor.Station)) throw new Exception("绔欑偣缂栧彿涓虹┖");
+                CommonConveyorLine conveyorLine = Storage.Devices.FirstOrDefault(x => x.DeviceName == "杈撻�佺嚎") as CommonConveyorLine;
+                if (!conveyorLine.IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�");
+                switch (conveyor.Type)
+                {
+                    case 1:
+                        content.Status = conveyorLine.SetValue(ConveyorLine_AGV.WriteAGVRequestPut, true, conveyor.Station);
+                        if (content.Status) content.Status = conveyorLine.GetValue<ConveyorLine_AGV, bool>(ConveyorLine_AGV.ConveyorLinePermitPut, conveyor.Station);
+                        break;
+                    case 2:
+                        {
+                            content.Status = conveyorLine.SetValue(ConveyorLine_AGV.WriteAGVPutComplete, true, conveyor.Station);
+                            if (content.Status)
+                            {
+                                Thread.Sleep(1000);
+                                conveyorLine.SetValue(ConveyorLine_AGV.WriteAGVRequestPut, false, conveyor.Station);
+                                conveyorLine.SetValue(ConveyorLine_AGV.WriteAGVPutComplete, false, conveyor.Station);
+                            }
+                        }
+                        break;
+                    case 3:
+                        content.Status = conveyorLine.SetValue(ConveyorLine_AGV.WriteAGVRequestTake, true, conveyor.Station);
+                        if (content.Status) content.Status = conveyorLine.GetValue<ConveyorLine_AGV, bool>(ConveyorLine_AGV.ConveyorLinePermitTake, conveyor.Station);
+                        break;
+                    case 4:
+                        {
+                            content.Status = conveyorLine.SetValue(ConveyorLine_AGV.WriteAGVTakeComplete, true, conveyor.Station);
+                            if (content.Status)
+                            {
+                                Thread.Sleep(1000);
+                                conveyorLine.SetValue(ConveyorLine_AGV.WriteAGVRequestTake, false, conveyor.Station);
+                                conveyorLine.SetValue(ConveyorLine_AGV.WriteAGVTakeComplete, false, conveyor.Station);
+                            }
+                        }
+                        break;
+                    default: throw new Exception($"绫诲瀷鏈夎[Type锛歿conveyor.Type}]");
+                }
+                content = content.Status ? content.OK() : content.Error();
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+
         public static WebResponseContent AGVRequestin<T>(T conveyor) where T : ConveyorLineDTO, new()
         {
             WebResponseContent content = new WebResponseContent();

--
Gitblit v1.9.3