#
luxiaotao1123
2024-11-12 62173395ea959cb4274986ec8a795c9f228934e9
#
3个文件已修改
41 ■■■■ 已修改文件
zy-acs-flow/src/map/tool.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/fake/AgvSimulatorTask.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/map/tool.js
@@ -656,7 +656,7 @@
    }
}
const agvRotationOffsetDegrees = 90;
const agvRotationOffsetDegrees = 0;
const agvRotationOffset = rotationParseNum(agvRotationOffsetDegrees);
const showAgvSprite = (curZone, agvVo, setCurSprite) => {
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java
@@ -124,8 +124,8 @@
        double deltaX = x1 - x0;
        double deltaY = y1 - y0;
        double angle = Math.atan2(deltaX, deltaY);
        int offsetAngle = configService.getVal("mapXoffset", Integer.class);
        angle = angle + offsetAngle;
        int angleOffsetVal = configService.getVal("mapAngleOffsetVal", Integer.class);
        angle = angle + angleOffsetVal;
        angle = Math.toDegrees(angle);
        angle = (angle + 360) % 360; // 将角度转换为正值
zy-acs-manager/src/main/java/com/zy/acs/manager/fake/AgvSimulatorTask.java
@@ -86,6 +86,7 @@
        switch (Objects.requireNonNull(ActionTypeType.get(action.getActionTypeEl()))) {
            case TurnCorner:
                simulateWalking(agv, agvDetail, action);
                simulateRotating(agv, agvDetail, action);
                break;
            case StraightBackUnturnable:
@@ -107,12 +108,9 @@
    private void simulateWalking(Agv agv, AgvDetail agvDetail, Action action) throws InterruptedException {
        Code currCode = codeService.getById(agvDetail.getRecentCode());
        Code code = codeService.selectByData(action.getCode());
        agvDetail.setPos(1);
        agvDetail.setCode(code.getId());
        // 模拟电量消耗
//        agvDetail.setVol(agvDetail.getVol() - 0.1 * distanceToMove); // 根据距离消耗电量
@@ -125,7 +123,6 @@
        action.setActionSts(ActionStsType.FINISH.val());
        actionService.updateById(action);
    }
    /**
@@ -136,37 +133,13 @@
     * @param action     当前动作
     */
    private void simulateRotating(Agv agv, AgvDetail agvDetail, Action action) throws InterruptedException {
//        double totalAngle = Double.parseDouble(action.getParams());
//        double stepAngle = 90.0;
//        double actionProgress = 0.0;
//
//        while (actionProgress < totalAngle) {
//            double angleToRotate = Math.min(stepAngle, totalAngle - actionProgress);
//            // 更新AGV的角度
//            double newAngle = (agvDetail.getAgvAngle() + angleToRotate) % 360;
//            agvDetail.setAgvAngle(newAngle);
//
//            // 模拟电量消耗
////            agvDetail.setVol(agvDetail.getVol() - 0.05 * (angleToRotate / 15.0)); // 根据角度消耗电量
//
//            agvDetailService.updateById(agvDetail);
//
//            Thread.sleep(1000);
//
//            actionProgress += angleToRotate;
//        }
        double actionAngle = Double.parseDouble(action.getParams());
        double newAngle = (agvDetail.getAgvAngle() + actionAngle) % 360;
        agvDetail.setAgvAngle(newAngle);
        agvDetail.setAgvAngle(actionAngle);
        // 模拟电量消耗?
//        agvDetail.setVol(agvDetail.getVol() - 0.05 * (angleToRotate / 15.0)); // 根据角度消耗电量
        Thread.sleep(1000);
        agvDetailService.updateById(agvDetail);
        action.setActionSts(ActionStsType.FINISH.val());
        actionService.updateById(action);
    }