From b7e0039880d9f6e71230dbf9c13538de4f8135b8 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期六, 10 六月 2023 19:23:26 +0800
Subject: [PATCH] 输送线条码读取bug、出入库模式信号、链条控制信号
---
src/main/java/com/zy/common/utils/NavigateUtils.java | 42 ++++++++++++++++++++++++++++++++++--------
1 files changed, 34 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/zy/common/utils/NavigateUtils.java b/src/main/java/com/zy/common/utils/NavigateUtils.java
index 4be9c78..d96542a 100644
--- a/src/main/java/com/zy/common/utils/NavigateUtils.java
+++ b/src/main/java/com/zy/common/utils/NavigateUtils.java
@@ -1,6 +1,7 @@
package com.zy.common.utils;
-import com.alibaba.fastjson.JSONObject;
+import com.zy.asrs.utils.Utils;
+import com.zy.common.model.MapNode;
import com.zy.common.model.NavigateNode;
import com.zy.core.enums.ShuttleTaskModeType;
@@ -16,13 +17,16 @@
int[] startArr = NavigatePositionConvert.positionToXY(startPoint);//寮�濮嬭妭鐐�
int[] endArr = NavigatePositionConvert.positionToXY(endPoint);//缁撴潫鑺傜偣
+ //鑾峰彇褰撳墠鑺傜偣璁$畻鐨勫眰楂橈紝骞惰祴鍊煎埌姣忎竴涓妭鐐逛腑
+ int lev = Utils.getLev(startPoint);
+
//鍒濆鍖栧紑濮嬭妭鐐�
NavigateNode start = new NavigateNode(startArr[0], startArr[1]);
//寮�濮嬭妭鐐规棤鐖惰妭鐐�
start.setFather(null);
NavigateNode end = new NavigateNode(endArr[0], endArr[1]);
- NavigateSolution solution = new NavigateSolution(mapType);
+ NavigateSolution solution = new NavigateSolution(mapType, lev);
NavigateNode res_node = solution.astarSearch(start, end);
if (res_node == null) {
System.out.println("鏈壘鍒拌矾寰�");
@@ -35,6 +39,7 @@
while (res_node != null) {
res_node.setDirection(null);
res_node.setIsInflectionPoint(false);
+ res_node.setZ(lev);//璁剧疆灞傞珮
//瀵绘壘鎷愮偣
HashMap<String, Object> result = searchInflectionPoint(res_node, fatherNode, res_node.getFather());//鍒嗗埆浼犲叆褰撳墠鑺傜偣銆佺埗鑺傜偣銆佷笅涓�鑺傜偣
@@ -129,7 +134,9 @@
ArrayList<ArrayList<NavigateNode>> list = new ArrayList<>();
ArrayList<NavigateNode> data = new ArrayList<>();
String direction = mapList.get(0).getDirection();//琛岃蛋鏂瑰悜
- for (NavigateNode mapNode : mapList) {
+
+ for (int i = 0; i < mapList.size(); i++) {
+ NavigateNode mapNode = mapList.get(i);
boolean isInflectionPoint = mapNode.getIsInflectionPoint();
data.add(mapNode);
if (isInflectionPoint) {
@@ -138,6 +145,7 @@
list.add(data);//娣诲姞鏌愪竴娈垫暟鎹�
direction = mapNode.getDirection();//鏇存柊琛岃蛋鏂瑰悜
data = new ArrayList<>();
+ data.add(mapNode);//灏嗘嫄鐐圭殑缁堢偣锛屾洿鏂版垚涓嬩竴娈靛懡浠ょ殑璧风偣鍧愭爣
}else {
//鐩磋绾胯矾
mapNode.setDirection(direction);//璁剧疆琛岃蛋鏂瑰悜
@@ -155,11 +163,20 @@
//鑾峰彇浠巟鐐瑰埌涓嬩竴鐐圭殑琛岃蛋璺濈
public static Integer getXToNextDistance(NavigateNode xNode) {
NavigateMapData mapData = new NavigateMapData();
- ArrayList<ArrayList<JSONObject>> lists = mapData.getJsonData(1);
+ List<List<MapNode>> lists = mapData.getJsonData(1);
if (lists != null) {
- JSONObject jsonObject = lists.get(xNode.getX()).get(xNode.getY());
- if (jsonObject != null) {
- return Integer.parseInt(jsonObject.getOrDefault(xNode.getDirection(), 0).toString());
+ MapNode mapNode = lists.get(xNode.getX()).get(xNode.getY());
+ if (mapNode != null) {
+ switch (xNode.getDirection()) {
+ case "top":
+ return mapNode.getTop();
+ case "bottom":
+ return mapNode.getBottom();
+ case "left":
+ return mapNode.getLeft();
+ case "right":
+ return mapNode.getRight();
+ }
}
return 0;
}
@@ -169,7 +186,7 @@
/**
* 鑾峰彇褰撳墠璺緞鎬昏璧拌窛绂�
*/
- public static Integer getCurrentPathAllDistance(ArrayList<NavigateNode> path) {
+ public static Integer getCurrentPathAllDistance(List<NavigateNode> path) {
if (path.size() == 1) {
//璺緞鍙湁涓�鏉℃暟鎹紝鍒欑洿鎺ヨ繑鍥炶璧拌窛绂�
return path.get(0).getMoveDistance();
@@ -183,6 +200,15 @@
return allDistance;
}
+ /**
+ * 鑾峰彇涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂�
+ */
+ public static Integer getMiddleToDistDistance(List<NavigateNode> path) {
+ //涓棿璺緞
+ NavigateNode middlePath = path.get(path.size() - 2);
+ return middlePath.getMoveDistance();
+ }
+
public static void main(String[] args) {
//璁$畻璺緞
List<NavigateNode> calc = calc("1000901", "1800201", ShuttleTaskModeType.PAK_OUT.id);
--
Gitblit v1.9.1