1
wankeda
2025-04-11 0b43055b878416dfc3ac37138d39ae09a1d23364
´úÂë¹ÜÀí/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,12 @@
            }
        }
        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<byte[]>(elevatorNames[0], 100)[0];
            var agvSignal = agv.Communicator.Read<byte[]>(agvNames[1], 100)[0];
            agv.Communicator.Write(agvNames[0], elevatorSignal);
            elevator.Communicator.Write(agvNames[1], agvSignal);
@@ -73,7 +75,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 +106,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个信号
@@ -154,7 +156,7 @@
            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)
        {