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