From 7e2a5697b48b36624e4627b08e0eec60a488b6dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E5=85=86=E5=B0=89?= <228127304@qq.com> Date: Wed, 26 Aug 2026 23:04:26 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20Mag2=20=E7=8E=AF=E7=BA=BF=E8=A1=A5?= =?UTF-8?q?=E9=94=81=E5=A4=B1=E8=B4=A5=E6=97=B6=E4=B8=8D=E5=86=8D=E6=B4=BE?= =?UTF-8?q?=E8=BD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TrafficReset 失败则跳过 AssignCarToTarget,避免无锁占用仍打上 goalSite。 Co-authored-by: Cursor --- .../Chained/Mag2LoopMission.cs | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/StandardScene.Magnetic/Chained/Mag2LoopMission.cs b/StandardScene.Magnetic/Chained/Mag2LoopMission.cs index 65066bd..292ed94 100644 --- a/StandardScene.Magnetic/Chained/Mag2LoopMission.cs +++ b/StandardScene.Magnetic/Chained/Mag2LoopMission.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; using Newtonsoft.Json; +using LessokajiWeaverUtilities.Utilities; using SimpleCore; using SimpleCore.Library; using Simple3; @@ -64,9 +65,9 @@ namespace StandardScene /// protected override void AssignCarToTarget(Car car, int targetSiteId) { - if (car is Mag2Car mag2) + if (car is Mag2Car mag2 && !EnsureMag2HoldingCurrentSite(mag2)) { - EnsureMag2HoldingCurrentSite(mag2); + return; } base.AssignCarToTarget(car, targetSiteId); @@ -183,26 +184,31 @@ namespace StandardScene }; } - private static void EnsureMag2HoldingCurrentSite(Mag2Car car) + private static bool EnsureMag2HoldingCurrentSite(Mag2Car car) { try { if (car.status?.holdingLocks != null && car.status.holdingLocks.Length == 1) - return; + return true; var siteId = car.siteID > 0 ? car.siteID : car.GetLastSite(); if (siteId <= 0) - return; + return false; var site = SimpleLib.GetSite(siteId); if (site == null) - return; + return false; car.TrafficReset(site, true, strict: false); + return true; } - catch (Exception) + catch (Exception ex) { - // 交管失败时仍允许打上 goalSite,后续 GoSite/状态机会再处理 + Diagnosis.Post( + $"Mag2 补交管锁失败,跳过派车 car={car?.id}:{ex.Message}", + "Mag2Loop", + true); + return false; } } }