From f8a09d564aeba26eb9d729fee5e7fbcab3811de1 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Sat, 26 Oct 2024 14:14:49 +0800
Subject: [PATCH] 优化

---
 ard-work/src/main/java/com/ard/tianyu/controller/UavController.java |  151 ++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 145 insertions(+), 6 deletions(-)

diff --git a/ard-work/src/main/java/com/ard/tianyu/controller/UavController.java b/ard-work/src/main/java/com/ard/tianyu/controller/UavController.java
index 757ab0b..0f619e3 100644
--- a/ard-work/src/main/java/com/ard/tianyu/controller/UavController.java
+++ b/ard-work/src/main/java/com/ard/tianyu/controller/UavController.java
@@ -1,13 +1,26 @@
 package com.ard.tianyu.controller;
 
 import com.ard.common.core.domain.AjaxResult;
-import com.ard.tianyu.model.receiver.BoxReceiver;
+import com.ard.tianyu.model.dto.BoxHistoryDTO;
+import com.ard.tianyu.model.dto.BoxPhotosDTO;
+import com.ard.tianyu.model.dto.BoxSettingsDTO;
+import com.ard.tianyu.model.dto.camera.*;
+import com.ard.tianyu.model.dto.control.AbsAngleControlDTO;
+import com.ard.tianyu.model.dto.control.AngleControlDTO;
+import com.ard.tianyu.model.dto.control.SpeedControlDTO;
+import com.ard.tianyu.model.dto.signal.SignalInfo;
+import com.ard.tianyu.model.dto.state.UavState;
+import com.ard.tianyu.model.dto.telemetry.TelemetryData;
+import com.ard.tianyu.model.receiver.BoxHistoryReceiver;
+import com.ard.tianyu.model.receiver.BoxPhotosReceiver;
+import com.ard.tianyu.model.receiver.BoxInfoReceiver;
+import com.ard.tianyu.model.receiver.BoxStreamUrlReceiver;
 import com.ard.tianyu.service.ITyService;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -35,8 +48,134 @@
     @ApiOperation("获取天宇盒子列表")
     @GetMapping("/getBoxList")
     public AjaxResult getBoxList() {
-        List<BoxReceiver> BoxList = tyService.getBoxList();
-        //{"state":0,"content":{"companyId":4127,"accessToken":"sOONT0MMVdoKcMBibb40xxgrUrq0Hw9RFiajic3KOzoNtk"}}
+        List<BoxInfoReceiver> BoxList = tyService.getBoxList();
         return AjaxResult.success(BoxList);
     }
