From 44be6da8fc2740a7e81d5b878a894e318b6a5f8c Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期日, 27 四月 2025 15:51:37 +0800
Subject: [PATCH] *

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

diff --git a/src/main/java/com/zy/asrs/utils/TrackRangeUtils.java b/src/main/java/com/zy/asrs/utils/TrackRangeUtils.java
index 2be2744..35648dc 100644
--- a/src/main/java/com/zy/asrs/utils/TrackRangeUtils.java
+++ b/src/main/java/com/zy/asrs/utils/TrackRangeUtils.java
@@ -23,7 +23,7 @@
         RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId());
 
         RgvProtocol rgvProtocolE, rgvProtocolB;
-        if (rgvProtocol.getRgvPos() < rgvProtocolOther.getRgvPos()) {
+        if (IsItSmall(slave)) {
             rgvProtocolE = rgvProtocolOther;
             rgvProtocolB = rgvProtocol;
         } else {
@@ -42,6 +42,38 @@
 
     }
 
+    public Long[][] avoidRangeArr(RgvSlave slave, Long trackEntireLength, Long trackBenchmark, Long avoidDistance) {
+        RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId());
+        RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId());
+
+        RgvProtocol rgvProtocolE, rgvProtocolB;
+        if (IsItSmall(slave)) {
+            rgvProtocolE = rgvProtocolOther;
+            rgvProtocolB = rgvProtocol;
+
+            long entireLength = rgvProtocolE.getRgvPosDestination() - rgvProtocolE.getCarBodyJiaoMing() - avoidDistance - rgvProtocolB.getCarBodyKunPeng();
+            long benchmark = trackBenchmark + rgvProtocolB.getCarBodyJiaoMing();
+
+            long entireLengthOther = trackEntireLength - rgvProtocolE.getCarBodyKunPeng();
+            long benchmarkOther = rgvProtocolB.getRgvPosDestination() + rgvProtocolB.getCarBodyKunPeng() + avoidDistance + rgvProtocolE.getCarBodyJiaoMing();
+
+            return new Long[][]{new Long[]{entireLength, benchmark}, new Long[]{entireLengthOther, benchmarkOther}};
+
+        } else {
+            rgvProtocolE = rgvProtocol;
+            rgvProtocolB = rgvProtocolOther;
+
+            long entireLength = trackEntireLength - rgvProtocolE.getCarBodyKunPeng();
+            long benchmark = rgvProtocolB.getRgvPosDestination() + rgvProtocolB.getCarBodyKunPeng() + avoidDistance + rgvProtocolE.getCarBodyJiaoMing();
+
+            long entireLengthOther = rgvProtocolE.getRgvPosDestination() - rgvProtocolE.getCarBodyJiaoMing() - avoidDistance - rgvProtocolB.getCarBodyKunPeng();
+            long benchmarkOther = trackBenchmark + rgvProtocolB.getCarBodyJiaoMing();
+
+            return new Long[][]{new Long[]{entireLength, benchmark}, new Long[]{entireLengthOther, benchmarkOther}};
+        }
+
+    }
+
     public boolean avoidRange(Long avoid, Long[] range) {
         return avoid < range[0] && avoid > range[1];
     }

--
Gitblit v1.9.1