From 2bdbfd1ac24d4e9a87daf6fb8b99ec32264d5752 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 21 十二月 2024 11:25:27 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/fake/AgvSimulatorTask.java |   53 ++++++++++++++++++++---------------------------------
 1 files changed, 20 insertions(+), 33 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/AgvSimulatorTask.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/AgvSimulatorTask.java
index 1b2b688..a19aff2 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/AgvSimulatorTask.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/AgvSimulatorTask.java
@@ -5,6 +5,8 @@
 import com.zy.acs.common.domain.protocol.AGV_11_UP;
 import com.zy.acs.common.enums.AgvCompleteType;
 import com.zy.acs.common.utils.RedisSupport;
+import com.zy.acs.manager.core.scheduler.MapDataWsScheduler;
+import com.zy.acs.manager.core.service.MapService;
 import com.zy.acs.manager.manager.entity.Action;
 import com.zy.acs.manager.manager.entity.Agv;
 import com.zy.acs.manager.manager.entity.AgvDetail;
@@ -14,6 +16,7 @@
 import com.zy.acs.manager.manager.service.ActionService;
 import com.zy.acs.manager.manager.service.AgvDetailService;
 import com.zy.acs.manager.manager.service.CodeService;
+import com.zy.acs.manager.manager.service.JamService;
 import lombok.extern.slf4j.Slf4j;
 
 import java.util.List;
@@ -29,6 +32,8 @@
     private final AgvDetailService agvDetailService;
     private final ActionService actionService;
     private final CodeService codeService;
+    private final MapService mapService;
+    private final JamService jamService;
     private final List<Action> actionList;
 
     private final RedisSupport redis;
@@ -41,6 +46,8 @@
             , AgvDetailService agvDetailService
             , ActionService actionService
             , CodeService codeService
+            , MapService mapService
+            , JamService jamService
             , List<Action> actionList
     ) {
         this.agv = agv;
@@ -48,6 +55,8 @@
         this.agvDetailService = agvDetailService;
         this.actionService = actionService;
         this.codeService = codeService;
+        this.mapService = mapService;
+        this.jamService = jamService;
         this.actionList = actionList;
 
         this.groupId = actionList.get(0).getGroupId();
@@ -78,6 +87,7 @@
 
         switch (Objects.requireNonNull(ActionTypeType.get(action.getActionTypeEl()))) {
             case TurnCorner:
+                simulateWalking(agv, agvDetail, action);
                 simulateRotating(agv, agvDetail, action);
                 break;
             case StraightBackUnturnable:
@@ -99,23 +109,21 @@
 
 
     private void simulateWalking(Agv agv, AgvDetail agvDetail, Action action) throws InterruptedException {
-        Code currCode = codeService.getById(agvDetail.getRecentCode());
         Code code = codeService.selectByData(action.getCode());
-
         agvDetail.setPos(1);
         agvDetail.setCode(code.getId());
-
         // 妯℃嫙鐢甸噺娑堣��
 //        agvDetail.setVol(agvDetail.getVol() - 0.1 * distanceToMove); // 鏍规嵁璺濈娑堣�楃數閲�
 
+        Thread.sleep(MapDataWsScheduler.WEBSOCKET_BROADCAST_INTERVAL);
+
         agvDetailService.updateById(agvDetail);
 
-        Thread.sleep(1000);
+        mapService.unlockPath(agv.getUuid(), code.getData());
+        jamService.checkIfFinish(agv.getId(), code.getData());
 
         action.setActionSts(ActionStsType.FINISH.val());
         actionService.updateById(action);
-
-
     }
 
     /**
@@ -126,34 +134,13 @@
      * @param action     褰撳墠鍔ㄤ綔
      */
     private void simulateRotating(Agv agv, AgvDetail agvDetail, Action action) throws InterruptedException {
-//        Double agvAngle = agvDetail.getAgvAngle();
-//        double actionAngle = Double.parseDouble(action.getParams());
+        double actionAngle = Double.parseDouble(action.getParams());
+        agvDetail.setAgvAngle(actionAngle);
+        // 妯℃嫙鐢甸噺娑堣��?
+//        agvDetail.setVol(agvDetail.getVol() - 0.05 * (angleToRotate / 15.0)); // 鏍规嵁瑙掑害娑堣�楃數閲�
 
-
-
-        double totalAngle = Double.parseDouble(action.getParams()); // 鍋囪Action鏈塧ngle灞炴��
-        double stepAngle = 45.0; // 姣忕鏃嬭浆15搴︼紝鍏蜂綋鍊兼牴鎹渶姹傝皟鏁�
-        double actionProgress = 0.0;
-
-        while (actionProgress < totalAngle) {
-            double angleToRotate = Math.min(stepAngle, totalAngle - actionProgress);
-            // 鏇存柊AGV鐨勮搴�
-            double newAngle = (agvDetail.getAgvAngle() + angleToRotate) % 360;
-            agvDetail.setAgvAngle(newAngle);
-
-            // 妯℃嫙鐢甸噺娑堣��
-//            agvDetail.setVol(agvDetail.getVol() - 0.05 * (angleToRotate / 15.0)); // 鏍规嵁瑙掑害娑堣�楃數閲�
-
-            // 鏇存柊AGV璇︾粏淇℃伅
-            agvDetailService.updateById(agvDetail);
-
-            // 妯℃嫙瀹為檯鎵ц鏃堕棿
-            Thread.sleep(1000); // 姣忕鎵ц涓�娆�
-
-            actionProgress += angleToRotate;
-        }
-
-        // 鍔ㄤ綔瀹屾垚锛屾洿鏂扮姸鎬�
+        Thread.sleep(MapDataWsScheduler.WEBSOCKET_BROADCAST_INTERVAL);
+        agvDetailService.updateById(agvDetail);
         action.setActionSts(ActionStsType.FINISH.val());
         actionService.updateById(action);
     }

--
Gitblit v1.9.1