From 8740b1c94ffd20b54b95962df886e43f722911c5 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期四, 24 四月 2025 17:31:12 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/utils/TrackRangeUtils.java |   49 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 49 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/utils/TrackRangeUtils.java b/src/main/java/com/zy/asrs/utils/TrackRangeUtils.java
new file mode 100644
index 0000000..2be2744
--- /dev/null
+++ b/src/main/java/com/zy/asrs/utils/TrackRangeUtils.java
@@ -0,0 +1,49 @@
+package com.zy.asrs.utils;
+
+import com.zy.core.cache.RgvStatusCache;
+import com.zy.core.model.RgvSlave;
+import com.zy.core.model.protocol.RgvProtocol;
+
+/**
+ * Created by Monkey D. Luffy on 2023/7/18
+ */
+public class TrackRangeUtils {
+
+    public boolean IsItSmall(RgvSlave slave) {
+        RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId());
+        RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId());
+        if (rgvProtocol.getRgvPos() < rgvProtocolOther.getRgvPos()) {
+            return true;
+        }
+        return false;
+    }
+
+    public Long[][] avoidRange(RgvSlave slave, Long trackEntireLength, Long trackBenchmark, Long avoidDistance) {
+        RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId());
+        RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId());
+
+        RgvProtocol rgvProtocolE, rgvProtocolB;
+        if (rgvProtocol.getRgvPos() < rgvProtocolOther.getRgvPos()) {
+            rgvProtocolE = rgvProtocolOther;
+            rgvProtocolB = rgvProtocol;
+        } else {
+            rgvProtocolE = rgvProtocol;
+            rgvProtocolB = rgvProtocolOther;
+        }
+
+        long entireLengthE = trackEntireLength - rgvProtocolE.getCarBodyKunPeng();
+        long benchmarkE = trackBenchmark + rgvProtocolB.getCarBodyJiaoMing() + rgvProtocolB.getCarBodyKunPeng() + avoidDistance + rgvProtocolE.getCarBodyJiaoMing();
+
+        long entireLengthB = trackEntireLength - rgvProtocolE.getCarBodyKunPeng() - rgvProtocolE.getCarBodyJiaoMing() - avoidDistance - rgvProtocolB.getCarBodyKunPeng();
+        long benchmarkB = trackBenchmark + rgvProtocolB.getCarBodyJiaoMing();
+
+
+        return new Long[][]{new Long[]{entireLengthE, benchmarkE}, new Long[]{entireLengthB, benchmarkB}};
+
+    }
+
+    public boolean avoidRange(Long avoid, Long[] range) {
+        return avoid < range[0] && avoid > range[1];
+    }
+
+}

--
Gitblit v1.9.1