From 98d4a08d9df7961949f8a3e3d23208a44a177d24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Wed, 4 Feb 2026 09:54:59 +0800 Subject: [PATCH] xx --- .../controller/AircraftFlyController.java | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 src/main/java/com/ruoyi/device/controller/AircraftFlyController.java diff --git a/src/main/java/com/ruoyi/device/controller/AircraftFlyController.java b/src/main/java/com/ruoyi/device/controller/AircraftFlyController.java new file mode 100644 index 0000000..68b8320 --- /dev/null +++ b/src/main/java/com/ruoyi/device/controller/AircraftFlyController.java @@ -0,0 +1,104 @@ +package com.ruoyi.device.controller; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.device.api.domain.DroneCurrentStatusVO; +import com.ruoyi.device.api.domain.DroneFlightControlRequest; +import com.ruoyi.device.api.domain.DroneRealtimeInfoVO; +import com.ruoyi.device.api.domain.DroneTakeoffResponseVO; +import com.ruoyi.device.api.enums.DroneCurrentStatusEnum; +import com.ruoyi.device.api.enums.DroneMissionStatusEnum; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.web.bind.annotation.*; + +/** + * 无人机飞控Controller + * + * @author ruoyi + * @date 2026-02-04 + */ +@Tag(name = "无人机飞控管理", description = "无人机飞控相关接口") +@RestController +@RequestMapping("/drone") +public class AircraftFlyController extends BaseController +{ + /** + * 无人机飞控命令 + * + * @param request 飞控命令请求 + * @return 结果 + */ + @Operation(summary = "无人机飞控命令", description = "发送飞控命令控制无人机的飞行动作,包括前进、后退、左移、右移、左旋、右旋、上升、下降、返航、急停等") + @PostMapping("/flight-control") + public R flightControl(@RequestBody DroneFlightControlRequest request) + { + // TODO: 实现飞控命令逻辑 + return R.ok(); + } + + /** + * 无人机实时信息展示 + * + * @param taskId 任务ID + * @return 实时信息 + */ + @Operation(summary = "无人机实时信息展示", description = "根据任务ID获取无人机的实时飞行信息,包括速度、高度、姿态角等") + @GetMapping("/realtime-info/{taskId}") + public R getRealtimeInfo( + @Parameter(description = "任务ID", required = true, example = "1") + @PathVariable("taskId") Long taskId) + { + // TODO: 实现获取实时信息逻辑 + DroneRealtimeInfoVO vo = new DroneRealtimeInfoVO(); + vo.setClimbSpeed(0); + vo.setCruiseSpeed(0); + vo.setDistanceToAirport(0); + vo.setAltitude(0); + vo.setPitch(0); + vo.setYaw(0); + vo.setGimbalPitch(0); + vo.setGimbalYaw(0); + vo.setMissionStatus(DroneMissionStatusEnum.IDLE); + return R.ok(vo); + } + + /** + * 无人机当前状态查询 + * + * @param dockId 机场ID + * @return 当前状态 + */ + @Operation(summary = "无人机当前状态查询", description = "根据机场ID查询无人机的当前飞行状态") + @GetMapping("/current-status/{dockId}") + public R getCurrentStatus( + @Parameter(description = "机场ID", required = true, example = "1") + @PathVariable("dockId") Long dockId) + { + // TODO: 实现查询当前状态逻辑 + DroneCurrentStatusVO vo = new DroneCurrentStatusVO(); + vo.setDockId(dockId); + vo.setCurrentStatus(DroneCurrentStatusEnum.HOVERING); + return R.ok(vo); + } + + /** + * 无人机起飞接口 + * + * @param dockId 机场ID + * @return 起飞响应(任务ID和任务状态) + */ + @Operation(summary = "无人机起飞", description = "控制指定机场的无人机执行起飞操作,返回任务ID和当前任务状态") + @PostMapping("/takeoff/{dockId}") + public R takeoff( + @Parameter(description = "机场ID", required = true, example = "1") + @PathVariable("dockId") Long dockId) + { + // TODO: 实现起飞逻辑 + DroneTakeoffResponseVO vo = new DroneTakeoffResponseVO(); + vo.setTaskId(1L); + vo.setMissionStatus(DroneMissionStatusEnum.TAKING_OFF); + return R.ok(vo); + } +} \ No newline at end of file