diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/handler/cmd/StartTrackCmdHandler.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/handler/cmd/StartTrackCmdHandler.java index 27bed0e..7fcacc2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/handler/cmd/StartTrackCmdHandler.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/handler/cmd/StartTrackCmdHandler.java @@ -72,7 +72,6 @@ */ @Override public ResponseDataDTO afterInvoke(StartTrackRequest request, ResponseDataDTO response) { - return response; } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/handler/cmd/StartTrackCmdHandler.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/handler/cmd/StartTrackCmdHandler.java index 27bed0e..7fcacc2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/handler/cmd/StartTrackCmdHandler.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/handler/cmd/StartTrackCmdHandler.java @@ -72,7 +72,6 @@ */ @Override public ResponseDataDTO afterInvoke(StartTrackRequest request, ResponseDataDTO response) { - return response; } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/TargetPointRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/TargetPointRequest.java index 1ff3ddc..28165b2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/TargetPointRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/TargetPointRequest.java @@ -3,6 +3,9 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; +import java.math.RoundingMode; + /** * 获取循迹路线下发指令 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/handler/cmd/StartTrackCmdHandler.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/handler/cmd/StartTrackCmdHandler.java index 27bed0e..7fcacc2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/handler/cmd/StartTrackCmdHandler.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/handler/cmd/StartTrackCmdHandler.java @@ -72,7 +72,6 @@ */ @Override public ResponseDataDTO afterInvoke(StartTrackRequest request, ResponseDataDTO response) { - return response; } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/TargetPointRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/TargetPointRequest.java index 1ff3ddc..28165b2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/TargetPointRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/TargetPointRequest.java @@ -3,6 +3,9 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; +import java.math.RoundingMode; + /** * 获取循迹路线下发指令 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/TaskInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/TaskInfoServiceImpl.java index e022a6e..0bcb375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/TaskInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/TaskInfoServiceImpl.java @@ -46,6 +46,7 @@ import java.io.File; import java.io.Serializable; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; @@ -369,9 +370,6 @@ if (!flag) { return; } - log.info("curr point:{}", curPoint); - log.debug("curr pointGrid:{}", pointDTO); - log.debug("oldEstimateGrid:{}", oldEstimateGrid); GridPushDTO gridPushDTO = new GridPushDTO(); gridPushDTO.setCurrGridX(pointDTO.getX()); @@ -440,11 +438,12 @@ request.setRobotId(robotInfo.getId()); //设置为急停 request.setControl(1); -// baseRobotService.execCmdHandler(request, InstructCodeEnums.SOFTWARE_STOP); + //baseRobotService.execCmdHandler(request, InstructCodeEnums.SOFTWARE_STOP); //循迹任务结束 closeTask(null, robotId); + TaskEndMsg endMsg = new TaskEndMsg(); - endMsg.setCode(1); + endMsg.setCode(response.getCoordinate()==null?0:1); endMsg.setRobotId(robotId); PointNextDTO nextDTO = response.getCoordinate(); @@ -663,7 +662,9 @@ request.setX(Convert.toStr(gridCenterPoint.getX())); request.setY(Convert.toStr(gridCenterPoint.getY())); request.setZ(curPoint.getZ().toString()); - request.setTheta(curPoint.getTheta().toString()); + //计算方位角 + double theta = calculateAzimuth(curPoint.getX(), curPoint.getY(), gridCenterPoint.getX(), gridCenterPoint.getY()); + request.setTheta(Convert.toStr(theta)); request.setRobotId(robotInfo.getId()); log.info("下发寻源点位:{}", request); //执行巡点指令 @@ -675,6 +676,32 @@ } /** + * 计算方位角 + * + * @param x1 + * @param y1 + * @param x2 + * @param y2 + * @return + */ + public static double calculateAzimuth(BigDecimal x1, BigDecimal y1, BigDecimal x2, BigDecimal y2) { + // 计算x和y的差异 + double deltaX = x2.subtract(x1).doubleValue(); + double deltaY = y2.subtract(y1).doubleValue(); + + // 计算角度(弧度) + double angleInRadians = Math.atan2(deltaY, deltaX); + + // 将弧度转换为度 + double angleInDegrees = Math.toDegrees(angleInRadians); + + // 调整到0°到360°的范围 +// angleInDegrees = (angleInDegrees + 360) % 360; +// System.out.println(angleInDegrees); + return new BigDecimal(angleInRadians).setScale(2, RoundingMode.HALF_UP).doubleValue(); + } + + /** * 任务相关图片保存 * * @param imgDTO