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]; } }