| | |
| | | // //小车空闲且有跑库程序 |
| | | // shuttleAction.moveLoc(slave.getId()); |
| | | |
| | | //演示模式 |
| | | shuttleAction.demo(slave.getId()); |
| | | |
| | | Thread.sleep(200); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | //采集时间超过5s,保存一次数据记录 |
| | | //保存数据记录 |
| | | DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class); |
| | | if (deviceDataLogService == null) { |
| | | return; |
| | | } |
| | | DeviceDataLog deviceDataLog = new DeviceDataLog(); |
| | | deviceDataLog.setOriginData(JSON.toJSONString(this.originDeviceData)); |
| | | deviceDataLog.setWcsData(JSON.toJSONString(shuttleProtocol)); |
| | |
| | | |
| | | //更新采集时间 |
| | | shuttleProtocol.setDeviceDataLog(System.currentTimeMillis()); |
| | | OutputQueue.SHUTTLE.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), slave.getId())); |
| | | } |
| | | } |
| | | |
| | | //将四向穿梭车状态保存至数据库 |
| | | BasShuttleService shuttleService = SpringUtils.getBean(BasShuttleService.class); |
| | | BasShuttle basShuttle = shuttleService.selectOne(new EntityWrapper<BasShuttle>() |
| | | .eq("shuttle_no", slave.getId())); |
| | | |
| | | if (basShuttle == null) { |
| | | basShuttle = new BasShuttle(); |
| | | //四向穿梭车号 |
| | | basShuttle.setShuttleNo(slave.getId()); |
| | | basShuttle.setStatus(1); |
| | | shuttleService.insert(basShuttle); |
| | | } |
| | | //任务号 |
| | | basShuttle.setWrkNo(shuttleProtocol.getTaskNo().intValue()); |
| | | //修改时间 |
| | | basShuttle.setUpdateTime(new Date()); |
| | | //设备状态 |
| | | basShuttle.setDeviceStatus(JSON.toJSONString(shuttleProtocol)); |
| | | if (shuttleService.updateById(basShuttle)) { |
| | | OutputQueue.SHUTTLE.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), slave.getId())); |
| | | } |
| | | } |
| | | |
| | |
| | | shuttleProtocol.setRunDirection(data.getString("runDir") == null ? "none" : data.getString("runDir")); |
| | | //是否为充电状态 |
| | | shuttleProtocol.setHasCharge(data.getInteger("chargState") == 1 ? true : false); |
| | | //运行速度 |
| | | shuttleProtocol.setSpeed(data.getInteger("speed")); |
| | | |
| | | //*********读取扩展字段********** |
| | | InnerSuhttleExtend extend = (InnerSuhttleExtend) shuttleProtocol.getExtend(); |
| | | //管制状态 |
| | | extend.setSuspendState(data.getInteger("suspendState")); |
| | | //当前速度 |
| | | extend.setSpeed(data.getInteger("speed")); |
| | | //最高电芯电压(mV) |
| | | extend.setMaxCellVoltage(data.getInteger("maxCellVoltage")); |
| | | //最低电芯电压(mV) |
| | | extend.setMinCellVoltage(data.getInteger("minCellVoltage")); |
| | | //电池电压 |
| | | extend.setVoltage(data.getInteger("voltage")); |
| | | //充放电循环次数 |
| | | extend.setChargeCycleTimes(data.getInteger("chargeCycleTimes")); |
| | | //剩余电量 |
| | | extend.setSurplusQuantity(data.getInteger("surplusQuantity")); |
| | | //总电量 |
| | |
| | | ///读取四向穿梭车状态-end |
| | | |
| | | //小车处于运行中,将标记置为true |
| | | if (shuttleProtocol.getDeviceStatus() == 1) { |
| | | if (shuttleProtocol.getDeviceStatus() == 0) { |
| | | shuttleProtocol.setPakMk(true); |
| | | } |
| | | |
| | |
| | | int removeIdx = -1; |
| | | for (int i = 0; i < socketResults.size(); i++) { |
| | | JSONObject socketResult = socketResults.get(i); |
| | | if (socketResult == null) { |
| | | continue; |
| | | } |
| | | if (!socketResult.get("msgType").equals("requestMsg")) {//不是请求内容 |
| | | continue; |
| | | } |
| | |
| | | socketResults.remove(removeIdx); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | // e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | |
| | | && this.shuttleProtocol.getMode() == 1 |
| | | && this.shuttleProtocol.getPakMk() |
| | | && this.shuttleProtocol.getErrorCode().equals("0") |
| | | && this.shuttleProtocol.getTaskNo() == 0 |
| | | && (this.shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.IDLE.id |
| | | || this.shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.WAITING.id |
| | | || this.shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.CHARGING_WAITING.id) |
| | |
| | | } |
| | | |
| | | @Override |
| | | public boolean enableDemo(boolean enable) { |
| | | shuttleProtocol.setDemo(enable); |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public boolean offerSystemMsg(String format, Object... arguments) { |
| | | String msg = News.replace(format, arguments); |
| | | shuttleProtocol.setSystemMsg(msg); |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public ShuttleCommand getMoveCommand(Integer taskNo, String startCodeNum, String distCodeNum, Integer allDistance, Integer runDirection, Integer runSpeed, List<NavigateNode> nodes) { |
| | | NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class); |
| | | NyShuttleHttpCommand httpStandard = getHttpStandard(slave.getId(), taskNo); |
| | |
| | | data.put("xp", xp); |
| | | data.put("yp", yp); |
| | | data.put("z", z); |
| | | data.put("x", mapNode.getYBase()); |
| | | data.put("y", mapNode.getXBase()); |
| | | data.put("x", mapNode.getXBase()); |
| | | data.put("y", mapNode.getYBase()); |
| | | path.add(data); |
| | | } |
| | | |
| | |
| | | |
| | | LocMastService locMastService = SpringUtils.getBean(LocMastService.class); |
| | | LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>() |
| | | .eq("code", distCodeNum)); |
| | | .eq("qr_code_value", distCodeNum)); |
| | | if (locMast == null) { |
| | | throw new CoolException("库位信息不存在"); |
| | | } |
| | |
| | | |
| | | String mapStr = JSON.toJSONString(map); |
| | | LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>() |
| | | .eq("code", mapStr) |
| | | .eq("status", 1)); |
| | | .eq("qr_code_value", mapStr)); |
| | | if (locMast == null) { |
| | | throw new CoolException("地址码不存在"); |
| | | } |
| | |
| | | location.put("xp", row); |
| | | location.put("yp", bay); |
| | | location.put("z", lev); |
| | | location.put("x", mapNode.getYBase()); |
| | | location.put("y", mapNode.getXBase()); |
| | | location.put("x", mapNode.getXBase()); |
| | | location.put("y", mapNode.getYBase()); |
| | | |
| | | HashMap<String, Object> body = new HashMap<>(); |
| | | body.put("responseType", "init");//复位 |
| | |
| | | // int x1 = Math.abs(y - 61) + 11; |
| | | // //WCS系统X轴 => 牛眼Y轴转换公式 |
| | | // int y1 = x + 10; |
| | | int x1 = x + 10; |
| | | int y1 = y + 10; |
| | | return new int[]{y1, x1, z}; |
| | | |
| | | // int x1 = x + 10; |
| | | // int y1 = y + 10; |
| | | LocMastService locMastService = SpringUtils.getBean(LocMastService.class); |
| | | LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>() |
| | | .eq("row1", x) |
| | | .eq("bay1", y) |
| | | .eq("lev1", z) |
| | | .eq("status", 1)); |
| | | if (locMast == null) { |
| | | return null; |
| | | } |
| | | |
| | | String qrCodeValue = locMast.getQrCodeValue(); |
| | | JSONObject data = JSON.parseObject(qrCodeValue); |
| | | return new int[]{data.getInteger("y"), data.getInteger("x"), z}; |
| | | } |
| | | |
| | | @Data |
| | |
| | | private Integer suspendState; |
| | | |
| | | /** |
| | | * 当前速度,单位mm/s |
| | | * 最高电芯电压(mV) |
| | | */ |
| | | private Integer speed; |
| | | private Integer maxCellVoltage; |
| | | |
| | | /** |
| | | * 最低电芯电压(mV),低于2900mv需要立即充电 |
| | | */ |
| | | private Integer minCellVoltage; |
| | | |
| | | /** |
| | | * 电池电压(mV) |
| | | */ |
| | | private Integer voltage; |
| | | |
| | | /** |
| | | * 充放电循环次数 |
| | | */ |
| | | private Integer chargeCycleTimes; |
| | | |
| | | /** |
| | | * 剩余电量/10(A) |