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