wankeda
2025-04-14 291f66df5621f0644ce9d15548eb6590045691f0
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ElevatorJob/ElevatorJob.cs
@@ -14,37 +14,46 @@
        public Task Execute(IJobExecutionContext context)
        {
            // ä»Žä¸Šä¸‹æ–‡ä¸­èŽ·å– JobParams å¹¶è½¬æ¢ä¸º Roast ç±»åž‹
            //CommonElevator elevator = (CommonElevator)context.JobDetail.JobDataMap.Get("JobParams");
            CommonRoast elevator = (CommonRoast)context.JobDetail.JobDataMap.Get("JobParams");
            // åˆå§‹åŒ– AGV å˜é‡
            AGV agv = null;
            if (elevator == null)
            try
            {
                throw new Exception("未找到提升机设备参数。");
                // ä»Žä¸Šä¸‹æ–‡ä¸­èŽ·å– JobParams å¹¶è½¬æ¢ä¸º Roast ç±»åž‹
                //CommonElevator elevator = (CommonElevator)context.JobDetail.JobDataMap.Get("JobParams");
                CommonRoast elevator = (CommonRoast)context.JobDetail.JobDataMap.Get("JobParams");
                // åˆå§‹åŒ– AGV å˜é‡
                AGV agv = null;
                if (elevator == null)
                {
                    throw new Exception("未找到提升机设备参数。");
                }
                // è¿žæŽ¥ AGV
                // æ ¹æ®è®¾å¤‡åç§°å†³å®šæ˜¯æ­£æžè¿˜æ˜¯è´Ÿæž AGV
                List<string> agvNames = new List<string>() { "正极AGV", "负极AGV" }; //"正极AGV",
                foreach (var agvName in agvNames)
                {
                    // ä»Žå­˜å‚¨ä¸­æŸ¥æ‰¾æŒ‡å®šåç§°çš„设备
                    IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceName == agvName);
                    if (device != null)
                    {
                        agv = (AGV)device;
                    }
                    else
                    {
                        ConsoleHelper.WriteErrorLine($"未找到{agvName}设备参数。");
                        continue;
                    }
                    var elevatorNamesValues = GetDBElevatorNamesValues(agvName);
                    var agvNamesValues = GetDBAGVNamesValues(agvName);
                    DeviceInteraction(elevator, agv, elevatorNamesValues, agvNamesValues);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            // è¿žæŽ¥ AGV
            // æ ¹æ®è®¾å¤‡åç§°å†³å®šæ˜¯æ­£æžè¿˜æ˜¯è´Ÿæž AGV
            List<string> agvNames = new List<string>() {  "负极AGV" }; //"正极AGV",
            foreach (var agvName in agvNames)
            {
                // ä»Žå­˜å‚¨ä¸­æŸ¥æ‰¾æŒ‡å®šåç§°çš„设备
                IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceName == agvName);
                if (device != null)
                {
                    agv = (AGV)device;
                }
                else
                {
                    ConsoleHelper.WriteErrorLine($"未找到{agvName}设备参数。");
                    continue;
                }
                var elevatorNamesValues = GetDBElevatorNamesValues(agvName);
                var agvNamesValues = GetDBAGVNamesValues(agvName);
                DeviceInteraction(elevator, agv, elevatorNamesValues, agvNamesValues);
            }
            return Task.CompletedTask;
        }
@@ -68,7 +77,7 @@
            var agvSignal = agv.Communicator.Read(agvNames[1], 100);
            agv.Communicator.Write(agvNames[0], elevatorSignal);
            elevator.Communicator.Write(agvNames[1], agvSignal);
            elevator.Communicator.Write(elevatorNames[1], agvSignal);
            ConsoleHelper.WriteInfoLine($"正极AGV交互: å†™å…¥ç”µæ¢¯ä¿¡å·[{elevatorSignal}]到{agvNames[0]}," +
                                       $"写入AGV信号[{agvSignal}]到{agvNames[1]}");
@@ -261,10 +270,10 @@
                    "DB1002.18600",
                    "DB1002.18500",
                    "DB1002.18700",
                    "DB1002.18000",
                    "DB1002.18800",
                    "DB1002.19000",
                    "DB1002.18200",
                    "DB1002.18000",
                    "DB1002.18900",
                    "DB1002.19100"
                };