From ae35f8d3521741b87835c6122053ec1af449d4ab Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期二, 28 三月 2023 15:34:15 +0800 Subject: [PATCH] 地图数据增加上下左右移动距离 --- src/main/java/com/zy/core/thread/ShuttleThread.java | 34 ++++++++++++++++++++++++++-------- 1 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/zy/core/thread/ShuttleThread.java b/src/main/java/com/zy/core/thread/ShuttleThread.java index ffc4717..03e30b5 100644 --- a/src/main/java/com/zy/core/thread/ShuttleThread.java +++ b/src/main/java/com/zy/core/thread/ShuttleThread.java @@ -20,10 +20,7 @@ import com.zy.core.ThreadHandler; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.OutputQueue; -import com.zy.core.enums.ShuttleRunDirection; -import com.zy.core.enums.ShuttleStatusType; -import com.zy.core.enums.ShuttleTaskModeType; -import com.zy.core.enums.SlaveType; +import com.zy.core.enums.*; import com.zy.core.model.ShuttleSlave; import com.zy.core.model.Task; import com.zy.core.model.command.ShuttleAssignCommand; @@ -121,6 +118,7 @@ if (null == shuttleProtocol) { shuttleProtocol = new ShuttleProtocol(); shuttleProtocol.setShuttleNo(slave.getId().shortValue()); + shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE); } //----------璇诲彇鍥涘悜绌挎杞︾姸鎬�----------- @@ -290,7 +288,7 @@ } //鍒嗛厤浠诲姟 - private void assignWork(ShuttleAssignCommand assignCommand) { + private void assignWork(ShuttleAssignCommand assignCommand) throws Exception { //灏嗘map瀛樺叆redis涓� HashMap<String, Object> map = new HashMap<>(); @@ -301,6 +299,13 @@ ArrayList<ArrayList<NavigateNode>> data = NavigateUtils.getSectionPath(calc); //璺緞鏁版嵁 map.put("path", data); + //璺緞娆℃暟 + map.put("pathSize", data.size()); + }else { + if (assignCommand.getTaskMode() == ShuttleTaskModeType.PAK_IN.id.shortValue() || assignCommand.getTaskMode() == ShuttleTaskModeType.PAK_OUT.id.shortValue()) { + //灞炰簬鍏ュ簱鍑哄簱锛屽繀椤昏璁$畻璺緞锛屽垯鎶涘嚭寮傚父 + throw new Exception("鏈兘鎵惧埌杩愯璺緞"); + } } //宸ヤ綔鍙� @@ -338,11 +343,11 @@ Object o1 = pathList.get(commandStep); ArrayList path = JSON.parseObject(o1.toString(), ArrayList.class); - size = path.size(); + size = Integer.parseInt(map.get("pathSize").toString()); //寮�濮嬭矾寰� JSONObject startPath = JSON.parseObject(path.get(0).toString()); //鐩爣璺緞 - JSONObject endPath = JSON.parseObject(path.get(size - 1).toString()); + JSONObject endPath = JSON.parseObject(path.get(path.size() - 1).toString()); command.setCommandWord((short) 1); command.setStartCodeNum(NavigatePositionConvert.xyToPosition(startPath.getIntValue("x"), startPath.getIntValue("y"))); @@ -374,6 +379,14 @@ command.setRunDirection((short) (assignCommand.getTaskMode() - 4)); command.setCommandEnd((short) 1); break; + case 9://鐘舵�佸浣� + command.setCommandWord((short) 0); + //璁剧疆鍥涘悜绌挎杞︿负绌洪棽鐘舵�� + shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE); + //浠诲姟鍙锋竻闆� + shuttleProtocol.setTaskNo((short) 0); + break; + default: } command.setCommandEnd((short) 1); @@ -387,7 +400,7 @@ shuttleProtocol.setPakMk(false); //鍒ゆ柇鏁版嵁鏄惁鎵ц瀹屾垚 - if (commandStep < size) { + if (commandStep < size - 1) { //鏇存柊redis鏁版嵁 //姝ュ簭澧炲姞 commandStep++; @@ -415,6 +428,11 @@ } //鍒犻櫎redis redisUtil.del("wrk_no_" + map.get("wrk_no").toString()); + + //瀵逛富绾跨▼鎶涘嚭绛夊緟纭鐘舵�亀aiting + shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.WAITING); + + News.info("鍥涘悜绌挎杞︿换鍔℃墽琛屽畬鎴愮瓑寰呯‘璁や腑锛岀┛姊溅鍙�={}锛屼换鍔℃暟鎹�={}", shuttleProtocol.getShuttleNo(), JSON.toJSON(command)); } } -- Gitblit v1.9.1