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