From ebdfec3e9db0977bccca0527be7d2226fbbd0229 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期三, 12 六月 2024 11:02:16 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java | 70 ++++++++++++++++++++++++----------- 1 files changed, 48 insertions(+), 22 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java index 4e4122d..a8f70d1 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/NyShuttleThread.java @@ -24,6 +24,7 @@ import com.zy.asrs.wcs.core.utils.NavigateMapData; import com.zy.asrs.wcs.core.utils.NavigatePositionConvert; import com.zy.asrs.wcs.core.utils.RedisUtil; +import com.zy.asrs.wcs.core.utils.Utils; import com.zy.asrs.wcs.rcs.News; import com.zy.asrs.wcs.rcs.cache.OutputQueue; import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant; @@ -99,17 +100,15 @@ BufferedReader reader = new BufferedReader(new InputStreamReader(this.socket.getInputStream())); // 璇诲彇鏈嶅姟鍣ㄧ殑鍝嶅簲 StringBuffer sb = new StringBuffer(); - String response = null; char[] chars = new char[2048];//缂撳啿鍖� - do { + while (true) { reader.read(chars); - String trim = new String(chars).trim(); + String trim = new String(chars); sb.append(trim); - if (sb.lastIndexOf("\r\n") != -1) { + if (trim.lastIndexOf("\r\n") != -1) { break; } - } while (response != null); -// System.out.println("Received response from server: " + sb); + } JSONObject result = JSON.parseObject(sb.toString());//寰楀埌鍝嶅簲缁撴灉闆� if (!socketResults.isEmpty() && socketResults.size() >= 5) { @@ -210,7 +209,7 @@ //鐢垫睜鐢靛帇 shuttleProtocol.setBatteryVoltage(data.getInteger("voltage")); //鏁呴殰 - shuttleProtocol.setErrorCode(data.getString("errState")); + shuttleProtocol.setErrorCode(data.getJSONArray("errCode").getString(0)); //鏄惁椤跺崌 shuttleProtocol.setHasLift(data.getInteger("liftPosition") == 1 ? true : false); @@ -276,6 +275,7 @@ basShuttle.setStatus(1); basShuttle.setDeleted(0); basShuttle.setHostId(device.getHostId()); + basShuttle.setDeviceId(device.getId().intValue()); shuttleService.save(basShuttle); } //浠诲姟鍙� @@ -323,6 +323,7 @@ Integer requestId = resultHeader.getInteger("requestId"); if (requestType.equals("init")) { Integer code = resultBody.getInteger("code"); + OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戝洓鍚戣溅澶嶄綅涓婃姤 ===>> [code:{1}] [ip:{2}] [port:{3}]", code, device.getId(), device.getIp(), device.getPort())); //灏忚溅澶嶄綅璇锋眰 ShuttleCommand initCommand = getInitCommand(requestId, code); //鍙戝嚭璇锋眰 @@ -445,6 +446,7 @@ public boolean reset(ShuttleCommand command) { setSyncTaskNo(0); setProtocolStatus(ShuttleProtocolStatusType.IDLE); + enableMoveLoc(null, false); return true; } @@ -611,6 +613,7 @@ @Override public List<NavigateNode> getMoveAdvancePath() { ObjectMapper objectMapper = SpringUtils.getBean(ObjectMapper.class); + NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class); ArrayList<NavigateNode> path = new ArrayList<>(); if (shuttleProtocol.getTaskNo() != 0) { //瀛樺湪浠诲姟锛岃幏鍙栨寚浠� @@ -629,6 +632,18 @@ if (!nodes.isEmpty()) { path.addAll(nodes); } + + //灏嗚矾寰勯攣涓庡皬杞﹁矾寰勮繘琛屽尮閰� + ArrayList<NavigateNode> tmp = new ArrayList<>(); + //妫�娴嬭矾寰勬槸鍚﹁閿佸畾 + int[][] map = navigateMapData.getDataFromRedis(NavigationMapType.DFX.id, null, null); + for (NavigateNode node : path) { + if(map[node.getX()][node.getY()] == -999) { + tmp.add(node); + } + } + + path = tmp; } } return path; @@ -658,15 +673,26 @@ } @Override - public boolean enableMoveLoc(ShuttleMoveLocParam param) { - shuttleProtocol.setMoveLoc(true);//寮�鍚窇搴� - shuttleProtocol.setMoveType(param.getMoveType()); - shuttleProtocol.setXStart(param.getStartX()); - shuttleProtocol.setXTarget(param.getTargetX()); - shuttleProtocol.setXCurrent(param.getStartX()); - shuttleProtocol.setYStart(param.getStartY()); - shuttleProtocol.setYTarget(param.getTargetY()); - shuttleProtocol.setYCurrent(param.getStartY()); + public boolean enableMoveLoc(ShuttleMoveLocParam param, boolean enable) { + if (enable) { + shuttleProtocol.setMoveLoc(true);//寮�鍚窇搴� + shuttleProtocol.setMoveType(param.getMoveType()); + shuttleProtocol.setXStart(param.getStartX()); + shuttleProtocol.setXTarget(param.getTargetX()); + shuttleProtocol.setXCurrent(param.getStartX()); + shuttleProtocol.setYStart(param.getStartY()); + shuttleProtocol.setYTarget(param.getTargetY()); + shuttleProtocol.setYCurrent(param.getStartY()); + }else { + shuttleProtocol.setMoveLoc(false); + shuttleProtocol.setMoveType(0); + shuttleProtocol.setXStart(0); + shuttleProtocol.setXTarget(0); + shuttleProtocol.setXCurrent(0); + shuttleProtocol.setYStart(0); + shuttleProtocol.setYTarget(0); + shuttleProtocol.setYCurrent(0); + } return true; } @@ -692,8 +718,8 @@ HashMap<String, Object> data = new HashMap<>(); String codeNum = NavigatePositionConvert.xyToPosition(node.getX(), node.getY(), node.getZ(), device.getHostId()); Map<String, Object> nyNode = navigateNodeToNyPointNode(NavigatePositionConvert.codeToNode(codeNum, device.getHostId())); - int xp = Integer.parseInt(String.valueOf(nyNode.get("x"))); - int yp = Integer.parseInt(String.valueOf(nyNode.get("y"))); + int xp = Integer.parseInt(String.valueOf(nyNode.get("y"))); + int yp = Integer.parseInt(String.valueOf(nyNode.get("x"))); int z = Integer.parseInt(String.valueOf(nyNode.get("z"))); List<List<MapNode>> mapData = navigateMapData.getJsonData(NavigationMapType.NONE.id, null, null); @@ -703,8 +729,8 @@ data.put("xp", xp); data.put("yp", yp); data.put("z", z); - data.put("x", mapNode.getXBase()); - data.put("y", mapNode.getYBase()); + data.put("x", mapNode.getYBase()); + data.put("y", mapNode.getXBase()); path.add(data); } @@ -799,8 +825,8 @@ location.put("xp", row); location.put("yp", bay); location.put("z", lev); - location.put("x", mapNode.getXBase()); - location.put("y", mapNode.getYBase()); + location.put("x", mapNode.getYBase()); + location.put("y", mapNode.getXBase()); HashMap<String, Object> body = new HashMap<>(); body.put("responseType", "init");//澶嶄綅 -- Gitblit v1.9.1