From 6cccaf401c49afcb77c138af3211f2f8c2fe797a Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 06 十二月 2024 14:14:21 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/fake/AgvSimulatorTask.java | 51 ++++++++++++++++++---------------------------------
1 files changed, 18 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 308766e..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,36 +134,13 @@
* @param action 褰撳墠鍔ㄤ綔
*/
private void simulateRotating(Agv agv, AgvDetail agvDetail, Action action) throws InterruptedException {
-
-// 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());
+ agvDetail.setAgvAngle(actionAngle);
+ // 妯℃嫙鐢甸噺娑堣��?
+// agvDetail.setVol(agvDetail.getVol() - 0.05 * (angleToRotate / 15.0)); // 鏍规嵁瑙掑害娑堣�楃數閲�
- double newAngle = (agvDetail.getAgvAngle() + actionAngle) % 360;
-
- agvDetail.setAgvAngle(newAngle);
+ Thread.sleep(MapDataWsScheduler.WEBSOCKET_BROADCAST_INTERVAL);
agvDetailService.updateById(agvDetail);
-
- Thread.sleep(1000);
-
action.setActionSts(ActionStsType.FINISH.val());
actionService.updateById(action);
}
--
Gitblit v1.9.1