| | |
| | | // private RgvProtocol rgvProtocol; |
| | | private TaskProtocolCache taskProtocolCache = new TaskProtocolCache(); |
| | | // # 轨道总长 |
| | | private Long trackEntireLength = 100L; |
| | | private Long trackEntireLength = 215000L; |
| | | //# 轨道基准点 |
| | | private Long trackBenchmark = 100L; |
| | | private Long trackBenchmark = 1L; |
| | | // # 避让距离 |
| | | private Long avoidDistance = 100L; |
| | | private Long avoidDistance = 5000L; |
| | | |
| | | /** |
| | | * 工位1复位信号 |
| | |
| | | log.error("行走超出范围!!!任务异常 联系管理员!!!"); |
| | | return false; |
| | | } |
| | | long avoidAbs = Math.abs(avoid - rgvProtocolOther.getRgvPos()); |
| | | if (avoidAbs<51){ |
| | | return true; |
| | | } |
| | | rgvTaskProtocolOther.setAvoid(1); |
| | | rgvTaskProtocolOther.setAvoidingTheDestination(avoid); |
| | | RgvTaskCache.updateRgvStatus(rgvTaskProtocolOther); |
| | |
| | | if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) { |
| | | log.error("行走超出范围!!!任务异常 联系管理员!!!"); |
| | | return false; |
| | | } |
| | | long avoidAbs = Math.abs(avoid - rgvProtocolOther.getRgvPos()); |
| | | if (avoidAbs<51){ |
| | | return true; |
| | | } |
| | | rgvTaskProtocolOther.setAvoid(1); |
| | | rgvTaskProtocolOther.setAvoidingTheDestination(avoid); |
| | |
| | | log.error("行走超出范围!!!任务异常 联系管理员!!!"); |
| | | return false; |
| | | } |
| | | long avoidAbs = Math.abs(avoid - rgvProtocol.getRgvPos()); |
| | | if (avoidAbs<51){ |
| | | return false; |
| | | } |
| | | rgvTaskProtocol.setAvoid(1); |
| | | rgvTaskProtocol.setAvoidingTheDestination(avoid); |
| | | RgvTaskCache.updateRgvStatus(rgvTaskProtocol); |
| | | return false; |
| | | } |
| | | return false; |
| | | } |
| | | } else { |
| | | if ((rgvProtocolOther.getRgvPosDestinationOrPos(true) - rgvProtocolOther.getCarBodyJiaoMing()) |
| | | - (targetPosition + rgvProtocol.getCarBodyKunPeng()) |
| | | > avoidDistance) {//无需避让 |
| | | return true; |
| | | } |
| | | } |
| | | } else { |
| | |
| | | if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) { |
| | | log.error("行走超出范围!!!任务异常 联系管理员!!!"); |
| | | return false; |
| | | } |
| | | long avoidAbs = Math.abs(avoid - rgvProtocolOther.getRgvPos()); |
| | | if (avoidAbs<51){ |
| | | return true; |
| | | } |
| | | rgvTaskProtocolOther.setAvoid(1); |
| | | rgvTaskProtocolOther.setAvoidingTheDestination(avoid); |
| | |
| | | if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) { |
| | | log.error("行走超出范围!!!任务异常 联系管理员!!!"); |
| | | return false; |
| | | } |
| | | long avoidAbs = Math.abs(avoid - rgvProtocolOther.getRgvPos()); |
| | | if (avoidAbs<51){ |
| | | return true; |
| | | } |
| | | rgvTaskProtocolOther.setAvoid(1); |
| | | rgvTaskProtocolOther.setAvoidingTheDestination(avoid); |
| | |
| | | log.error("行走超出范围!!!任务异常 联系管理员!!!"); |
| | | return false; |
| | | } |
| | | long avoidAbs = Math.abs(avoid - rgvProtocol.getRgvPos()); |
| | | if (avoidAbs<51){ |
| | | return false; |
| | | } |
| | | rgvTaskProtocol.setAvoid(1); |
| | | rgvTaskProtocol.setAvoidingTheDestination(avoid); |
| | | RgvTaskCache.updateRgvStatus(rgvTaskProtocol); |
| | | return false; |
| | | } |
| | | return false; |
| | | } |
| | | } else { |
| | | if ((rgvProtocolOther.getRgvPosDestinationOrPos(false) - rgvProtocolOther.getCarBodyJiaoMing()) |
| | | - (targetPosition + rgvProtocol.getCarBodyKunPeng()) |
| | | > avoidDistance) {//无需避让 |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | |
| | | RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId()); |
| | | if (rgvProtocol == null) { |
| | | rgvProtocol = new RgvProtocol(); |
| | | rgvProtocol.setRgvNo(slave.getId()); |
| | | } |
| | | rgvProtocol.setRgvNo(slave.getId()); |
| | | rgvProtocol.setCarBodyJiaoMing(slave.getCarBodyJiaoMing()); |
| | | rgvProtocol.setCarBodyKunPeng(slave.getCarBodyKunPeng()); |
| | | |
| | | rgvProtocol.setRgvPos((long)siemensNet.getByteTransform().TransInt32(result.Content, 0)); |
| | | rgvProtocol.setRgvPosDestination((long)siemensNet.getByteTransform().TransInt32(result.Content, 4)); |