zhaowenyu
2026-01-06 4e8a1c02b45f72f6377603778e8c8746ed82f374
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
package com.ard.web.controller.work;
 
import com.ard.common.core.domain.AjaxResult;
import com.ard.work.domain.dto.manual.*;
import com.ard.work.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.*;
 
import javax.annotation.Resource;
 
/**
 * UavManualFlyController
 *
 * @author liusuyi
 * @date 2024年10月21日13:52
 **/
@Api(tags = "无人机手动飞行接口")
@RequestMapping("/uav/manualFly")
@RestController
public class UavManualFlyController {
 
    @Resource
    private ITyService tyService;
 
    @ApiOperation(value = "切换无人机控制权", notes = "actionParam值:0-云盒获取控制权, 1-云盒释放控制权")
    @ApiOperationSupport(order = 1)
    @PostMapping("/switchUavControl")
    public AjaxResult switchUavControl(@RequestBody SwitchUavControlDTO switchUavControlDTO) {
        tyService.switchUavControl(switchUavControlDTO);
        return AjaxResult.success();
    }
 
    @ApiOperation(value = "起飞", notes = "起飞高度height取值范围:1.2~100,误差:+-0.4米")
    @ApiOperationSupport(order = 2)
    @PostMapping("/takeOff")
    public AjaxResult takeOff(@RequestBody TakeOffDTO takeOffDTO) {
        tyService.takeOff(takeOffDTO);
        return AjaxResult.success();
    }
 
    @ApiOperation("返航")
    @ApiOperationSupport(order = 3)
    @PostMapping("/returnHome")
    public AjaxResult returnHome(@RequestBody ReturnHomeDTO returnHomeDTO) {
        tyService.returnHome(returnHomeDTO);
        return AjaxResult.success();
    }
 
    @ApiOperation("取消返航")
    @ApiOperationSupport(order = 4)
    @PostMapping("/returnHomeCancel")
    public AjaxResult returnHomeCancel(@RequestBody ReturnHomeCancelDTO returnHomeCancelDTO) {
        tyService.returnHomeCancel(returnHomeCancelDTO);
        return AjaxResult.success();
    }
 
    @ApiOperation("降落")
    @ApiOperationSupport(order = 5)
    @PostMapping("/land")
    public AjaxResult land(@RequestBody LandDTO landDTO) {
        tyService.land(landDTO);
        return AjaxResult.success();
    }
 
    @ApiOperation("取消降落")
    @ApiOperationSupport(order = 6)
    @PostMapping("/landCancel")
    public AjaxResult landCancel(@RequestBody LandCancelDTO landCancelDTO) {
        tyService.landCancel(landCancelDTO);
        return AjaxResult.success();
    }
 
    @ApiOperation(value = "强制降落",notes = "强制无人机在当前位置降落,不理会蔽障信息,调用此指令时需人工确定降落地点安全")
    @ApiOperationSupport(order = 7)
    @PostMapping("/landForced")
    public AjaxResult landForced(@RequestBody LandForcedDTO landForcedDTO) {
        tyService.landForced(landForcedDTO);
        return AjaxResult.success();
    }
 
    @ApiOperation(value = "方向控制", notes = "前后速度frSpeed:【前0至30 后0至-30】单位m/s " +
            "左右速度lrSpeed:【右0至30 左0至-30】单位m/s  " +
            "上下速度udSpeed:【上0至5 后0至-5 】单位m/s 偏航角yaw:-150~150 deg/s")
    @ApiOperationSupport(order = 8)
    @PostMapping("/flyControl")
    public AjaxResult flyControl(@RequestBody FlyControlDTO flyControlDTO) {
        tyService.flyControl(flyControlDTO);
        return AjaxResult.success();
    }
 
    @ApiOperation(value = "开始指点飞行", notes = "速度speed:0~20 单位m/s " +
            "飞行模式flyMode:0-节能模式【飞机直线飞到目标点,需飞机在空中】," +
            "1-安全模式【飞机飞行至目标点高度再平飞到目标点,飞机可以在地面或空中】 默认为节能模式")
    @ApiOperationSupport(order = 9)
    @PostMapping("/flyPointControl")
    public AjaxResult flyPointControl(@RequestBody FlyPointControlDTO flyPointControlDTO) {
        tyService.flyPointControl(flyPointControlDTO);
        return AjaxResult.success();
    }
 
    @ApiOperation("停止指点飞行")
    @ApiOperationSupport(order = 10)
    @PostMapping("/flyPointControlCancel")
    public AjaxResult flyPointControlCancel(@RequestBody FlyPointControlCancelDTO flyPointControlCancelDTO) {
        tyService.flyPointControlCancel(flyPointControlCancelDTO);
        return AjaxResult.success();
    }
 
    @ApiOperation(value = "开始环绕飞行", notes = "速度speed:0~20 单位m/s " +
            "环绕半径radius:单位m,"+
            "飞行模式flyMode:0-节能模式【飞机直线飞到目标点,需飞机在空中】," +
            "1-安全模式【飞机飞行至目标点高度再平飞到目标点,飞机可以在地面或空中】 默认为节能模式")
    @ApiOperationSupport(order = 9)
    @PostMapping("/flyRoundControl")
    public AjaxResult flyRoundControl(@RequestBody FlyRoundControlDTO flyRoundControlDTO) {
        tyService.FlyRoundControl(flyRoundControlDTO);
        return AjaxResult.success();
    }
 
    @ApiOperation("停止环绕飞行")
    @ApiOperationSupport(order = 10)
    @PostMapping("/flyRoundControlCancel")
    public AjaxResult flyRoundControlCancel(@RequestBody FlyRoundControlCancelDTO flyRoundControlCancelDTO) {
        tyService.FlyRoundControlCancel(flyRoundControlCancelDTO);
        return AjaxResult.success();
    }
 
    @ApiOperation(value = "紧急制动", notes = "动作参数actionParam: 0-解除紧急制动 1-紧急制动")
    @ApiOperationSupport(order = 11)
    @PostMapping("/emeragencyBrake")
    public AjaxResult emeragencyBrake(@RequestBody EmeragencyBrakeDTO emeragencyBrakeDTO) {
        tyService.emeragencyBrake(emeragencyBrakeDTO);
        return AjaxResult.success();
    }
}