package com.ard.tianyu.controller;
|
|
import com.ard.common.core.domain.AjaxResult;
|
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.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
import java.util.List;
|
|
/**
|
* UavTest
|
*
|
* @author liusuyi
|
* @date 2024年10月21日13:52
|
**/
|
@Api(tags = "无人机接口")
|
@RequestMapping("/uav")
|
@RestController
|
public class UavController {
|
|
@Resource
|
private ITyService tyService;
|
|
@ApiOperation("获取天宇token信息")
|
@GetMapping("/getToken")
|
public AjaxResult getToken() {
|
return AjaxResult.success(tyService.getAccessToken());
|
}
|
|
@ApiOperation("获取天宇盒子列表")
|
@GetMapping("/getBoxList")
|
public AjaxResult getBoxList() {
|
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);
|
}
|
}
|