From e6f1eb205862b834ba1747557a723fefff6ab881 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 12 十一月 2024 10:54:47 +0800
Subject: [PATCH] #

---
 zy-acs-common/src/main/java/com/zy/acs/common/constant/RedisConstant.java          |    2 
 zy-acs-manager/src/main/java/com/zy/acs/manager/fake/AgvSimulatorTask.java         |   46 ++++++++++++-----------
 zy-acs-manager/src/main/java/com/zy/acs/manager/common/config/SchedulerConfig.java |   23 +++++++++++
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvCmdService.java    |    3 +
 4 files changed, 50 insertions(+), 24 deletions(-)

diff --git a/zy-acs-common/src/main/java/com/zy/acs/common/constant/RedisConstant.java b/zy-acs-common/src/main/java/com/zy/acs/common/constant/RedisConstant.java
index 493f911..ed8155b 100644
--- a/zy-acs-common/src/main/java/com/zy/acs/common/constant/RedisConstant.java
+++ b/zy-acs-common/src/main/java/com/zy/acs/common/constant/RedisConstant.java
@@ -25,7 +25,7 @@
 
     public static final String DIGITAL_AGV_FLAG = "DIGITAL_AGV_FLAG";
 
-    public static final int CMD_TIMEOUT_LIMIT = 5000;
+    public static final int CMD_TIMEOUT_LIMIT = 10000;
 
     public static final String AGV_MAP_ASTAR_FLAG = "AGV_MAP_ASTAR_FLAG";
 
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/config/SchedulerConfig.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/config/SchedulerConfig.java
new file mode 100644
index 0000000..8ff7821
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/config/SchedulerConfig.java
@@ -0,0 +1,23 @@
+package com.zy.acs.manager.common.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
+
+/**
+ * Created by vincent on 11/12/2024
+ */
+@Configuration
+@EnableScheduling
+public class SchedulerConfig {
+
+    @Bean
+    public ThreadPoolTaskScheduler taskScheduler() {
+        ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
+        scheduler.setPoolSize(10);
+        scheduler.setThreadNamePrefix("scheduled-task-");
+        return scheduler;
+    }
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvCmdService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvCmdService.java
index 778ab28..0436a2a 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvCmdService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvCmdService.java
@@ -69,7 +69,8 @@
             } else {
                 return BaseResult.error();
             }
-        } catch (TimeoutException ex){
+        } catch (TimeoutException e){
+            log.error("AgvCmdService.requestProcess", e);
             return BaseResult.error();
         }
     }
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..308766e 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
@@ -126,34 +126,36 @@
      * @param action     褰撳墠鍔ㄤ綔
      */
     private void simulateRotating(Agv agv, AgvDetail agvDetail, Action action) throws InterruptedException {
-//        Double agvAngle = agvDetail.getAgvAngle();
-//        double actionAngle = Double.parseDouble(action.getParams());
 
+//        double totalAngle = Double.parseDouble(action.getParams());
+//        double stepAngle = 90.0;
+//        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)); // 鏍规嵁瑙掑害娑堣�楃數閲�
+//
+//            agvDetailService.updateById(agvDetail);
+//
+//            Thread.sleep(1000);
+//
+//            actionProgress += angleToRotate;
+//        }
 
+        double actionAngle = Double.parseDouble(action.getParams());
 
-        double totalAngle = Double.parseDouble(action.getParams()); // 鍋囪Action鏈塧ngle灞炴��
-        double stepAngle = 45.0; // 姣忕鏃嬭浆15搴︼紝鍏蜂綋鍊兼牴鎹渶姹傝皟鏁�
-        double actionProgress = 0.0;
+        double newAngle = (agvDetail.getAgvAngle() + actionAngle) % 360;
 
-        while (actionProgress < totalAngle) {
-            double angleToRotate = Math.min(stepAngle, totalAngle - actionProgress);
-            // 鏇存柊AGV鐨勮搴�
-            double newAngle = (agvDetail.getAgvAngle() + angleToRotate) % 360;
-            agvDetail.setAgvAngle(newAngle);
+        agvDetail.setAgvAngle(newAngle);
+        agvDetailService.updateById(agvDetail);
 
-            // 妯℃嫙鐢甸噺娑堣��
-//            agvDetail.setVol(agvDetail.getVol() - 0.05 * (angleToRotate / 15.0)); // 鏍规嵁瑙掑害娑堣�楃數閲�
+        Thread.sleep(1000);
 
-            // 鏇存柊AGV璇︾粏淇℃伅
-            agvDetailService.updateById(agvDetail);
-
-            // 妯℃嫙瀹為檯鎵ц鏃堕棿
-            Thread.sleep(1000); // 姣忕鎵ц涓�娆�
-
-            actionProgress += angleToRotate;
-        }
-
-        // 鍔ㄤ綔瀹屾垚锛屾洿鏂扮姸鎬�
         action.setActionSts(ActionStsType.FINISH.val());
         actionService.updateById(action);
     }

--
Gitblit v1.9.1