1
wankeda
2025-04-11 0784c98220306a87a6017bfa114e2a9c0e91c31c
´úÂë¹ÜÀí/NEWCode/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ElevatorJob/ElevatorJob.cs
@@ -15,7 +15,8 @@
        public Task Execute(IJobExecutionContext context)
        {
            // ä»Žä¸Šä¸‹æ–‡ä¸­èŽ·å– JobParams å¹¶è½¬æ¢ä¸º Roast ç±»åž‹
            CommonElevator elevator = (CommonElevator)context.JobDetail.JobDataMap.Get("JobParams");
            //CommonElevator elevator = (CommonElevator)context.JobDetail.JobDataMap.Get("JobParams");
            CommonRoast elevator = (CommonRoast)context.JobDetail.JobDataMap.Get("JobParams");
            // åˆå§‹åŒ– AGV å˜é‡
            AGV agv = null;
@@ -26,7 +27,7 @@
            // è¿žæŽ¥ AGV
            // æ ¹æ®è®¾å¤‡åç§°å†³å®šæ˜¯æ­£æžè¿˜æ˜¯è´Ÿæž AGV
            List<string> agvNames = new List<string>() { "正极AGV", "负极AGV" };
            List<string> agvNames = new List<string>() {  "负极AGV" }; //"正极AGV",
            foreach (var agvName in agvNames)
            {
                // ä»Žå­˜å‚¨ä¸­æŸ¥æ‰¾æŒ‡å®šåç§°çš„设备
@@ -48,7 +49,7 @@
        }
        public static void DeviceInteraction(CommonElevator elevator, AGV agv, List<string> elevatorNames, List<string> agvNames)
        public static void DeviceInteraction(CommonRoast elevator, AGV agv, List<string> elevatorNames, List<string> agvNames)
        {
            if (agv.DeviceName == "正极AGV")
            {
@@ -60,11 +61,11 @@
            }
        }
        private static void HandlePositiveAGV(CommonElevator elevator, AGV agv, List<string> elevatorNames, List<string> agvNames)
        private static void HandlePositiveAGV(CommonRoast elevator, AGV agv, List<string> elevatorNames, List<string> agvNames)
        {
            // æ­£æžAGV只需要处理前两个信号
            var elevatorSignal = elevator.Communicator.Read<byte>(elevatorNames[0], 100);
            var agvSignal = agv.Communicator.Read<byte>(agvNames[1], 100);
            var elevatorSignal = elevator.Communicator.Read(elevatorNames[0], 100);
            var agvSignal = agv.Communicator.Read(agvNames[1], 100);
            agv.Communicator.Write(agvNames[0], elevatorSignal);
            elevator.Communicator.Write(agvNames[1], agvSignal);
@@ -73,7 +74,7 @@
                                       $"写入AGV信号[{agvSignal}]到{agvNames[1]}");
        }
        private static void HandleNegativeAGV(CommonElevator elevator, AGV agv, List<string> elevatorNames, List<string> agvNames)
        private static void HandleNegativeAGV(CommonRoast elevator, AGV agv, List<string> elevatorNames, List<string> agvNames)
        {
            // å®šä¹‰ä¿¡å·ç»„处理(起始索引,操作类型,日志描述)
            var operations = new List<(int startIdx, string type, string desc)>
@@ -104,7 +105,7 @@
            }
        }
        private static void ProcessSignalGroup(CommonElevator elevator, AGV agv, List<string> elevatorNames, List<string> agvNames, int startIdx, string operationType, string description)
        private static void ProcessSignalGroup(CommonRoast elevator, AGV agv, List<string> elevatorNames, List<string> agvNames, int startIdx, string operationType, string description)
        {
            const int GROUP_SIZE = 2; // æ¯ç»„处理2个信号
@@ -126,7 +127,7 @@
                    int idx = startIdx + i;
                    if (idx >= elevatorNames.Count) break;
                    var value = elevator.Communicator.Read<byte>(elevatorNames[idx], 100);
                    var value = elevator.Communicator.Read(elevatorNames[idx], 100);
                    agv.Communicator.Write(agvNames[idx], value);
                    values.Add(value);
                    targets.Add(agvNames[idx]);
@@ -140,7 +141,7 @@
                    int idx = startIdx + i;
                    if (idx >= agvNames.Count) break;
                    var value = agv.Communicator.Read<byte>(agvNames[idx], 100);
                    var value = agv.Communicator.Read(agvNames[idx], 100);
                    elevator.Communicator.Write(elevatorNames[idx], value);
                    values.Add(value);
                    targets.Add(elevatorNames[idx]);
@@ -154,13 +155,13 @@
            ConsoleHelper.WriteInfoLine($"负极AGV交互({description}): ä¼ è¾“信号组[{logValues}]到目标地址[{logTargets}]");
        }
        private static void HandleSpecialSignals(CommonElevator elevator, AGV agv,
        private static void HandleSpecialSignals(CommonRoast elevator, AGV agv,
                                                List<string> elevatorNames, List<string> agvNames,
                                                int startIdx)
        {
            // å¤„理18-21号电梯信号(4个信号)
            var elevatorSignals = Enumerable.Range(18, 4)
                .Select(i => elevator.Communicator.Read<byte>(elevatorNames[i], 100))
                .Select(i => elevator.Communicator.Read(elevatorNames[i], 100))
                .ToList();
            for (int i = 0; i < 4; i++)
@@ -170,7 +171,7 @@
            // å¤„理22-23号AGV信号
            var agvSignals = Enumerable.Range(22, 2)
                .Select(i => agv.Communicator.Read<byte>(agvNames[i], 100))
                .Select(i => agv.Communicator.Read(agvNames[i], 100))
                .ToList();
            for (int i = 0; i < 2; i++)