| | |
| | | * @param action 当前动作 |
| | | */ |
| | | private void simulateRotating(Agv agv, AgvDetail agvDetail, Action action) throws InterruptedException { |
| | | // Double agvAngle = agvDetail.getAgvAngle(); |
| | | // double actionAngle = Double.parseDouble(action.getParams()); |
| | | |
| | | // 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 totalAngle = Double.parseDouble(action.getParams()); // 假设Action有angle属性 |
| | | double stepAngle = 45.0; // 每秒旋转15度,具体值根据需求调整 |
| | | double actionProgress = 0.0; |
| | | double newAngle = (agvDetail.getAgvAngle() + actionAngle) % 360; |
| | | |
| | | 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)); // 根据角度消耗电量 |
| | | |
| | | // 更新AGV详细信息 |
| | | agvDetailService.updateById(agvDetail); |
| | | |
| | | // 模拟实际执行时间 |
| | | Thread.sleep(1000); // 每秒执行一次 |
| | | Thread.sleep(1000); |
| | | |
| | | actionProgress += angleToRotate; |
| | | } |
| | | |
| | | // 动作完成,更新状态 |
| | | action.setActionSts(ActionStsType.FINISH.val()); |
| | | actionService.updateById(action); |
| | | } |