| | |
| | | import com.zy.asrs.service.BasRgvErrLogService; |
| | | import com.zy.asrs.service.BasRgvOptService; |
| | | import com.zy.asrs.service.BasRgvService; |
| | | import com.zy.asrs.utils.NumUtils; |
| | | import com.zy.core.ThreadHandler; |
| | | import com.zy.core.cache.MessageQueue; |
| | | import com.zy.core.cache.OutputQueue; |
| | |
| | | private boolean resetFlag2 = false; |
| | | private boolean connectRgv = false; |
| | | private boolean alarmChangeSign = false; |
| | | private int rgvIII = 1; |
| | | |
| | | public RgvThread(RgvSlave slave) { |
| | | this.slave = slave; |
| | |
| | | @Override |
| | | @SuppressWarnings("InfiniteLoopStatement") |
| | | public void run() { |
| | | rgvIII = this.slave.getId(); |
| | | connectRgv = this.connect(); |
| | | while(!connectRgv){ |
| | | try { |
| | |
| | | rgvProtocol.setxSpeed((short) 0); |
| | | rgvProtocol.setxDistance((short) 0); |
| | | rgvProtocol.setxDuration((short) 0); |
| | | log.error("连接中断:RGV号:"+slave.getId()); |
| | | } |
| | | |
| | | // /** |
| | |
| | | rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 10)); |
| | | rgvProtocol.setStatus(siemensNet.getByteTransform().TransInt16(result.Content, 12)); |
| | | rgvProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 14)); |
| | | long poi = siemensNet.getByteTransform().TransInt32(result.Content, 16); |
| | | int poi = siemensNet.getByteTransform().TransInt32(result.Content, 16); |
| | | if (poi>0){ |
| | | rgvProtocol.setRgvPos(poi); |
| | | rgvProtocol.setRgvPos((long)poi); |
| | | rgvProtocol.setRgvPosInt(poi); |
| | | } |
| | | log.info(rgvProtocol.getRgvNo()+"号小车读取定位值:"+poi); |
| | | rgvProtocol.setInstantaneousSpeed(Double.valueOf(siemensNet.getByteTransform().TransInt16(resultV.Content, 0))); |
| | | rgvProtocol.setEndStaM(siemensNet.getByteTransform().TransInt16(resultE.Content, 0)); |
| | | boolean[] statusAlarmList = siemensNet.getByteTransform().TransBool(resultError.Content, 0, 13); |
| | |
| | | alarmChangeSign = new HashSet<>(alarmList).equals(new HashSet<>(rgvProtocol.getAlarmList())); |
| | | rgvProtocol.setAlarmList(alarmList); |
| | | |
| | | // rgvProtocol.setRgvPos((long)NumUtils.GetRandomIntInRange(1737000)); |
| | | // rgvProtocol.setRgvPos((long) NumUtils.GetRandomIntInRange(1737000)); |
| | | rgvProtocol.setRgvPos((long) (10000*rgvIII+rgvProtocol.getRgvNo()*10000)); |
| | | if (rgvProtocol.getRgvPos()>1737000){ |
| | | rgvIII = rgvProtocol.getRgvNo(); |
| | | rgvProtocol.setRgvPos((long) (10000*rgvIII+rgvProtocol.getRgvNo()*10000)); |
| | | } |
| | | rgvIII++; |
| | | OutputQueue.RGV.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), slave.getId())); |
| | | |
| | | |
| | |
| | | private void rgvOpt(RgvCommand command) { |
| | | try{ |
| | | BasRgvOptService basRgvOptService = SpringUtils.getBean(BasRgvOptService.class); |
| | | BasRgvOpt basRgvOpt = new BasRgvOpt(rgvProtocol, command); |
| | | BasRgvOpt basRgvOpt = new BasRgvOpt(rgvProtocol.getTaskNo1().intValue(), rgvProtocol.getRgvNo(), rgvProtocol.getRgvPosInt(), command); |
| | | log.info(rgvProtocol.getRgvNo()+"号小车写入命令定位值:"+rgvProtocol.getRgvPosInt()); |
| | | basRgvOptService.insert(basRgvOpt); |
| | | }catch (Exception e){ |
| | | log.error("RGV写入命令保存失败!!"); |
| | |
| | | private void rgvOpt(Long command) { |
| | | try{ |
| | | BasRgvOptService basRgvOptService = SpringUtils.getBean(BasRgvOptService.class); |
| | | BasRgvOpt basRgvOpt = new BasRgvOpt(rgvProtocol, command); |
| | | BasRgvOpt basRgvOpt = new BasRgvOpt(rgvProtocol.getTaskNo1().intValue(), rgvProtocol.getRgvNo(), rgvProtocol.getRgvPosI(), command); |
| | | basRgvOptService.insert(basRgvOpt); |
| | | }catch (Exception e){ |
| | | log.error("RGV写入命令保存失败!!"); |