From a09baeeeeeea5c36159952482a895eb79c5740f4 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期五, 09 五月 2025 18:05:27 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/thread/RgvThread.java | 70 ++++++++++++++++++++++++++++++++--
1 files changed, 65 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index 80b7140..38b1d23 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -81,6 +81,7 @@
// 鍚姩婕父绾跨▼
new Thread(this::taskWalkIssued).start();
+ new Thread(this::taskWalkIssued2).start();
// 鍚姩浠诲姟瀹屾垚绾跨▼
new Thread(this::taskComplete).start();
@@ -127,6 +128,64 @@
}
/**
+ * 浠诲姟涓嬪彂
+ */
+ private void taskWalkIssued2() {
+ while (true) {
+ try {
+ // 浼戠湢 1 绉�
+ Thread.sleep(100);
+ if (!deviceDetection()) {
+ continue;
+ }
+ RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId());
+ RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId());
+ if (rgvProtocol == null || rgvTaskProtocol == null) {
+ initRgv();
+ rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId());
+ rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId());
+ }
+ if (rgvTaskProtocol.getAvoid() != 0) {
+ continue;
+ }
+ if (!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE)){
+ continue;
+ }
+ if (rgvProtocol.getLoaded() == -1){
+ continue;
+ }
+
+ List<TaskProtocol> allTakeTaskProtocol = taskProtocolCache.getAllWalkTaskProtocol();
+ for (TaskProtocol taskProtocol : allTakeTaskProtocol) {
+ if (taskProtocol.getIsRunning() == 1) {//鍑嗗涓嬪彂
+ // 鍙岃溅
+ if (rgvOtherStatusEnable()) {
+ //鍙︿竴鍙拌溅鏄惁鍏佽姝ゅ彴杞︽墽琛�
+ if (!otherRgvAvoid(taskProtocol.getTargetPosition())) {
+ continue;
+ }
+ }
+ if (taskProtocol.getTargetPosition()<=rgvProtocol.getRgvPos()+50
+ && taskProtocol.getTargetPosition()>=rgvProtocol.getRgvPos()-50){
+ taskProtocolCache.removeTaskProtocol(taskProtocol.getTaskNoDirection());
+ break;
+ } else {
+ Thread.sleep(100);
+ TaskProtocol issued = new TaskProtocol(taskProtocol,true);
+ write(issued);
+ taskProtocolCache.removeTaskProtocol(taskProtocol.getTaskNoDirection());
+ break;
+ }
+ }
+ }
+ } catch (Exception e) {
+ log.error("RGV鍙栬揣浠诲姟涓嬪彂绾跨▼寮傚父锛侊紒锛�" + e.getMessage());
+// e.printStackTrace();
+ }
+ }
+ }
+
+ /**
* 婕父
*/
private void taskWalkIssued() {
@@ -149,6 +208,8 @@
TaskProtocol issued = new TaskProtocol();
issued.setTaskNo(32222L);
issued.setTargetPosition(rgvTaskProtocol.getAvoidingTheDestination());
+ issued.setTaskStatus(1);
+ issued.setDirection(true);
write(issued);
rgvTaskProtocol.setAvoid(0);
@@ -186,11 +247,14 @@
if (!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE)){
continue;
}
+ if (rgvProtocol.getLoaded() == -1){
+ continue;
+ }
List<TaskProtocol> allTakeTaskProtocol = taskProtocolCache.getTakeOrPutTaskProtocol(rgvProtocol.getLoaded());
for (TaskProtocol taskProtocol : allTakeTaskProtocol) {
if (taskProtocol.getIsRunning() == 1) {//鍑嗗涓嬪彂
- RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId());
+// RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId());
//鍙岃溅
if (rgvOtherStatusEnable()) {
//鍙︿竴鍙拌溅鏄惁鍏佽姝ゅ彴杞︽墽琛�
@@ -203,16 +267,12 @@
Thread.sleep(100);
TaskProtocol issued = new TaskProtocol(taskProtocol);
write(issued);
-// taskProtocol.setIsRunning(4);
-// taskProtocolCache.updateTaskProtocol(taskProtocol);
taskProtocolCache.removeTaskProtocol(taskProtocol.getTaskNoDirection());
break;
} else {
Thread.sleep(100);
TaskProtocol issued = new TaskProtocol(taskProtocol,true);
write(issued);
-// taskProtocol.setIsRunning(4);
-// taskProtocolCache.updateTaskProtocol(taskProtocol);
break;
}
}
--
Gitblit v1.9.1