+
+    @ApiOperation("获取直播地址")
+    @GetMapping("/getBoxList/{boxSn}")
+    public AjaxResult getBoxLiveUrl(@PathVariable("boxSn") String boxSn) {
+        BoxStreamUrlReceiver boxLiveUrl = tyService.getBoxLiveUrl(boxSn);
+        return AjaxResult.success(boxLiveUrl);
+    }
+
+    @ApiOperation("获取飞行历史")
+    @PostMapping("/getBoxHistory")
+    public AjaxResult getBoxHistory(@RequestBody BoxHistoryDTO boxHistoryDTO) {
+        List<BoxHistoryReceiver> boxHistory = tyService.getBoxHistory(boxHistoryDTO);
+        return AjaxResult.success(boxHistory);
+    }
+
+    @ApiOperation("获取任务照片")
+    @PostMapping("/getBoxPhotos")
+    public AjaxResult getBoxPhotos(@RequestBody BoxPhotosDTO boxPhotosDTO) {
+        List<BoxPhotosReceiver> boxPhotos = tyService.getBoxPhotos(boxPhotosDTO);
+        return AjaxResult.success(boxPhotos);
+    }
+
+    @ApiOperation("修改云盒设置")
+    @PostMapping("/updateBoxSettings")
+    public AjaxResult updateBoxSettings(@RequestBody BoxSettingsDTO boxSettingsDTO) {
+        Boolean state = tyService.updateBoxSettings(boxSettingsDTO);
+        return AjaxResult.success(state);
+    }
+
+    @ApiOperation(value = "云台转动(基于角度)", notes = "actionCode值:0-回中,1-上,2-右上,3-右,4-右下,5-下,6-左下,7-左,8-左上,254-停止")
+    @ApiOperationSupport(order = 1)
+    @PostMapping("/angleControl")
+    public AjaxResult angleControl(@RequestBody AngleControlDTO angleControlDto) {
+        tyService.angleControl(angleControlDto);
+        return AjaxResult.success();
+    }
+
+    @ApiOperation(value = "云台绝对值控制(基于角度)", notes = "俯仰pitch范围:[-120°至+30°] 平移yaw范围:[-180°至+180°] 横滚roll范围:[-90°至+60°]")
+    @ApiOperationSupport(order = 2)
+    @PostMapping("/absAngleControl")
+    public AjaxResult absAngleControl(@RequestBody @Validated AbsAngleControlDTO angleControlDto) {
+        tyService.absAngleControl(angleControlDto);
+        return AjaxResult.success();
+    }
+
+    @ApiOperation(value = "云台转动(基于速度)", notes = "俯仰转动速度:上正下负 平移转动速度:右正左负 横滚转动速度:顺时针正,逆时针负")
+    @ApiOperationSupport(order = 3)
+    @PostMapping("/speedControl")
+    public AjaxResult speedControl(@RequestBody @Validated SpeedControlDTO speedControlDto) {
+        tyService.speedControl(speedControlDto);
+        return AjaxResult.success();
+    }
+
+    @ApiOperation("拍照")
+    @ApiOperationSupport(order = 4)
+    @PostMapping("/capturePicDto")
+    public AjaxResult capturePic(@RequestBody CapturePicDTO capturePicDto) {
+        tyService.capturePic(capturePicDto);
+        return AjaxResult.success();
+    }
+
+    @ApiOperation("录像")
+    @ApiOperationSupport(order = 5)
+    @PostMapping("/record")
+    public AjaxResult record(@RequestBody RecordDTO recordDto) {
+        tyService.record(recordDto);
+        return AjaxResult.success();
+    }
+
+    @ApiOperation(value = "变倍", notes = "actionCode值:10变倍加 | 11变倍减 | 15复位 | 255停止")
+    @ApiOperationSupport(order = 6)
+    @PostMapping("/zoom")
+    public AjaxResult zoom(@RequestBody ZoomDTO zoomDTO) {
+        tyService.zoom(zoomDTO);
+        return AjaxResult.success();
+    }
+    @ApiOperation("变倍指定倍数")
+    @ApiOperationSupport(order = 7)
+    @PostMapping("/zoomToLevel")
+    public AjaxResult zoomToLevel(@RequestBody ZoomToLevelDTO zoomToLevelDTO) {
+        tyService.zoomToLevel(zoomToLevelDTO);
+        return AjaxResult.success();
+    }
+
+    @ApiOperation(value = "切换摄像头", notes = "actionParam值:0切换到FPV摄像头  | 1切换到载荷摄像头")
+    @ApiOperationSupport(order = 8)
+    @PostMapping("/switchCamera")
+    public AjaxResult switchCamera(@RequestBody SwitchCameraDTO switchCameraDTO) {
+        tyService.switchCamera(switchCameraDTO);
+        return AjaxResult.success();
+    }
+    @ApiOperation(value = "切换视频源", notes = "相机在主相机镜头时有效,FPV镜头时无效 actionParam值:0-可见 1-变焦 2-红外")
+    @ApiOperationSupport(order = 8)
+    @PostMapping("/switchSource")
+    public AjaxResult switchSource(@RequestBody SwitchSourceDTO switchSourceDTO) {
+        tyService.switchSource(switchSourceDTO);
+        return AjaxResult.success();
+    }
+
+    @ApiOperation(value = "打开或关闭照片回传", notes = "actionParam值:0-关闭,1-打开")
+    @ApiOperationSupport(order = 8)
+    @PostMapping("/photoReturnToggle")
+    public AjaxResult photoReturnToggle(@RequestBody PhotoReturnToggleDTO photoReturnToggleDTO) {
+        tyService.photoReturnToggle(photoReturnToggleDTO);
+        return AjaxResult.success();
+    }
+
+    @ApiOperation("获取无人机状态")
+    @GetMapping("/getUavState")
+    public AjaxResult getUavState(String boxSn) {
+        UavState uavState = tyService.getUavState(boxSn);
+        return AjaxResult.success(uavState);
+    }
+
+    @ApiOperation("获取无人机遥测数据")
+    @GetMapping("/getUavTelemetryData")
+    public AjaxResult getUavTelemetryData(String boxSn) {
+        TelemetryData telemetryData = tyService.getUavTelemetryData(boxSn);
+        return AjaxResult.success(telemetryData);
+    }
+
+    @ApiOperation("获取无人机信道质量数据")
+    @GetMapping("/getSignalInfo")
+    public AjaxResult getSignalInfo(String boxSn) {
+        SignalInfo signalInfo = tyService.getSignalInfo(boxSn);
+        return AjaxResult.success(signalInfo);
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3