| | |
| | | */ |
| | | private boolean resetFlag2 = false; |
| | | |
| | | private boolean connectRgv = false; |
| | | |
| | | public RgvThread(RgvSlave slave) { |
| | | this.slave = slave; |
| | | } |
| | |
| | | @Override |
| | | @SuppressWarnings("InfiniteLoopStatement") |
| | | public void run() { |
| | | boolean connect = this.connect(); |
| | | if (connect) { |
| | | connectRgv = this.connect(); |
| | | while(!connectRgv){ |
| | | try { |
| | | connectRgv = this.connect(); |
| | | Thread.sleep(100); |
| | | } catch (Exception e){ |
| | | |
| | | // 启动读数据线程 |
| | | new Thread(this::readStatusRgv).start(); |
| | | } |
| | | } |
| | | |
| | | // 启动任务下发线程 |
| | | new Thread(this::taskIssued).start(); |
| | | // 启动读数据线程 |
| | | new Thread(this::rgvConnect).start(); |
| | | |
| | | // 启动漫游线程 |
| | | new Thread(this::taskWalkIssued).start(); |
| | | new Thread(this::taskWalkIssued2).start(); |
| | | new Thread(this::readStatusRgv).start(); |
| | | |
| | | // 启动任务完成线程 |
| | | new Thread(this::taskComplete).start(); |
| | | // 启动任务下发线程 |
| | | new Thread(this::taskIssued).start(); |
| | | |
| | | // 启动漫游线程 |
| | | new Thread(this::taskWalkIssued).start(); |
| | | new Thread(this::taskWalkIssued2).start(); |
| | | |
| | | // 启动任务完成线程 |
| | | new Thread(this::taskComplete).start(); |
| | | } |
| | | |
| | | private void rgvConnect() { |
| | | while (true) { |
| | | try { |
| | | if(!connectRgv){ |
| | | try { |
| | | connectRgv = this.connect(); |
| | | Thread.sleep(100); |
| | | } catch (Exception e){ |
| | | |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("RGV数据读取线程异常!!!" + e.getMessage()); |
| | | initRgv(); |
| | | // e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | if (taskProtocol.getTargetPosition()<=rgvProtocol.getRgvPos()+50 |
| | | && taskProtocol.getTargetPosition()>=rgvProtocol.getRgvPos()-50){ |
| | | Thread.sleep(100); |
| | | // Thread.sleep(100); |
| | | TaskProtocol issued = new TaskProtocol(taskProtocol); |
| | | write(issued); |
| | | taskProtocolCache.removeTaskProtocol(taskProtocol.getTaskNoDirection()); |
| | |
| | | |
| | | } else { |
| | | initRgv(); |
| | | connectRgv = false; |
| | | // OutputQueue.RGV.offer(MessageFormat.format("【{0}】读取RGV plc状态信息失败 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); |
| | | log.error("读取RGV plc状态信息失败 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); |
| | | } |