#
luxiaotao1123
2024-11-15 de726e3af84dd4bedc95b42b42132c728788a3b1
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java
@@ -41,14 +41,14 @@
    private ActionService actionService;
    public List<String> checkoutPath(String agvNo, Code startCode, Code endCode, Boolean lock) {
        return this.checkoutPath(agvNo, startCode, endCode, lock, null, null);
        return this.checkoutPath(agvNo, startCode, endCode, lock, null);
    }
    /**
     * 寻址 ===>> A Star
     */
    public synchronized List<String> checkoutPath(String agvNo, Code startCode, Code endCode
            , Boolean lock, List<String> whiteList, List<String> blackList) {
            , Boolean lock, List<String> blackList) {
        int[] startMapIdx = mapDataDispatcher.getCodeMatrixIdx(null, startCode.getData());
        int[] endMapIdx = mapDataDispatcher.getCodeMatrixIdx(null, endCode.getData());
@@ -56,7 +56,7 @@
        NavigateNode startNode = new NavigateNode(startMapIdx[0], startMapIdx[1], startCode.getData());
        NavigateNode endNode = new NavigateNode(endMapIdx[0], endMapIdx[1], endCode.getData());
        NavigateNode finishNode = aStarNavigateService.execute(agvNo, startNode, endNode, lock, whiteList, blackList);
        NavigateNode finishNode = aStarNavigateService.execute(agvNo, startNode, endNode, lock, blackList);
        if (null == finishNode) {
            log.warn("{} 号AGV检索[{}] ===>> [{}]路径失败......", agvNo, startCode.getData(), endCode.getData());
@@ -123,10 +123,9 @@
        double deltaX = x1 - x0;
        double deltaY = y1 - y0;
        double angle = Math.atan2(deltaX, deltaY);
        int offsetAngle = configService.getVal("mapXoffset", Integer.class);
        angle = angle + offsetAngle;
        angle = Math.toDegrees(angle);
        double angle = -Math.atan2(deltaX, deltaY);
        int angleOffsetVal = configService.getVal("mapAngleOffsetVal", Integer.class);
        angle = Math.toDegrees(angle) + angleOffsetVal;
        angle = (angle + 360) % 360; // 将角度转换为正值
        return angle;