Browse Source

What's new?

1. 拆分Cloud SDK,单独打包,在sample 项目中通过包的形式引入Cloud SDK。
        2. 增加webrtc 功能示例,将直播配置数据放在后端。
        3. 增加自定义飞行区功能示例。
        4. 在Cloud SDK 中补齐所有开放的协议。
v1.9.0
sean.zhou 11 months ago
parent
commit
73f5ab467d
  1. 2
      README.md
  2. 152
      api/Cloud API Demo.postman_collection.json
  3. 48
      cloud-sdk/README.md
  4. 0
      cloud-sdk/image/1.png
  5. 0
      cloud-sdk/image/2.png
  6. 0
      cloud-sdk/image/3.png
  7. 0
      cloud-sdk/image/4.png
  8. 0
      cloud-sdk/image/5.png
  9. 0
      cloud-sdk/image/6.png
  10. 0
      cloud-sdk/image/7.png
  11. 32
      cloud-sdk/pom.xml
  12. 0
      cloud-sdk/src/main/java/com/dji/sdk/annotations/CloudSDKVersion.java
  13. 178
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/airsense/AirsenseWarning.java
  14. 39
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/airsense/AltitudeTypeEnum.java
  15. 41
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/airsense/VertTrendEnum.java
  16. 45
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/airsense/WarningLevelEnum.java
  17. 36
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/airsense/api/AbstractAirsenseService.java
  18. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/config/ConfigScopeEnum.java
  19. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/config/ConfigTypeEnum.java
  20. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/config/ProductConfigResponse.java
  21. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/config/RequestsConfigRequest.java
  22. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/config/api/AbstractConfigService.java
  23. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraAimRequest.java
  24. 68
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraExposureModeSetRequest.java
  25. 68
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraExposureSetRequest.java
  26. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFocalLengthSetRequest.java
  27. 68
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFocusModeSetRequest.java
  28. 68
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFocusValueSetRequest.java
  29. 98
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraLookAtRequest.java
  30. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraModeSwitchRequest.java
  31. 36
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraPhotoStopRequest.java
  32. 56
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraPhotoTakeProgress.java
  33. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraPhotoTakeRequest.java
  34. 93
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraPointFocusActionRequest.java
  35. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraRecordingStartRequest.java
  36. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraRecordingStopRequest.java
  37. 58
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraScreenSplitRequest.java
  38. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraTypeEnum.java
  39. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CommanderFlightModeEnum.java
  40. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CommanderModeLostActionEnum.java
  41. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/ControlErrorCodeEnum.java
  42. 90
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/ControlMethodEnum.java
  43. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DelayInfoPush.java
  44. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DrcModeEnterRequest.java
  45. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DrcModeMqttBroker.java
  46. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DrcStatusErrorEnum.java
  47. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DrcStatusNotify.java
  48. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DroneControlRequest.java
  49. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DroneControlResponse.java
  50. 36
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/ExposureCameraTypeEnum.java
  51. 44
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/ExposureModeEnum.java
  52. 107
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/ExposureValueEnum.java
  53. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/FlyToPointProgress.java
  54. 70
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/FlyToPointRequest.java
  55. 59
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/FlyToPointUpdateRequest.java
  56. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/FlyToStatusEnum.java
  57. 40
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/FocusModeEnum.java
  58. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/GimbalResetModeEnum.java
  59. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/GimbalResetRequest.java
  60. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/HeartBeatRequest.java
  61. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/HsiInfoPush.java
  62. 116
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/IrMeteringAreaSetRequest.java
  63. 55
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/IrMeteringModeSetRequest.java
  64. 80
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/IrMeteringPointSetRequest.java
  65. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/JoystickInvalidNotify.java
  66. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/JoystickInvalidReasonEnum.java
  67. 40
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/LensStorageSettingsEnum.java
  68. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/LiveviewDelay.java
  69. 41
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/MeteringModeEnum.java
  70. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/OsdInfoPush.java
  71. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PayloadAuthorityGrabRequest.java
  72. 78
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PayloadControlMethodEnum.java
  73. 61
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PhotoStorageSetRequest.java
  74. 42
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PhotoTakeProgressData.java
  75. 32
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PhotoTakeProgressExt.java
  76. 43
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PhotoTakeProgressStepEnum.java
  77. 35
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PoiCircleSpeedSetRequest.java
  78. 69
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PoiModeEnterRequest.java
  79. 80
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PoiStatusNotify.java
  80. 53
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PoiStatusReasonEnum.java
  81. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/Point.java
  82. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/TakeoffStatusEnum.java
  83. 135
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/TakeoffToPointProgress.java
  84. 235
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/TakeoffToPointRequest.java
  85. 61
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/VideoStorageSetRequest.java
  86. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/ZoomCameraTypeEnum.java
  87. 665
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/api/AbstractControlService.java
  88. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/AirConditionerModeSwitchActionEnum.java
  89. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/AirConditionerModeSwitchRequest.java
  90. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/AlarmStateSwitchRequest.java
  91. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/BatteryMaintenanceSwitchRequest.java
  92. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/BatteryStoreModeSwitchRequest.java
  93. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/DebugErrorCodeEnum.java
  94. 84
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/DebugMethodEnum.java
  95. 38
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/DongleDeviceTypeEnum.java
  96. 54
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/EsimActivateRequest.java
  97. 71
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/EsimOperatorSwitchRequest.java
  98. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/RemoteDebugProgress.java
  99. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/RemoteDebugProgressData.java
  100. 0
      cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/RemoteDebugResponse.java
  101. Some files were not shown because too many files have changed in this diff Show More

2
README.md

@ -14,7 +14,7 @@ For more documentation, please visit the [DJI Developer Documentation](https://d
## Latest Release ## Latest Release
Cloud API 1.8.0 was released on 11 Dec 2023. For more information, please visit the [Release Note](https://developer.dji.com/doc/cloud-api-tutorial/cn/). Cloud API 1.8.0 was released on 22 Feb 2024. For more information, please visit the [Release Note](https://developer.dji.com/doc/cloud-api-tutorial/cn/).
## License ## License

152
api/Cloud API Demo.postman_collection.json

@ -1050,6 +1050,150 @@
} }
}, },
"response": [] "response": []
},
{
"name": "Get Flight Areas",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}{{map_version}}/workspaces/{{workspace_id}}/flight-areas",
"host": [
"{{base_url}}{{map_version}}"
],
"path": [
"workspaces",
"{{workspace_id}}",
"flight-areas"
]
}
},
"response": []
},
{
"name": "Add Flight Area",
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"name\": \"123\",\r\n \"type\": \"dfence\",\r\n \"content\": {\r\n \"properties\": {\r\n \"clampToGround\": true,\r\n \"color\": \"#FF0000\"\r\n },\r\n \"geometry\": {\r\n \"type\": \"Circle\",\r\n \"coordinates\": [\r\n 25.41512807678825,\r\n 4.642350757553345\r\n ],\r\n \"radius\": 12.2\r\n }\r\n }\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{base_url}}{{map_version}}/workspaces/{{workspace_id}}/flight-area",
"host": [
"{{base_url}}{{map_version}}"
],
"path": [
"workspaces",
"{{workspace_id}}",
"flight-area"
]
}
},
"response": []
},
{
"name": "Update Flight Area",
"request": {
"method": "PUT",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"name\": \"123\",\r\n \"status\": false,\r\n \"content\": {\r\n \"properties\": {\r\n \"clampToGround\": true,\r\n \"color\": \"#FF0000\"\r\n },\r\n \"geometry\": {\r\n \"type\": \"Circle\",\r\n \"coordinates\": [\r\n 25.41512807678825,\r\n 4.642350757553345\r\n ],\r\n \"radius\": 12.2\r\n }\r\n }\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{base_url}}{{map_version}}/workspaces/{{workspace_id}}/flight-area/{{area_id}}",
"host": [
"{{base_url}}{{map_version}}"
],
"path": [
"workspaces",
"{{workspace_id}}",
"flight-area",
"{{area_id}}"
]
}
},
"response": []
},
{
"name": "Delete Flight Area",
"request": {
"method": "DELETE",
"header": [],
"url": {
"raw": "{{base_url}}{{map_version}}/workspaces/{{workspace_id}}/flight-area/{{area_id}}",
"host": [
"{{base_url}}{{map_version}}"
],
"path": [
"workspaces",
"{{workspace_id}}",
"flight-area",
"{{area_id}}"
]
}
},
"response": []
},
{
"name": "Sync Device Flight Area",
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"device_sn\": [\"123\"]\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{base_url}}{{map_version}}/workspaces/{{workspace_id}}/flight-area/sync",
"host": [
"{{base_url}}{{map_version}}"
],
"path": [
"workspaces",
"{{workspace_id}}",
"flight-area",
"sync"
]
}
},
"response": []
},
{
"name": "Device Flight Area Status",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}{{map_version}}/workspaces/{{workspace_id}}/device-status",
"host": [
"{{base_url}}{{map_version}}"
],
"path": [
"workspaces",
"{{workspace_id}}",
"device-status"
]
}
},
"response": []
} }
], ],
"auth": { "auth": {
@ -1411,7 +1555,7 @@
"method": "DELETE", "method": "DELETE",
"header": [], "header": [],
"url": { "url": {
"raw": "{{base_url}}{{wayline_version}}/workspaces/{{workspace_id}}/favorites?ids=uuid,uuid1", "raw": "{{base_url}}{{wayline_version}}/workspaces/{{workspace_id}}/favorites?id=uuid,uuid1",
"host": [ "host": [
"{{base_url}}{{wayline_version}}" "{{base_url}}{{wayline_version}}"
], ],
@ -1422,7 +1566,7 @@
], ],
"query": [ "query": [
{ {
"key": "ids", "key": "id",
"value": "uuid,uuid1" "value": "uuid,uuid1"
} }
] ]
@ -1436,7 +1580,7 @@
"method": "POST", "method": "POST",
"header": [], "header": [],
"url": { "url": {
"raw": "{{base_url}}{{wayline_version}}/workspaces/{{workspace_id}}/favorites?ids=uuid,uuid1", "raw": "{{base_url}}{{wayline_version}}/workspaces/{{workspace_id}}/favorites?id=uuid,uuid1",
"host": [ "host": [
"{{base_url}}{{wayline_version}}" "{{base_url}}{{wayline_version}}"
], ],
@ -1447,7 +1591,7 @@
], ],
"query": [ "query": [
{ {
"key": "ids", "key": "id",
"value": "uuid,uuid1" "value": "uuid,uuid1"
} }
] ]

48
cloud-sdk/README.md

@ -0,0 +1,48 @@
# 如何接入CloudSDK
### 1. 在组件扫描中增加包名:com.dji.sdk
### [2. 连接MQTT](#如何连接MQTT)
### [3. 实现SDK 的方法](#如何实现SDK的方法)
### [4. 调用SDK 的方法](#如何调用SDK的方法)
## 如何连接MQTT
- 在spring容器中注入MqttConnectOptions和MqttPahoClientFactory;
![1](./image/6.png)
- 在application.yml中配置cloud-sdk.mqtt.inbound-topic,未配置则不进行初始化订阅。
## 如何实现SDK的方法
- 定义一个类,继承com.dji.sdk.cloudapi.*.api包中的抽象类;
- 重写具体的方法以实现功能;
- 将定义的类放入spring容器中,由spring管理bean的生命周期。
### 【设备上线】示例:
- 定义一个类:SDKDeviceService 继承AbstractDeviceService;
![1](./image/1.png)
- 重写方法updateTopoOnline,实现设备上线功能。
![1](./image/2.png)
## 如何调用SDK的方法
- 定义一个类,继承com.dji.sdk.cloudapi.*.api包中的抽象类;
- 在需要调用的类中注入该类;
- 调用具体的方法。
### 【航线预下发命令】示例:
- 定义一个类:SDKWaylineService 继承 AbstractWaylineService;
![1](./image/3.png)
- 在WaylineJobServiceImpl中注入该类;
![1](./image/4.png)
- 调用下发命令的方法:
![1](./image/5.png)
## 如何实现CloudAPI 定义的http 接口
- 定义一个类,实现com.dji.sdk.cloudapi.*.api包中的http接口类;
- 重写具体的方法以实现接口,无需定义请求地址和方法等数据。
![1](./image/7.png)
## 如何查看CloudAPI 定义的所有http 接口
- 启动程序
- 浏览器打开:http://localhost:6789/swagger-ui/index.html
## 如何接入WebSocket
- CloudSDK 已经定义了WebSocket服务,但是没有实现WebSocket管理。默认地址为:http://localhost:6789/api/v1/ws
- 自定义接入参考:com.dji.sample.component.websocket.config

0
src/main/resources/image/1.png → cloud-sdk/image/1.png

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

0
src/main/resources/image/2.png → cloud-sdk/image/2.png

Before

Width:  |  Height:  |  Size: 144 KiB

After

Width:  |  Height:  |  Size: 144 KiB

0
src/main/resources/image/3.png → cloud-sdk/image/3.png

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

0
src/main/resources/image/4.png → cloud-sdk/image/4.png

Before

Width:  |  Height:  |  Size: 195 KiB

After

Width:  |  Height:  |  Size: 195 KiB

0
src/main/resources/image/5.png → cloud-sdk/image/5.png

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

0
src/main/resources/image/6.png → cloud-sdk/image/6.png

Before

Width:  |  Height:  |  Size: 223 KiB

After

Width:  |  Height:  |  Size: 223 KiB

0
src/main/resources/image/7.png → cloud-sdk/image/7.png

Before

Width:  |  Height:  |  Size: 181 KiB

After

Width:  |  Height:  |  Size: 181 KiB

32
cloud-sdk/pom.xml

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>cloud-api-sample</artifactId>
<groupId>com.dji</groupId>
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cloud-sdk</artifactId>
<version>${cloud-sdk.revision}</version>
<dependencies>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.7.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
</dependencies>
</project>

0
src/main/java/com/dji/sdk/annotations/CloudSDKVersion.java → cloud-sdk/src/main/java/com/dji/sdk/annotations/CloudSDKVersion.java

178
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/airsense/AirsenseWarning.java

@ -0,0 +1,178 @@
package com.dji.sdk.cloudapi.airsense;
/**
* @author sean
* @version 1.7
* @date 2023/10/16
*/
public class AirsenseWarning {
/**
* ICAO civil aviation aircraft address
*/
private String icao;
/**
* The higher the danger level, the more dangerous it is.
* For levels greater than or equal to 3, it is recommended for aircraft to take evasive action.
*/
private WarningLevelEnum warningLevel;
/**
* The latitude of aircraft location is angular values.
* Negative values for south latitude and positive values for north latitude.
* It is accurate to six decimal places.
*/
private Float latitude;
/**
* The longitude of aircraft location is angular values.
* Negative values for west longitude and positive values for east longitude.
* It is accurate to six decimal places.
*/
private Float longitude;
/**
* Absolute height of flight.
* Unit: meter
*/
private Integer altitude;
/**
* Absolute height type
*/
private AltitudeTypeEnum altitudeType;
/**
* The angle of heading is angular values.
* 0 is north. 90 is east.
* It is accurate to one decimal places.
*/
private Float heading;
/**
* Relative height of flight to aircraft.
* Unit: meter
*/
private Integer relativeAltitude;
/**
* Relative height change trend
*/
private VertTrendEnum vertTrend;
/**
* Horizontal distance to aircraft.
* Unit: meter
*/
private Integer distance;
public AirsenseWarning() {
}
@Override
public String toString() {
return "AirsenseWarning{" +
"icao='" + icao + '\'' +
", warningLevel=" + warningLevel +
", latitude=" + latitude +
", longitude=" + longitude +
", altitude=" + altitude +
", altitudeType=" + altitudeType +
", heading=" + heading +
", relativeAltitude=" + relativeAltitude +
", vertTrend=" + vertTrend +
", distance=" + distance +
'}';
}
public String getIcao() {
return icao;
}
public AirsenseWarning setIcao(String icao) {
this.icao = icao;
return this;
}
public WarningLevelEnum getWarningLevel() {
return warningLevel;
}
public AirsenseWarning setWarningLevel(WarningLevelEnum warningLevel) {
this.warningLevel = warningLevel;
return this;
}
public Float getLatitude() {
return latitude;
}
public AirsenseWarning setLatitude(Float latitude) {
this.latitude = latitude;
return this;
}
public Float getLongitude() {
return longitude;
}
public AirsenseWarning setLongitude(Float longitude) {
this.longitude = longitude;
return this;
}
public Integer getAltitude() {
return altitude;
}
public AirsenseWarning setAltitude(Integer altitude) {
this.altitude = altitude;
return this;
}
public AltitudeTypeEnum getAltitudeType() {
return altitudeType;
}
public AirsenseWarning setAltitudeType(AltitudeTypeEnum altitudeType) {
this.altitudeType = altitudeType;
return this;
}
public Float getHeading() {
return heading;
}
public AirsenseWarning setHeading(Float heading) {
this.heading = heading;
return this;
}
public Integer getRelativeAltitude() {
return relativeAltitude;
}
public AirsenseWarning setRelativeAltitude(Integer relativeAltitude) {
this.relativeAltitude = relativeAltitude;
return this;
}
public VertTrendEnum getVertTrend() {
return vertTrend;
}
public AirsenseWarning setVertTrend(VertTrendEnum vertTrend) {
this.vertTrend = vertTrend;
return this;
}
public Integer getDistance() {
return distance;
}
public AirsenseWarning setDistance(Integer distance) {
this.distance = distance;
return this;
}
}

39
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/airsense/AltitudeTypeEnum.java

@ -0,0 +1,39 @@
package com.dji.sdk.cloudapi.airsense;
import com.dji.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
/**
* @author sean
* @version 1.7
* @date 2023/10/16
*/
public enum AltitudeTypeEnum {
ELLIPSOID_HEIGHT(0),
ABOVE_SEA_LEVEL(1),
;
private final int type;
AltitudeTypeEnum(int type) {
this.type = type;
}
@JsonValue
public int getType() {
return type;
}
@JsonCreator
public static AltitudeTypeEnum find(int type) {
return Arrays.stream(values()).filter(typeEnum -> typeEnum.type == type).findAny()
.orElseThrow(() -> new CloudSDKException(AltitudeTypeEnum.class, type));
}
}

41
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/airsense/VertTrendEnum.java

@ -0,0 +1,41 @@
package com.dji.sdk.cloudapi.airsense;
import com.dji.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
/**
* @author sean
* @version 1.7
* @date 2023/10/16
*/
public enum VertTrendEnum {
RELATIVE_HEIGHT_UNCHANGED(0),
RELATIVE_HEIGHT_INCREASE(1),
RELATIVE_HEIGHT_DECREASE(2),
;
private final int trend;
VertTrendEnum(int trend) {
this.trend = trend;
}
@JsonValue
public int getTrend() {
return trend;
}
@JsonCreator
public static VertTrendEnum find(int trend) {
return Arrays.stream(values()).filter(trendEnum -> trendEnum.trend == trend).findAny()
.orElseThrow(() -> new CloudSDKException(VertTrendEnum.class, trend));
}
}

45
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/airsense/WarningLevelEnum.java

@ -0,0 +1,45 @@
package com.dji.sdk.cloudapi.airsense;
import com.dji.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
/**
* @author sean
* @version 1.7
* @date 2023/10/16
*/
public enum WarningLevelEnum {
ZERO(0),
ONE(1),
TWO(2),
THREE(3),
FOUR(4),
;
private final int level;
WarningLevelEnum(int level) {
this.level = level;
}
@JsonValue
public int getLevel() {
return level;
}
@JsonCreator
public static WarningLevelEnum find(int level) {
return Arrays.stream(values()).filter(levelEnum -> levelEnum.level == level).findAny()
.orElseThrow(() -> new CloudSDKException(WarningLevelEnum.class, level));
}
}

36
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/airsense/api/AbstractAirsenseService.java

@ -0,0 +1,36 @@
package com.dji.sdk.cloudapi.airsense.api;
import com.dji.sdk.annotations.CloudSDKVersion;
import com.dji.sdk.cloudapi.airsense.AirsenseWarning;
import com.dji.sdk.config.version.CloudSDKVersionEnum;
import com.dji.sdk.mqtt.ChannelName;
import com.dji.sdk.mqtt.MqttReply;
import com.dji.sdk.mqtt.events.TopicEventsRequest;
import com.dji.sdk.mqtt.events.TopicEventsResponse;
import org.springframework.integration.annotation.ServiceActivator;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageHeaders;
import java.util.List;
/**
* @author sean
* @version 1.7
* @date 2023/10/16
*/
public abstract class AbstractAirsenseService {
/**
* cloud-custom data transmit from psdk
* @param request data
* @param headers The headers for a {@link Message}.
* @return events_reply
*/
@ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_AIRSENSE_WARNING, outputChannel = ChannelName.OUTBOUND_EVENTS)
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0)
public TopicEventsResponse<MqttReply> airsenseWarning(TopicEventsRequest<List<AirsenseWarning>> request, MessageHeaders headers) {
throw new UnsupportedOperationException("airsenseWarning not implemented");
}
}

0
src/main/java/com/dji/sdk/cloudapi/config/ConfigScopeEnum.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/config/ConfigScopeEnum.java

0
src/main/java/com/dji/sdk/cloudapi/config/ConfigTypeEnum.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/config/ConfigTypeEnum.java

0
src/main/java/com/dji/sdk/cloudapi/config/ProductConfigResponse.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/config/ProductConfigResponse.java

0
src/main/java/com/dji/sdk/cloudapi/config/RequestsConfigRequest.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/config/RequestsConfigRequest.java

0
src/main/java/com/dji/sdk/cloudapi/config/api/AbstractConfigService.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/config/api/AbstractConfigService.java

0
src/main/java/com/dji/sdk/cloudapi/control/CameraAimRequest.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraAimRequest.java

68
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraExposureModeSetRequest.java

@ -0,0 +1,68 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.cloudapi.device.PayloadIndex;
import com.dji.sdk.common.BaseModel;
import javax.validation.constraints.NotNull;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public class CameraExposureModeSetRequest extends BaseModel {
/**
* Camera enumeration.
* It is unofficial device_mode_key.
* The format is *{type-subtype-gimbalindex}*.
* Please read [Product Supported](https://developer.dji.com/doc/cloud-api-tutorial/en/overview/product-support.html)
*/
@NotNull
private PayloadIndex payloadIndex;
@NotNull
private ExposureCameraTypeEnum cameraType;
@NotNull
private ExposureModeEnum exposureMode;
public CameraExposureModeSetRequest() {
}
@Override
public String toString() {
return "CameraExposureModeSetRequest{" +
"payloadIndex=" + payloadIndex +
", cameraType=" + cameraType +
", exposureMode=" + exposureMode +
'}';
}
public PayloadIndex getPayloadIndex() {
return payloadIndex;
}
public CameraExposureModeSetRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
public ExposureCameraTypeEnum getCameraType() {
return cameraType;
}
public CameraExposureModeSetRequest setCameraType(ExposureCameraTypeEnum cameraType) {
this.cameraType = cameraType;
return this;
}
public ExposureModeEnum getExposureMode() {
return exposureMode;
}
public CameraExposureModeSetRequest setExposureMode(ExposureModeEnum exposureMode) {
this.exposureMode = exposureMode;
return this;
}
}

68
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraExposureSetRequest.java

@ -0,0 +1,68 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.cloudapi.device.PayloadIndex;
import com.dji.sdk.common.BaseModel;
import javax.validation.constraints.NotNull;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public class CameraExposureSetRequest extends BaseModel {
/**
* Camera enumeration.
* It is unofficial device_mode_key.
* The format is *{type-subtype-gimbalindex}*.
* Please read [Product Supported](https://developer.dji.com/doc/cloud-api-tutorial/en/overview/product-support.html)
*/
@NotNull
private PayloadIndex payloadIndex;
@NotNull
private ExposureCameraTypeEnum cameraType;
@NotNull
private ExposureValueEnum exposureValue;
public CameraExposureSetRequest() {
}
@Override
public String toString() {
return "CameraExposureSetRequest{" +
"payloadIndex=" + payloadIndex +
", cameraType=" + cameraType +
", exposureValue=" + exposureValue +
'}';
}
public PayloadIndex getPayloadIndex() {
return payloadIndex;
}
public CameraExposureSetRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
public ExposureCameraTypeEnum getCameraType() {
return cameraType;
}
public CameraExposureSetRequest setCameraType(ExposureCameraTypeEnum cameraType) {
this.cameraType = cameraType;
return this;
}
public ExposureValueEnum getExposureValue() {
return exposureValue;
}
public CameraExposureSetRequest setExposureValue(ExposureValueEnum exposureValue) {
this.exposureValue = exposureValue;
return this;
}
}

0
src/main/java/com/dji/sdk/cloudapi/control/CameraFocalLengthSetRequest.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFocalLengthSetRequest.java

68
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFocusModeSetRequest.java

@ -0,0 +1,68 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.cloudapi.device.PayloadIndex;
import com.dji.sdk.common.BaseModel;
import javax.validation.constraints.NotNull;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public class CameraFocusModeSetRequest extends BaseModel {
/**
* Camera enumeration.
* It is unofficial device_mode_key.
* The format is *{type-subtype-gimbalindex}*.
* Please read [Product Supported](https://developer.dji.com/doc/cloud-api-tutorial/en/overview/product-support.html)
*/
@NotNull
private PayloadIndex payloadIndex;
@NotNull
private ExposureCameraTypeEnum cameraType;
@NotNull
private FocusModeEnum focusMode;
public CameraFocusModeSetRequest() {
}
@Override
public String toString() {
return "CameraFocusModeSetRequest{" +
"payloadIndex=" + payloadIndex +
", cameraType=" + cameraType +
", focusMode=" + focusMode +
'}';
}
public PayloadIndex getPayloadIndex() {
return payloadIndex;
}
public CameraFocusModeSetRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
public ExposureCameraTypeEnum getCameraType() {
return cameraType;
}
public CameraFocusModeSetRequest setCameraType(ExposureCameraTypeEnum cameraType) {
this.cameraType = cameraType;
return this;
}
public FocusModeEnum getFocusMode() {
return focusMode;
}
public CameraFocusModeSetRequest setFocusMode(FocusModeEnum focusMode) {
this.focusMode = focusMode;
return this;
}
}

68
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFocusValueSetRequest.java

@ -0,0 +1,68 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.cloudapi.device.PayloadIndex;
import com.dji.sdk.common.BaseModel;
import javax.validation.constraints.NotNull;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public class CameraFocusValueSetRequest extends BaseModel {
/**
* Camera enumeration.
* It is unofficial device_mode_key.
* The format is *{type-subtype-gimbalindex}*.
* Please read [Product Supported](https://developer.dji.com/doc/cloud-api-tutorial/en/overview/product-support.html)
*/
@NotNull
private PayloadIndex payloadIndex;
@NotNull
private ExposureCameraTypeEnum cameraType;
@NotNull
private Integer focusValue;
public CameraFocusValueSetRequest() {
}
@Override
public String toString() {
return "CameraFocusValueSetRequest{" +
"payloadIndex=" + payloadIndex +
", cameraType=" + cameraType +
", focusValue=" + focusValue +
'}';
}
public PayloadIndex getPayloadIndex() {
return payloadIndex;
}
public CameraFocusValueSetRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
public ExposureCameraTypeEnum getCameraType() {
return cameraType;
}
public CameraFocusValueSetRequest setCameraType(ExposureCameraTypeEnum cameraType) {
this.cameraType = cameraType;
return this;
}
public Integer getFocusValue() {
return focusValue;
}
public CameraFocusValueSetRequest setFocusValue(Integer focusValue) {
this.focusValue = focusValue;
return this;
}
}

98
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraLookAtRequest.java

@ -0,0 +1,98 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.cloudapi.device.PayloadIndex;
import com.dji.sdk.common.BaseModel;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
/**
* @author sean
* @version 1.7
* @date 2023/10/12
*/
public class CameraLookAtRequest extends BaseModel {
/**
* Camera enumeration.
* It is unofficial device_mode_key.
* The format is *{type-subtype-gimbalindex}*.
* Please read [Product Supported](https://developer.dji.com/doc/cloud-api-tutorial/en/overview/product-support.html)
*/
@NotNull
private PayloadIndex payloadIndex;
/**
* Whether the relative location of drone head and gimbal is locked
*/
@NotNull
private Boolean locked;
/**
* The latitude of target point is angular values.
* Negative values for south latitude and positive values for north latitude.
* It is accurate to six decimal places.
*/
@Min(-90)
@Max(90)
@NotNull
private Float latitude;
/**
* The latitude of target point is angular values.
* Negative values for west longitude and positive values for east longitude.
* It is accurate to six decimal places.
*/
@NotNull
@Min(-180)
@Max(180)
private Float longitude;
/**
* Ellipsoid height
*/
@NotNull
@Min(2)
@Max(10000)
private Float height;
public CameraLookAtRequest() {
}
@Override
public String toString() {
return "CameraLookAtRequest{" +
"payloadIndex=" + payloadIndex +
", locked=" + locked +
", latitude=" + latitude +
", longitude=" + longitude +
", height=" + height +
'}';
}
public CameraLookAtRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
public CameraLookAtRequest setLocked(Boolean locked) {
this.locked = locked;
return this;
}
public CameraLookAtRequest setLatitude(Float latitude) {
this.latitude = latitude;
return this;
}
public CameraLookAtRequest setLongitude(Float longitude) {
this.longitude = longitude;
return this;
}
public CameraLookAtRequest setHeight(Float height) {
this.height = height;
return this;
}
}

0
src/main/java/com/dji/sdk/cloudapi/control/CameraModeSwitchRequest.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraModeSwitchRequest.java

36
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraPhotoStopRequest.java

@ -0,0 +1,36 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.cloudapi.device.PayloadIndex;
import com.dji.sdk.common.BaseModel;
import javax.validation.constraints.NotNull;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public class CameraPhotoStopRequest extends BaseModel {
@NotNull
private PayloadIndex payloadIndex;
public CameraPhotoStopRequest() {
}
@Override
public String toString() {
return "CameraPhotoStopRequest{" +
"payloadIndex=" + payloadIndex +
'}';
}
public PayloadIndex getPayloadIndex() {
return payloadIndex;
}
public CameraPhotoStopRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
}

56
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraPhotoTakeProgress.java

@ -0,0 +1,56 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.cloudapi.wayline.FlighttaskStatusEnum;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public class CameraPhotoTakeProgress {
private PhotoTakeProgressExt ext;
private PhotoTakeProgressData progress;
private FlighttaskStatusEnum status;
public CameraPhotoTakeProgress() {
}
@Override
public String toString() {
return "CameraPhotoTakeProgress{" +
"ext=" + ext +
", progress=" + progress +
", status=" + status +
'}';
}
public PhotoTakeProgressExt getExt() {
return ext;
}
public CameraPhotoTakeProgress setExt(PhotoTakeProgressExt ext) {
this.ext = ext;
return this;
}
public PhotoTakeProgressData getProgress() {
return progress;
}
public CameraPhotoTakeProgress setProgress(PhotoTakeProgressData progress) {
this.progress = progress;
return this;
}
public FlighttaskStatusEnum getStatus() {
return status;
}
public CameraPhotoTakeProgress setStatus(FlighttaskStatusEnum status) {
this.status = status;
return this;
}
}

0
src/main/java/com/dji/sdk/cloudapi/control/CameraPhotoTakeRequest.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraPhotoTakeRequest.java

93
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraPointFocusActionRequest.java

@ -0,0 +1,93 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.cloudapi.device.PayloadIndex;
import com.dji.sdk.common.BaseModel;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public class CameraPointFocusActionRequest extends BaseModel {
/**
* Camera enumeration.
* It is unofficial device_mode_key.
* The format is *{type-subtype-gimbalindex}*.
* Please read [Product Supported](https://developer.dji.com/doc/cloud-api-tutorial/en/overview/product-support.html)
*/
@NotNull
private PayloadIndex payloadIndex;
@NotNull
private ExposureCameraTypeEnum cameraType;
/**
* The coordinate x of the temperature measurement point is the upper left corner of the lens as the coordinate center point, and the horizontal direction is x.
*/
@NotNull
@Min(0)
@Max(1)
private Float x;
/**
* The coordinate y of the temperature measurement point is the upper left corner of the lens as the coordinate center point, and the vertical direction is y.
*/
@NotNull
@Min(0)
@Max(1)
private Float y;
public CameraPointFocusActionRequest() {
}
@Override
public String toString() {
return "CameraPointFocusActionRequest{" +
"payloadIndex=" + payloadIndex +
", cameraType=" + cameraType +
", x=" + x +
", y=" + y +
'}';
}
public PayloadIndex getPayloadIndex() {
return payloadIndex;
}
public CameraPointFocusActionRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
public ExposureCameraTypeEnum getCameraType() {
return cameraType;
}
public CameraPointFocusActionRequest setCameraType(ExposureCameraTypeEnum cameraType) {
this.cameraType = cameraType;
return this;
}
public Float getX() {
return x;
}
public CameraPointFocusActionRequest setX(Float x) {
this.x = x;
return this;
}
public Float getY() {
return y;
}
public CameraPointFocusActionRequest setY(Float y) {
this.y = y;
return this;
}
}

0
src/main/java/com/dji/sdk/cloudapi/control/CameraRecordingStartRequest.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraRecordingStartRequest.java

0
src/main/java/com/dji/sdk/cloudapi/control/CameraRecordingStopRequest.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraRecordingStopRequest.java

58
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraScreenSplitRequest.java

@ -0,0 +1,58 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.cloudapi.device.PayloadIndex;
import com.dji.sdk.common.BaseModel;
import javax.validation.constraints.NotNull;
/**
* @author sean
* @version 1.7
* @date 2023/10/12
*/
public class CameraScreenSplitRequest extends BaseModel {
/**
* Camera enumeration.
* It is unofficial device_mode_key.
* The format is *{type-subtype-gimbalindex}*.
* Please read [Product Supported](https://developer.dji.com/doc/cloud-api-tutorial/en/overview/product-support.html)
*/
@NotNull
private PayloadIndex payloadIndex;
/**
* Whether enable the screen split
*/
@NotNull
private Boolean enable;
public CameraScreenSplitRequest() {
}
@Override
public String toString() {
return "CameraScreenSplitRequest{" +
"payloadIndex=" + payloadIndex +
", enable=" + enable +
'}';
}
public PayloadIndex getPayloadIndex() {
return payloadIndex;
}
public CameraScreenSplitRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
public Boolean getEnable() {
return enable;
}
public CameraScreenSplitRequest setEnable(Boolean enable) {
this.enable = enable;
return this;
}
}

0
src/main/java/com/dji/sdk/cloudapi/control/CameraTypeEnum.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraTypeEnum.java

0
src/main/java/com/dji/sdk/cloudapi/control/CommanderFlightModeEnum.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CommanderFlightModeEnum.java

0
src/main/java/com/dji/sdk/cloudapi/control/CommanderModeLostActionEnum.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CommanderModeLostActionEnum.java

0
src/main/java/com/dji/sdk/cloudapi/control/ControlErrorCodeEnum.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/ControlErrorCodeEnum.java

90
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/ControlMethodEnum.java

@ -0,0 +1,90 @@
package com.dji.sdk.cloudapi.control;
/**
* @author sean
* @version 1.4
* @date 2023/3/2
*/
public enum ControlMethodEnum {
FLIGHT_AUTHORITY_GRAB("flight_authority_grab"),
PAYLOAD_AUTHORITY_GRAB("payload_authority_grab"),
DRC_MODE_ENTER("drc_mode_enter"),
DRC_MODE_EXIT("drc_mode_exit"),
FLY_TO_POINT("fly_to_point"),
FLY_TO_POINT_STOP("fly_to_point_stop"),
FLY_TO_POINT_UPDATE("fly_to_point_update"),
TAKEOFF_TO_POINT("takeoff_to_point"),
CAMERA_MODE_SWITCH("camera_mode_switch"),
CAMERA_PHOTO_TAKE("camera_photo_take"),
CAMERA_PHOTO_STOP("camera_photo_stop"),
CAMERA_RECORDING_START("camera_recording_start"),
CAMERA_RECORDING_STOP("camera_recording_stop"),
CAMERA_AIM("camera_aim"),
CAMERA_FOCAL_LENGTH_SET("camera_focal_length_set"),
GIMBAL_RESET("gimbal_reset"),
CAMERA_LOOK_AT("camera_look_at"),
CAMERA_SCREEN_SPLIT("camera_screen_split"),
PHOTO_STORAGE_SET("photo_storage_set"),
VIDEO_STORAGE_SET("video_storage_set"),
CAMERA_EXPOSURE_SET("camera_exposure_set"),
CAMERA_EXPOSURE_MODE_SET("camera_exposure_mode_set"),
CAMERA_FOCUS_MODE_SET("camera_focus_mode_set"),
CAMERA_FOCUS_VALUE_SET("camera_focus_value_set"),
IR_METERING_MODE_SET("ir_metering_mode_set"),
IR_METERING_POINT_SET("ir_metering_point_set"),
IR_METERING_AREA_SET("ir_metering_area_set"),
CAMERA_POINT_FOCUS_ACTION("camera_point_focus_action"),
DRONE_CONTROL("drone_control"),
DRONE_EMERGENCY_STOP("drone_emergency_stop"),
HEART_BEAT("heart_beat"),
POI_MODE_ENTER("poi_mode_enter"),
POI_MODE_EXIT("poi_mode_exit"),
POI_CIRCLE_SPEED_SET("poi_circle_speed_set"),
;
private final String method;
ControlMethodEnum(String method) {
this.method = method;
}
public String getMethod() {
return method;
}
}

0
src/main/java/com/dji/sdk/cloudapi/control/DelayInfoPush.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DelayInfoPush.java

0
src/main/java/com/dji/sdk/cloudapi/control/DrcModeEnterRequest.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DrcModeEnterRequest.java

0
src/main/java/com/dji/sdk/cloudapi/control/DrcModeMqttBroker.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DrcModeMqttBroker.java

0
src/main/java/com/dji/sdk/cloudapi/control/DrcStatusErrorEnum.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DrcStatusErrorEnum.java

0
src/main/java/com/dji/sdk/cloudapi/control/DrcStatusNotify.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DrcStatusNotify.java

0
src/main/java/com/dji/sdk/cloudapi/control/DroneControlRequest.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DroneControlRequest.java

0
src/main/java/com/dji/sdk/cloudapi/control/DroneControlResponse.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DroneControlResponse.java

36
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/ExposureCameraTypeEnum.java

@ -0,0 +1,36 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public enum ExposureCameraTypeEnum {
ZOOM("zoom"),
WIDE("wide");
private final String type;
ExposureCameraTypeEnum(String type) {
this.type = type;
}
@JsonValue
public String getType() {
return type;
}
@JsonCreator
public static ExposureCameraTypeEnum find(String type) {
return Arrays.stream(values()).filter(typeEnum -> typeEnum.type.equals(type)).findAny()
.orElseThrow(() -> new CloudSDKException(ExposureCameraTypeEnum.class, type));
}
}

44
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/ExposureModeEnum.java

@ -0,0 +1,44 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public enum ExposureModeEnum {
AUTO(1),
SHUTTER_PRIORITY(2),
APERTURE_PRIORITY(3),
MANUAL(4),
;
private final int mode;
ExposureModeEnum(int mode) {
this.mode = mode;
}
@JsonValue
public int getMode() {
return mode;
}
@JsonCreator
public static ExposureModeEnum find(int mode) {
return Arrays.stream(values()).filter(modeEnum -> modeEnum.mode == mode).findAny()
.orElseThrow(() -> new CloudSDKException(ExposureModeEnum.class, mode));
}
}

107
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/ExposureValueEnum.java

@ -0,0 +1,107 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public enum ExposureValueEnum {
MINUS_5_DOT_0(1, "-5.0EV"),
MINUS_4_DOT_7(2, "-4.7EV"),
MINUS_4_DOT_3(3, "-4.3EV"),
MINUS_4_DOT_0(4, "-4.0EV"),
MINUS_3_DOT_7(5, "-3.7EV"),
MINUS_3_DOT_3(6, "-3.3EV"),
MINUS_3_DOT_0(7, "-3.0EV"),
MINUS_2_DOT_7(8, "-2.7EV"),
MINUS_2_DOT_3(9, "-2.3EV"),
MINUS_2_DOT_0(10, "-2.0EV"),
MINUS_1_DOT_7(11, "-1.7EV"),
MINUS_1_DOT_3(12, "-1.3EV"),
MINUS_1_DOT_0(13, "-1.0EV"),
MINUS_0_DOT_7(14, "-0.7EV"),
MINUS_0_DOT_3(15, "-0.3EV"),
_0(16, "0EV"),
_0_DOT_3(17, "0.3EV"),
_0_DOT_7(18, "0.7EV"),
_1_DOT_0(19, "1.0EV"),
_1_DOT_3(20, "1.3EV"),
_1_DOT_7(21, "1.7EV"),
_2_DOT_0(22, "2.0EV"),
_2_DOT_3(23, "2.3EV"),
_2_DOT_7(24, "2.7EV"),
_3_DOT_0(25, "3.0EV"),
_3_DOT_3(26, "3.3EV"),
_3_DOT_7(27, "3.7EV"),
_4_DOT_0(28, "4.0EV"),
_4_DOT_3(29, "4.3EV"),
_4_DOT_7(30, "4.7EV"),
_5_DOT_0(31, "5.0EV"),
FIXED(255, "FIXED"),
;
private final int value;
private final String desc;
ExposureValueEnum(int value, String desc) {
this.value = value;
this.desc = desc;
}
@JsonValue
public int getValue() {
return value;
}
public String getDesc() {
return desc;
}
@JsonCreator
public static ExposureValueEnum find(int value) {
return Arrays.stream(values()).filter(valueEnum -> valueEnum.value == value).findAny()
.orElseThrow(() -> new CloudSDKException(ExposureValueEnum.class, value));
}
}

0
src/main/java/com/dji/sdk/cloudapi/control/FlyToPointProgress.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/FlyToPointProgress.java

70
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/FlyToPointRequest.java

@ -0,0 +1,70 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.common.BaseModel;
import javax.validation.Valid;
import javax.validation.constraints.*;
import java.util.List;
/**
* @author sean
* @version 1.3
* @date 2023/2/14
*/
public class FlyToPointRequest extends BaseModel {
@Pattern(regexp = "^[^<>:\"/|?*._\\\\]+$")
@NotNull
private String flyToId;
@Min(1)
@Max(15)
@NotNull
private Integer maxSpeed;
/**
* The M30 series only support one point.
*/
@Size(min = 1)
@NotNull
private List<@Valid Point> points;
public FlyToPointRequest() {
}
@Override
public String toString() {
return "FlyToPointRequest{" +
"flyToId='" + flyToId + '\'' +
", maxSpeed=" + maxSpeed +
", points=" + points +
'}';
}
public String getFlyToId() {
return flyToId;
}
public FlyToPointRequest setFlyToId(String flyToId) {
this.flyToId = flyToId;
return this;
}
public Integer getMaxSpeed() {
return maxSpeed;
}
public FlyToPointRequest setMaxSpeed(Integer maxSpeed) {
this.maxSpeed = maxSpeed;
return this;
}
public List<Point> getPoints() {
return points;
}
public FlyToPointRequest setPoints(List<Point> points) {
this.points = points;
return this;
}
}

59
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/FlyToPointUpdateRequest.java

@ -0,0 +1,59 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.common.BaseModel;
import javax.validation.Valid;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public class FlyToPointUpdateRequest extends BaseModel {
@Min(1)
@Max(15)
@NotNull
private Integer maxSpeed;
/**
* The M30 series only support one point.
*/
@Size(min = 1, max = 1)
@NotNull
private List<@Valid Point> points;
public FlyToPointUpdateRequest() {
}
@Override
public String toString() {
return "FlyToPointUpdateRequest{" +
"maxSpeed=" + maxSpeed +
", points=" + points +
'}';
}
public Integer getMaxSpeed() {
return maxSpeed;
}
public FlyToPointUpdateRequest setMaxSpeed(Integer maxSpeed) {
this.maxSpeed = maxSpeed;
return this;
}
public List<Point> getPoints() {
return points;
}
public FlyToPointUpdateRequest setPoints(List<Point> points) {
this.points = points;
return this;
}
}

0
src/main/java/com/dji/sdk/cloudapi/control/FlyToStatusEnum.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/FlyToStatusEnum.java

40
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/FocusModeEnum.java

@ -0,0 +1,40 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public enum FocusModeEnum {
MF(0),
AFS(1),
AFC(2),
;
private final int mode;
FocusModeEnum(int mode) {
this.mode = mode;
}
@JsonValue
public int getMode() {
return mode;
}
@JsonCreator
public static FocusModeEnum find(int mode) {
return Arrays.stream(values()).filter(modeEnum -> modeEnum.mode == mode).findAny()
.orElseThrow(() -> new CloudSDKException(FocusModeEnum.class, mode));
}
}

0
src/main/java/com/dji/sdk/cloudapi/control/GimbalResetModeEnum.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/GimbalResetModeEnum.java

0
src/main/java/com/dji/sdk/cloudapi/control/GimbalResetRequest.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/GimbalResetRequest.java

0
src/main/java/com/dji/sdk/cloudapi/control/HeartBeatRequest.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/HeartBeatRequest.java

0
src/main/java/com/dji/sdk/cloudapi/control/HsiInfoPush.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/HsiInfoPush.java

116
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/IrMeteringAreaSetRequest.java

@ -0,0 +1,116 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.cloudapi.device.PayloadIndex;
import com.dji.sdk.common.BaseModel;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public class IrMeteringAreaSetRequest extends BaseModel {
/**
* Camera enumeration.
* It is unofficial device_mode_key.
* The format is *{type-subtype-gimbalindex}*.
* Please read [Product Supported](https://developer.dji.com/doc/cloud-api-tutorial/en/overview/product-support.html)
*/
@NotNull
private PayloadIndex payloadIndex;
/**
* The coordinate x of the temperature measurement point is the upper left corner of the lens as the coordinate center point, and the horizontal direction is x.
*/
@NotNull
@Min(0)
@Max(1)
private Float x;
/**
* The coordinate y of the temperature measurement point is the upper left corner of the lens as the coordinate center point, and the vertical direction is y.
*/
@NotNull
@Min(0)
@Max(1)
private Float y;
/**
* Temperature measurement area width
*/
@NotNull
@Min(0)
@Max(1)
private Float width;
/**
* Temperature measurement area height
*/
@NotNull
@Min(0)
@Max(1)
private Float height;
public IrMeteringAreaSetRequest() {
}
@Override
public String toString() {
return "IrMeteringAreaSetRequest{" +
"payloadIndex=" + payloadIndex +
", x=" + x +
", y=" + y +
", width=" + width +
", height=" + height +
'}';
}
public PayloadIndex getPayloadIndex() {
return payloadIndex;
}
public IrMeteringAreaSetRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
public Float getX() {
return x;
}
public IrMeteringAreaSetRequest setX(Float x) {
this.x = x;
return this;
}
public Float getY() {
return y;
}
public IrMeteringAreaSetRequest setY(Float y) {
this.y = y;
return this;
}
public Float getWidth() {
return width;
}
public IrMeteringAreaSetRequest setWidth(Float width) {
this.width = width;
return this;
}
public Float getHeight() {
return height;
}
public IrMeteringAreaSetRequest setHeight(Float height) {
this.height = height;
return this;
}
}

55
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/IrMeteringModeSetRequest.java

@ -0,0 +1,55 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.cloudapi.device.PayloadIndex;
import com.dji.sdk.common.BaseModel;
import javax.validation.constraints.NotNull;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public class IrMeteringModeSetRequest extends BaseModel {
/**
* Camera enumeration.
* It is unofficial device_mode_key.
* The format is *{type-subtype-gimbalindex}*.
* Please read [Product Supported](https://developer.dji.com/doc/cloud-api-tutorial/en/overview/product-support.html)
*/
@NotNull
private PayloadIndex payloadIndex;
@NotNull
private MeteringModeEnum mode;
public IrMeteringModeSetRequest() {
}
@Override
public String toString() {
return "IrMeteringModeSetRequest{" +
"payloadIndex=" + payloadIndex +
", mode=" + mode +
'}';
}
public PayloadIndex getPayloadIndex() {
return payloadIndex;
}
public IrMeteringModeSetRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
public MeteringModeEnum getMode() {
return mode;
}
public IrMeteringModeSetRequest setMode(MeteringModeEnum mode) {
this.mode = mode;
return this;
}
}

80
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/IrMeteringPointSetRequest.java

@ -0,0 +1,80 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.cloudapi.device.PayloadIndex;
import com.dji.sdk.common.BaseModel;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public class IrMeteringPointSetRequest extends BaseModel {
/**
* Camera enumeration.
* It is unofficial device_mode_key.
* The format is *{type-subtype-gimbalindex}*.
* Please read [Product Supported](https://developer.dji.com/doc/cloud-api-tutorial/en/overview/product-support.html)
*/
@NotNull
private PayloadIndex payloadIndex;
/**
* The coordinate x of the temperature measurement point is the upper left corner of the lens as the coordinate center point, and the horizontal direction is x.
*/
@NotNull
@Min(0)
@Max(1)
private Float x;
/**
* The coordinate y of the temperature measurement point is the upper left corner of the lens as the coordinate center point, and the vertical direction is y.
*/
@NotNull
@Min(0)
@Max(1)
private Float y;
public IrMeteringPointSetRequest() {
}
@Override
public String toString() {
return "IrMeteringPointSetRequest{" +
"payloadIndex=" + payloadIndex +
", x=" + x +
", y=" + y +
'}';
}
public PayloadIndex getPayloadIndex() {
return payloadIndex;
}
public IrMeteringPointSetRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
public Float getX() {
return x;
}
public IrMeteringPointSetRequest setX(Float x) {
this.x = x;
return this;
}
public Float getY() {
return y;
}
public IrMeteringPointSetRequest setY(Float y) {
this.y = y;
return this;
}
}

0
src/main/java/com/dji/sdk/cloudapi/control/JoystickInvalidNotify.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/JoystickInvalidNotify.java

0
src/main/java/com/dji/sdk/cloudapi/control/JoystickInvalidReasonEnum.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/JoystickInvalidReasonEnum.java

40
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/LensStorageSettingsEnum.java

@ -0,0 +1,40 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
/**
* @author sean
* @version 1.7
* @date 2023/10/12
*/
public enum LensStorageSettingsEnum {
CURRENT("current"),
ZOOM("zoom"),
WIDE("wide"),
INFRARED("ir");
private final String lens;
LensStorageSettingsEnum(String lens) {
this.lens = lens;
}
@JsonValue
public String getLens() {
return lens;
}
@JsonCreator
public static LensStorageSettingsEnum find(String lens) {
return Arrays.stream(values()).filter(lensEnum -> lensEnum.lens.equals(lens)).findAny()
.orElseThrow(() -> new CloudSDKException(LensStorageSettingsEnum.class, lens));
}
}

0
src/main/java/com/dji/sdk/cloudapi/control/LiveviewDelay.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/LiveviewDelay.java

41
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/MeteringModeEnum.java

@ -0,0 +1,41 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public enum MeteringModeEnum {
DISABLE(0),
SPOT(1),
AREA(2),
;
private final int mode;
MeteringModeEnum(int mode) {
this.mode = mode;
}
@JsonValue
public int getMode() {
return mode;
}
@JsonCreator
public static MeteringModeEnum find(int mode) {
return Arrays.stream(values()).filter(modeEnum -> modeEnum.mode == mode).findAny()
.orElseThrow(() -> new CloudSDKException(MeteringModeEnum.class, mode));
}
}

0
src/main/java/com/dji/sdk/cloudapi/control/OsdInfoPush.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/OsdInfoPush.java

0
src/main/java/com/dji/sdk/cloudapi/control/PayloadAuthorityGrabRequest.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PayloadAuthorityGrabRequest.java

78
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PayloadControlMethodEnum.java

@ -0,0 +1,78 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.common.BaseModel;
import com.dji.sdk.exception.CloudSDKException;
import java.util.Arrays;
/**
* @author sean
* @version 1.4
* @date 2023/3/2
*/
public enum PayloadControlMethodEnum {
CAMERA_MODE_SWITCH(ControlMethodEnum.CAMERA_MODE_SWITCH, CameraModeSwitchRequest.class),
CAMERA_PHOTO_TAKE(ControlMethodEnum.CAMERA_PHOTO_TAKE, CameraPhotoTakeRequest.class),
CAMERA_PHOTO_STOP(ControlMethodEnum.CAMERA_PHOTO_STOP, CameraPhotoStopRequest.class),
CAMERA_RECORDING_START(ControlMethodEnum.CAMERA_RECORDING_START, CameraRecordingStartRequest.class),
CAMERA_RECORDING_STOP(ControlMethodEnum.CAMERA_RECORDING_STOP, CameraRecordingStopRequest.class),
CAMERA_AIM(ControlMethodEnum.CAMERA_AIM, CameraAimRequest.class),
CAMERA_FOCAL_LENGTH_SET(ControlMethodEnum.CAMERA_FOCAL_LENGTH_SET, CameraFocalLengthSetRequest.class),
GIMBAL_RESET(ControlMethodEnum.GIMBAL_RESET, GimbalResetRequest.class),
CAMERA_LOOK_AT(ControlMethodEnum.CAMERA_LOOK_AT, CameraLookAtRequest.class),
CAMERA_SCREEN_SPLIT(ControlMethodEnum.CAMERA_SCREEN_SPLIT, CameraScreenSplitRequest.class),
PHOTO_STORAGE_SET(ControlMethodEnum.PHOTO_STORAGE_SET, PhotoStorageSetRequest.class),
VIDEO_STORAGE_SET(ControlMethodEnum.VIDEO_STORAGE_SET, VideoStorageSetRequest.class),
CAMERA_EXPOSURE_SET(ControlMethodEnum.CAMERA_EXPOSURE_SET, CameraExposureSetRequest.class),
CAMERA_EXPOSURE_MODE_SET(ControlMethodEnum.CAMERA_EXPOSURE_MODE_SET, CameraExposureModeSetRequest.class),
CAMERA_FOCUS_MODE_SET(ControlMethodEnum.CAMERA_FOCUS_MODE_SET, CameraFocusModeSetRequest.class),
CAMERA_FOCUS_VALUE_SET(ControlMethodEnum.CAMERA_FOCUS_VALUE_SET, CameraFocusValueSetRequest.class),
IR_METERING_MODE_SET(ControlMethodEnum.IR_METERING_MODE_SET, IrMeteringModeSetRequest.class),
IR_METERING_POINT_SET(ControlMethodEnum.IR_METERING_POINT_SET, IrMeteringPointSetRequest.class),
IR_METERING_AREA_SET(ControlMethodEnum.IR_METERING_AREA_SET, IrMeteringAreaSetRequest.class),
CAMERA_POINT_FOCUS_ACTION(ControlMethodEnum.CAMERA_POINT_FOCUS_ACTION, CameraPointFocusActionRequest.class),
;
private final ControlMethodEnum payloadMethod;
private final Class<? extends BaseModel> clazz;
PayloadControlMethodEnum(ControlMethodEnum payloadMethod, Class<? extends BaseModel> clazz) {
this.payloadMethod = payloadMethod;
this.clazz = clazz;
}
public ControlMethodEnum getPayloadMethod() {
return payloadMethod;
}
public Class<? extends BaseModel> getClazz() {
return clazz;
}
public static PayloadControlMethodEnum find(String method) {
return Arrays.stream(values()).filter(methodEnum -> methodEnum.payloadMethod.getMethod().equals(method)).findAny()
.orElseThrow(() -> new CloudSDKException(PayloadControlMethodEnum.class, method));
}
}

61
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PhotoStorageSetRequest.java

@ -0,0 +1,61 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.cloudapi.device.PayloadIndex;
import com.dji.sdk.common.BaseModel;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* @author sean
* @version 1.7
* @date 2023/10/12
*/
public class PhotoStorageSetRequest extends BaseModel {
/**
* Camera enumeration.
* It is unofficial device_mode_key.
* The format is *{type-subtype-gimbalindex}*.
* Please read [Product Supported](https://developer.dji.com/doc/cloud-api-tutorial/en/overview/product-support.html)
*/
@NotNull
private PayloadIndex payloadIndex;
/**
* Photo storage type. Multi-selection.
*/
@NotNull
@Size(min = 1)
private List<LensStorageSettingsEnum> photoStorageSettings;
public PhotoStorageSetRequest() {
}
@Override
public String toString() {
return "PhotoStorageSetRequest{" +
"payloadIndex=" + payloadIndex +
", photoStorageSettings=" + photoStorageSettings +
'}';
}
public PayloadIndex getPayloadIndex() {
return payloadIndex;
}
public PhotoStorageSetRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
public List<LensStorageSettingsEnum> getPhotoStorageSettings() {
return photoStorageSettings;
}
public PhotoStorageSetRequest setPhotoStorageSettings(List<LensStorageSettingsEnum> photoStorageSettings) {
this.photoStorageSettings = photoStorageSettings;
return this;
}
}

42
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PhotoTakeProgressData.java

@ -0,0 +1,42 @@
package com.dji.sdk.cloudapi.control;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public class PhotoTakeProgressData {
private PhotoTakeProgressStepEnum currentStep;
private Integer percent;
public PhotoTakeProgressData() {
}
@Override
public String toString() {
return "PhotoTakeProgressData{" +
"currentStep=" + currentStep +
", percent=" + percent +
'}';
}
public PhotoTakeProgressStepEnum getCurrentStep() {
return currentStep;
}
public PhotoTakeProgressData setCurrentStep(PhotoTakeProgressStepEnum currentStep) {
this.currentStep = currentStep;
return this;
}
public Integer getPercent() {
return percent;
}
public PhotoTakeProgressData setPercent(Integer percent) {
this.percent = percent;
return this;
}
}

32
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PhotoTakeProgressExt.java

@ -0,0 +1,32 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.cloudapi.device.CameraModeEnum;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public class PhotoTakeProgressExt {
private CameraModeEnum cameraMode;
public PhotoTakeProgressExt() {
}
@Override
public String toString() {
return "PhotoTakeProgressExt{" +
"cameraMode=" + cameraMode +
'}';
}
public CameraModeEnum getCameraMode() {
return cameraMode;
}
public PhotoTakeProgressExt setCameraMode(CameraModeEnum cameraMode) {
this.cameraMode = cameraMode;
return this;
}
}

43
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PhotoTakeProgressStepEnum.java

@ -0,0 +1,43 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public enum PhotoTakeProgressStepEnum {
NORMAL(0),
PANORAMA_NOT_STARTED_OR_ENDED(3000),
PANORAMA_TAKING(3002),
PANORAMA_COMPOSITING(3005),
;
private final int step;
PhotoTakeProgressStepEnum(int step) {
this.step = step;
}
@JsonValue
public int getStep() {
return step;
}
@JsonCreator
public static PhotoTakeProgressStepEnum find(int step) {
return Arrays.stream(values()).filter(stepEnum -> stepEnum.step == step).findAny()
.orElseThrow(() -> new CloudSDKException(PhotoTakeProgressStepEnum.class, step));
}
}

35
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PoiCircleSpeedSetRequest.java

@ -0,0 +1,35 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.common.BaseModel;
import javax.validation.constraints.NotNull;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public class PoiCircleSpeedSetRequest extends BaseModel {
@NotNull
private Float circleSpeed;
public PoiCircleSpeedSetRequest() {
}
@Override
public String toString() {
return "PoiCircleSpeedSetRequest{" +
"circleSpeed=" + circleSpeed +
'}';
}
public Float getCircleSpeed() {
return circleSpeed;
}
public PoiCircleSpeedSetRequest setCircleSpeed(Float circleSpeed) {
this.circleSpeed = circleSpeed;
return this;
}
}

69
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PoiModeEnterRequest.java

@ -0,0 +1,69 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.common.BaseModel;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public class PoiModeEnterRequest extends BaseModel {
@Min(-90)
@Max(90)
@NotNull
private Float latitude;
@NotNull
@Min(-180)
@Max(180)
private Float longitude;
@NotNull
@Min(2)
@Max(10000)
private Float height;
public PoiModeEnterRequest() {
}
@Override
public String toString() {
return "PoiModeEnterRequest{" +
"latitude=" + latitude +
", longitude=" + longitude +
", height=" + height +
'}';
}
public Float getLatitude() {
return latitude;
}
public PoiModeEnterRequest setLatitude(Float latitude) {
this.latitude = latitude;
return this;
}
public Float getLongitude() {
return longitude;
}
public PoiModeEnterRequest setLongitude(Float longitude) {
this.longitude = longitude;
return this;
}
public Float getHeight() {
return height;
}
public PoiModeEnterRequest setHeight(Float height) {
this.height = height;
return this;
}
}

80
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PoiStatusNotify.java

@ -0,0 +1,80 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.cloudapi.wayline.FlighttaskStatusEnum;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public class PoiStatusNotify {
private FlighttaskStatusEnum status;
private PoiStatusReasonEnum reason;
private Float circleRadius;
private Float circleSpeed;
private Float maxCircleSpeed;
public PoiStatusNotify() {
}
@Override
public String toString() {
return "PoiStatusNotify{" +
"status=" + status +
", reason=" + reason +
", circleRadius=" + circleRadius +
", circleSpeed=" + circleSpeed +
", maxCircleSpeed=" + maxCircleSpeed +
'}';
}
public FlighttaskStatusEnum getStatus() {
return status;
}
public PoiStatusNotify setStatus(FlighttaskStatusEnum status) {
this.status = status;
return this;
}
public PoiStatusReasonEnum getReason() {
return reason;
}
public PoiStatusNotify setReason(PoiStatusReasonEnum reason) {
this.reason = reason;
return this;
}
public Float getCircleRadius() {
return circleRadius;
}
public PoiStatusNotify setCircleRadius(Float circleRadius) {
this.circleRadius = circleRadius;
return this;
}
public Float getCircleSpeed() {
return circleSpeed;
}
public PoiStatusNotify setCircleSpeed(Float circleSpeed) {
this.circleSpeed = circleSpeed;
return this;
}
public Float getMaxCircleSpeed() {
return maxCircleSpeed;
}
public PoiStatusNotify setMaxCircleSpeed(Float maxCircleSpeed) {
this.maxCircleSpeed = maxCircleSpeed;
return this;
}
}

53
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PoiStatusReasonEnum.java

@ -0,0 +1,53 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
/**
* @author sean
* @version 1.9
* @date 2023/12/12
*/
public enum PoiStatusReasonEnum {
NORMAL(0),
UNADAPTED_PAYLOAD(1),
CAMERA_MODE_NOT_SUPPORTED(2),
ILLEGAL_CMD(3),
POSITIONING_FAILED(4),
ON_THE_GROUND(5),
DRONE_MODE_ERROR(6),
NOT_AVAILABLE_MODE(7),
RC_DISCONNECTED(8),
;
private final int reason;
PoiStatusReasonEnum(int reason) {
this.reason = reason;
}
@JsonValue
public int getReason() {
return reason;
}
@JsonCreator
public static PoiStatusReasonEnum find(int reason) {
return Arrays.stream(values()).filter(reasonEnum -> reasonEnum.reason == reason).findAny()
.orElseThrow(() -> new CloudSDKException(PoiStatusReasonEnum.class, reason));
}
}

0
src/main/java/com/dji/sdk/cloudapi/control/Point.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/Point.java

0
src/main/java/com/dji/sdk/cloudapi/control/TakeoffStatusEnum.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/TakeoffStatusEnum.java

135
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/TakeoffToPointProgress.java

@ -0,0 +1,135 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.annotations.CloudSDKVersion;
import com.dji.sdk.cloudapi.wayline.WaylineErrorCodeEnum;
import com.dji.sdk.config.version.CloudSDKVersionEnum;
import java.util.List;
/**
* @author sean
* @version 1.4
* @date 2023/3/14
*/
public class TakeoffToPointProgress {
private WaylineErrorCodeEnum result;
private TakeoffStatusEnum status;
private String flightId;
private String trackId;
private Integer wayPointIndex;
/**
* Remaining mission distance
* unit: m
*/
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0)
private Float remainingDistance;
/**
* Remaining mission time
* unit: s
*/
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0)
private Integer remainingTime;
/**
* Planned trajectory point list
*/
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0)
private List<Point> plannedPathPoints;
public TakeoffToPointProgress() {
}
@Override
public String toString() {
return "TakeoffToPointProgress{" +
"result=" + result +
", status=" + status +
", flightId='" + flightId + '\'' +
", trackId='" + trackId + '\'' +
", wayPointIndex=" + wayPointIndex +
", remainingDistance=" + remainingDistance +
", remainingTime=" + remainingTime +
", plannedPathPoints=" + plannedPathPoints +
'}';
}
public WaylineErrorCodeEnum getResult() {
return result;
}
public TakeoffToPointProgress setResult(WaylineErrorCodeEnum result) {
this.result = result;
return this;
}
public TakeoffStatusEnum getStatus() {
return status;
}
public TakeoffToPointProgress setStatus(TakeoffStatusEnum status) {
this.status = status;
return this;
}
public String getFlightId() {
return flightId;
}
public TakeoffToPointProgress setFlightId(String flightId) {
this.flightId = flightId;
return this;
}
public String getTrackId() {
return trackId;
}
public TakeoffToPointProgress setTrackId(String trackId) {
this.trackId = trackId;
return this;
}
public Integer getWayPointIndex() {
return wayPointIndex;
}
public TakeoffToPointProgress setWayPointIndex(Integer wayPointIndex) {
this.wayPointIndex = wayPointIndex;
return this;
}
public Float getRemainingDistance() {
return remainingDistance;
}
public TakeoffToPointProgress setRemainingDistance(Float remainingDistance) {
this.remainingDistance = remainingDistance;
return this;
}
public Integer getRemainingTime() {
return remainingTime;
}
public TakeoffToPointProgress setRemainingTime(Integer remainingTime) {
this.remainingTime = remainingTime;
return this;
}
public List<Point> getPlannedPathPoints() {
return plannedPathPoints;
}
public TakeoffToPointProgress setPlannedPathPoints(List<Point> plannedPathPoints) {
this.plannedPathPoints = plannedPathPoints;
return this;
}
}

235
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/TakeoffToPointRequest.java

@ -0,0 +1,235 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.annotations.CloudSDKVersion;
import com.dji.sdk.cloudapi.device.ExitWaylineWhenRcLostEnum;
import com.dji.sdk.cloudapi.device.RcLostActionEnum;
import com.dji.sdk.cloudapi.wayline.RthModeEnum;
import com.dji.sdk.cloudapi.wayline.SimulateMission;
import com.dji.sdk.common.BaseModel;
import com.dji.sdk.config.version.CloudSDKVersionEnum;
import javax.validation.Valid;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
/**
* @author sean
* @version 1.4
* @date 2023/3/1
*/
public class TakeoffToPointRequest extends BaseModel {
@Pattern(regexp = "^[^<>:\"/|?*._\\\\]+$")
@NotNull
private String flightId;
@Min(-180)
@Max(180)
@NotNull
private Float targetLongitude;
@Min(-90)
@Max(90)
@NotNull
private Float targetLatitude;
@Min(2)
@Max(10000)
@NotNull
private Float targetHeight;
@Min(20)
@Max(1500)
@NotNull
private Float securityTakeoffHeight;
@Min(2)
@Max(1500)
@NotNull
private Float rthAltitude;
@NotNull
private RcLostActionEnum rcLostAction;
@NotNull
@CloudSDKVersion(deprecated = CloudSDKVersionEnum.V1_0_0)
private ExitWaylineWhenRcLostEnum exitWaylineWhenRcLost;
@Min(1)
@Max(15)
@NotNull
private Integer maxSpeed;
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0)
@NotNull
private RthModeEnum rthMode;
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0)
@NotNull
private CommanderModeLostActionEnum commanderModeLostAction;
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0)
@NotNull
private CommanderFlightModeEnum commanderFlightMode;
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0)
@NotNull
@Min(2)
@Max(3000)
private Float commanderFlightHeight;
@Valid
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0)
private SimulateMission simulateMission;
public TakeoffToPointRequest() {
}
@Override
public String toString() {
return "TakeoffToPointRequest{" +
"flightId='" + flightId + '\'' +
", targetLongitude=" + targetLongitude +
", targetLatitude=" + targetLatitude +
", targetHeight=" + targetHeight +
", securityTakeoffHeight=" + securityTakeoffHeight +
", rthAltitude=" + rthAltitude +
", rcLostAction=" + rcLostAction +
", exitWaylineWhenRcLost=" + exitWaylineWhenRcLost +
", maxSpeed=" + maxSpeed +
", rthMode=" + rthMode +
", commanderModeLostAction=" + commanderModeLostAction +
", commanderFlightMode=" + commanderFlightMode +
", commanderFlightHeight=" + commanderFlightHeight +
", simulateMission=" + simulateMission +
'}';
}
public String getFlightId() {
return flightId;
}
public TakeoffToPointRequest setFlightId(String flightId) {
this.flightId = flightId;
return this;
}
public Float getTargetLongitude() {
return targetLongitude;
}
public TakeoffToPointRequest setTargetLongitude(Float targetLongitude) {
this.targetLongitude = targetLongitude;
return this;
}
public Float getTargetLatitude() {
return targetLatitude;
}
public TakeoffToPointRequest setTargetLatitude(Float targetLatitude) {
this.targetLatitude = targetLatitude;
return this;
}
public Float getTargetHeight() {
return targetHeight;
}
public TakeoffToPointRequest setTargetHeight(Float targetHeight) {
this.targetHeight = targetHeight;
return this;
}
public Float getSecurityTakeoffHeight() {
return securityTakeoffHeight;
}
public TakeoffToPointRequest setSecurityTakeoffHeight(Float securityTakeoffHeight) {
this.securityTakeoffHeight = securityTakeoffHeight;
return this;
}
public Float getRthAltitude() {
return rthAltitude;
}
public TakeoffToPointRequest setRthAltitude(Float rthAltitude) {
this.rthAltitude = rthAltitude;
return this;
}
public RcLostActionEnum getRcLostAction() {
return rcLostAction;
}
public TakeoffToPointRequest setRcLostAction(RcLostActionEnum rcLostAction) {
this.rcLostAction = rcLostAction;
return this;
}
public ExitWaylineWhenRcLostEnum getExitWaylineWhenRcLost() {
return exitWaylineWhenRcLost;
}
public TakeoffToPointRequest setExitWaylineWhenRcLost(ExitWaylineWhenRcLostEnum exitWaylineWhenRcLost) {
this.exitWaylineWhenRcLost = exitWaylineWhenRcLost;
return this;
}
public Integer getMaxSpeed() {
return maxSpeed;
}
public RthModeEnum getRthMode() {
return rthMode;
}
public TakeoffToPointRequest setRthMode(RthModeEnum rthMode) {
this.rthMode = rthMode;
return this;
}
public CommanderModeLostActionEnum getCommanderModeLostAction() {
return commanderModeLostAction;
}
public TakeoffToPointRequest setCommanderModeLostAction(CommanderModeLostActionEnum commanderModeLostAction) {
this.commanderModeLostAction = commanderModeLostAction;
return this;
}
public CommanderFlightModeEnum getCommanderFlightMode() {
return commanderFlightMode;
}
public TakeoffToPointRequest setCommanderFlightMode(CommanderFlightModeEnum commanderFlightMode) {
this.commanderFlightMode = commanderFlightMode;
return this;
}
public Float getCommanderFlightHeight() {
return commanderFlightHeight;
}
public TakeoffToPointRequest setCommanderFlightHeight(Float commanderFlightHeight) {
this.commanderFlightHeight = commanderFlightHeight;
return this;
}
public TakeoffToPointRequest setMaxSpeed(Integer maxSpeed) {
this.maxSpeed = maxSpeed;
return this;
}
public SimulateMission getSimulateMission() {
return simulateMission;
}
public TakeoffToPointRequest setSimulateMission(SimulateMission simulateMission) {
this.simulateMission = simulateMission;
return this;
}
}

61
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/VideoStorageSetRequest.java

@ -0,0 +1,61 @@
package com.dji.sdk.cloudapi.control;
import com.dji.sdk.cloudapi.device.PayloadIndex;
import com.dji.sdk.common.BaseModel;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* @author sean
* @version 1.7
* @date 2023/10/12
*/
public class VideoStorageSetRequest extends BaseModel {
/**
* Camera enumeration.
* It is unofficial device_mode_key.
* The format is *{type-subtype-gimbalindex}*.
* Please read [Product Supported](https://developer.dji.com/doc/cloud-api-tutorial/en/overview/product-support.html)
*/
@NotNull
private PayloadIndex payloadIndex;
/**
* Video storage type. Multi-selection.
*/
@NotNull
@Size(min = 1)
private List<LensStorageSettingsEnum> videoStorageSettings;
public VideoStorageSetRequest() {
}
@Override
public String toString() {
return "VideoStorageSetRequest{" +
"payloadIndex=" + payloadIndex +
", videoStorageSettings=" + videoStorageSettings +
'}';
}
public PayloadIndex getPayloadIndex() {
return payloadIndex;
}
public VideoStorageSetRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
public List<LensStorageSettingsEnum> getVideoStorageSettings() {
return videoStorageSettings;
}
public VideoStorageSetRequest setVideoStorageSettings(List<LensStorageSettingsEnum> videoStorageSettings) {
this.videoStorageSettings = videoStorageSettings;
return this;
}
}

0
src/main/java/com/dji/sdk/cloudapi/control/ZoomCameraTypeEnum.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/ZoomCameraTypeEnum.java

665
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/api/AbstractControlService.java

@ -0,0 +1,665 @@
package com.dji.sdk.cloudapi.control.api;
import com.dji.sdk.annotations.CloudSDKVersion;
import com.dji.sdk.cloudapi.control.*;
import com.dji.sdk.common.BaseModel;
import com.dji.sdk.common.Common;
import com.dji.sdk.common.SpringBeanUtils;
import com.dji.sdk.config.version.CloudSDKVersionEnum;
import com.dji.sdk.config.version.GatewayManager;
import com.dji.sdk.config.version.GatewayTypeEnum;
import com.dji.sdk.exception.CloudSDKException;
import com.dji.sdk.mqtt.ChannelName;
import com.dji.sdk.mqtt.MqttReply;
import com.dji.sdk.mqtt.drc.DrcDownPublish;
import com.dji.sdk.mqtt.drc.DrcUpData;
import com.dji.sdk.mqtt.drc.TopicDrcRequest;
import com.dji.sdk.mqtt.events.EventsDataRequest;
import com.dji.sdk.mqtt.events.TopicEventsRequest;
import com.dji.sdk.mqtt.events.TopicEventsResponse;
import com.dji.sdk.mqtt.services.ServicesPublish;
import com.dji.sdk.mqtt.services.ServicesReplyData;
import com.dji.sdk.mqtt.services.TopicServicesResponse;
import org.springframework.integration.annotation.ServiceActivator;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageHeaders;
import javax.annotation.Resource;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/**
* @author sean
* @version 1.7
* @date 2023/6/29
*/
public abstract class AbstractControlService {
@Resource
private ServicesPublish servicesPublish;
@Resource
private DrcDownPublish drcDownPublish;
/**
* Event notification of flyto result
* @param request data
* @param headers The headers for a {@link Message}.
* @return events_reply
*/
@ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_FLY_TO_POINT_PROGRESS, outputChannel = ChannelName.OUTBOUND_EVENTS)
public TopicEventsResponse<MqttReply> flyToPointProgress(TopicEventsRequest<FlyToPointProgress> request, MessageHeaders headers) {
throw new UnsupportedOperationException("flyToPointProgress not implemented");
}
/**
* Event notification of one-key taking off result
* @param request data
* @param headers The headers for a {@link Message}.
* @return events_reply
*/
@ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_TAKEOFF_TO_POINT_PROGRESS, outputChannel = ChannelName.OUTBOUND_EVENTS)
public TopicEventsResponse<MqttReply> takeoffToPointProgress(TopicEventsRequest<TakeoffToPointProgress> request, MessageHeaders headers) {
throw new UnsupportedOperationException("takeoffToPointProgress not implemented");
}
/**
* Notification of DRC link state
* @param request data
* @param headers The headers for a {@link Message}.
* @return events_reply
*/
@ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_DRC_STATUS_NOTIFY, outputChannel = ChannelName.OUTBOUND_EVENTS)
public TopicEventsResponse<MqttReply> drcStatusNotify(TopicEventsRequest<DrcStatusNotify> request, MessageHeaders headers) {
throw new UnsupportedOperationException("drcStatusNotify not implemented");
}
/**
* Reason notification of invalid Joystick control
* @param request data
* @param headers The headers for a {@link Message}.
* @return events_reply
*/
@ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_JOYSTICK_INVALID_NOTIFY, outputChannel = ChannelName.OUTBOUND_EVENTS)
public TopicEventsResponse<MqttReply> joystickInvalidNotify(TopicEventsRequest<JoystickInvalidNotify> request, MessageHeaders headers) {
throw new UnsupportedOperationException("joystickInvalidNotify not implemented");
}
/**
* Flight control authority grabbing
* @param gateway
* @return services_reply
*/
@CloudSDKVersion(exclude = GatewayTypeEnum.RC)
public TopicServicesResponse<ServicesReplyData> flightAuthorityGrab(GatewayManager gateway) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.FLIGHT_AUTHORITY_GRAB.getMethod());
}
/**
* Payload control authority grabbing
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(exclude = GatewayTypeEnum.RC)
public TopicServicesResponse<ServicesReplyData> payloadAuthorityGrab(GatewayManager gateway, PayloadAuthorityGrabRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.PAYLOAD_AUTHORITY_GRAB.getMethod(),
request);
}
/**
* Enter the live flight controls mode
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(exclude = GatewayTypeEnum.RC)
public TopicServicesResponse<ServicesReplyData> drcModeEnter(GatewayManager gateway, DrcModeEnterRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.DRC_MODE_ENTER.getMethod(),
request);
}
/**
* Exit the live flight controls mode
* @param gateway
* @return services_reply
*/
@CloudSDKVersion(exclude = GatewayTypeEnum.RC)
public TopicServicesResponse<ServicesReplyData> drcModeExit(GatewayManager gateway) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.DRC_MODE_EXIT.getMethod());
}
/**
* One-key taking off
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(exclude = GatewayTypeEnum.RC)
public TopicServicesResponse<ServicesReplyData> takeoffToPoint(GatewayManager gateway, TakeoffToPointRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.TAKEOFF_TO_POINT.getMethod(),
request);
}
/**
* flyto target point
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(exclude = GatewayTypeEnum.RC)
public TopicServicesResponse<ServicesReplyData> flyToPoint(GatewayManager gateway, FlyToPointRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.FLY_TO_POINT.getMethod(),
request);
}
/**
* Quickly update target points
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, exclude = GatewayTypeEnum.RC, include = GatewayTypeEnum.DOCK)
public TopicServicesResponse<ServicesReplyData> flyToPointUpdate(GatewayManager gateway, FlyToPointUpdateRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.FLY_TO_POINT_UPDATE.getMethod(),
request);
}
/**
* End the task of flying to target point
* @param gateway
* @return services_reply
*/
@CloudSDKVersion(exclude = GatewayTypeEnum.RC)
public TopicServicesResponse<ServicesReplyData> flyToPointStop(GatewayManager gateway) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.FLY_TO_POINT_STOP.getMethod());
}
/**
* Payload control - switch the camera mode
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(exclude = GatewayTypeEnum.RC)
public TopicServicesResponse<ServicesReplyData> cameraModeSwitch(GatewayManager gateway, CameraModeSwitchRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.CAMERA_MODE_SWITCH.getMethod(),
request);
}
/**
* Payload control - take single photo
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(exclude = GatewayTypeEnum.RC)
public TopicServicesResponse<ServicesReplyData> cameraPhotoTake(GatewayManager gateway, CameraPhotoTakeRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.CAMERA_PHOTO_TAKE.getMethod(),
request);
}
/**
* Payload control - stop taking photo
* Currently only panoramic photo mode is supported.
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, exclude = GatewayTypeEnum.RC, include = GatewayTypeEnum.DOCK)
public TopicServicesResponse<ServicesReplyData> cameraPhotoStop(GatewayManager gateway, CameraPhotoStopRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.CAMERA_PHOTO_STOP.getMethod(),
request);
}
/**
* Event notification of camera photo progress information
* Currently only panoramic photo mode is supported.
* @param request data
* @param headers The headers for a {@link Message}.
* @return events_reply
*/
@ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_CAMERA_PHOTO_TAKE_PROGRESS, outputChannel = ChannelName.OUTBOUND_EVENTS)
public TopicEventsResponse<MqttReply> cameraPhotoTakeProgress(TopicEventsRequest<EventsDataRequest<CameraPhotoTakeProgress>> request, MessageHeaders headers) {
throw new UnsupportedOperationException("cameraPhotoTakeProgress not implemented");
}
/**
* Payload control - start recording
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(exclude = GatewayTypeEnum.RC)
public TopicServicesResponse<ServicesReplyData> cameraRecordingStart(GatewayManager gateway, CameraRecordingStartRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.CAMERA_RECORDING_START.getMethod(),
request);
}
/**
* Payload control - stop recording
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(exclude = GatewayTypeEnum.RC)
public TopicServicesResponse<ServicesReplyData> cameraRecordingStop(GatewayManager gateway, CameraRecordingStopRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.CAMERA_RECORDING_STOP.getMethod(),
request);
}
/**
* Payload control - double tab to become AIM
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(exclude = GatewayTypeEnum.RC)
public TopicServicesResponse<ServicesReplyData> cameraAim(GatewayManager gateway, CameraAimRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.CAMERA_AIM.getMethod(),
request);
}
/**
* Payload control - zoom
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(exclude = GatewayTypeEnum.RC)
public TopicServicesResponse<ServicesReplyData> cameraFocalLengthSet(GatewayManager gateway, CameraFocalLengthSetRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.CAMERA_FOCAL_LENGTH_SET.getMethod(),
request);
}
/**
* Payload control - reset the gimbal
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(exclude = GatewayTypeEnum.RC)
public TopicServicesResponse<ServicesReplyData> gimbalReset(GatewayManager gateway, GimbalResetRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.GIMBAL_RESET.getMethod(),
request);
}
/**
* The `lookat` function refers to the aircraft turning itself from its current heading to point at a specified location of actual latitude, longitude, and altitude.
* For M30/M30T models, it is recommended to use a method that locks the gimbal when using the `lookat` function.
* When the gimbal reaches its limits, the `lookat` function may behave abnormally.
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0, exclude = GatewayTypeEnum.RC)
public TopicServicesResponse<ServicesReplyData> cameraLookAt(GatewayManager gateway, CameraLookAtRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.CAMERA_LOOK_AT.getMethod(),
request);
}
/**
* Payload control - screen split
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0, exclude = GatewayTypeEnum.RC)
public TopicServicesResponse<ServicesReplyData> cameraScreenSplit(GatewayManager gateway, CameraScreenSplitRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.CAMERA_SCREEN_SPLIT.getMethod(),
request);
}
/**
* Payload control - photo storage setting
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0, exclude = GatewayTypeEnum.RC)
public TopicServicesResponse<ServicesReplyData> photoStorageSet(GatewayManager gateway, PhotoStorageSetRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.PHOTO_STORAGE_SET.getMethod(),
request);
}
/**
* Payload control - video storage setting
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0, exclude = GatewayTypeEnum.RC)
public TopicServicesResponse<ServicesReplyData> videoStorageSet(GatewayManager gateway, VideoStorageSetRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.VIDEO_STORAGE_SET.getMethod(),
request);
}
/**
* Payload control - camera exposure setting
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, include = GatewayTypeEnum.DOCK)
public TopicServicesResponse<ServicesReplyData> cameraExposureSet(GatewayManager gateway, CameraExposureSetRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.CAMERA_EXPOSURE_SET.getMethod(),
request);
}
/**
* Payload control - camera exposure mode setting
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, include = GatewayTypeEnum.DOCK)
public TopicServicesResponse<ServicesReplyData> cameraExposureModeSet(GatewayManager gateway, CameraExposureModeSetRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.CAMERA_EXPOSURE_MODE_SET.getMethod(),
request);
}
/**
* Payload control - camera focus mode setting
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, include = GatewayTypeEnum.DOCK)
public TopicServicesResponse<ServicesReplyData> cameraFocusModeSet(GatewayManager gateway, CameraFocusModeSetRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.CAMERA_FOCUS_MODE_SET.getMethod(),
request);
}
/**
* Payload control - camera focus value setting
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, include = GatewayTypeEnum.DOCK)
public TopicServicesResponse<ServicesReplyData> cameraFocusValueSet(GatewayManager gateway, CameraFocusValueSetRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.CAMERA_FOCUS_VALUE_SET.getMethod(),
request);
}
/**
* Payload control - ir metering mode setting
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, include = GatewayTypeEnum.DOCK)
public TopicServicesResponse<ServicesReplyData> irMeteringModeSet(GatewayManager gateway, IrMeteringModeSetRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.IR_METERING_MODE_SET.getMethod(),
request);
}
/**
* Payload control - ir metering point setting
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, include = GatewayTypeEnum.DOCK)
public TopicServicesResponse<ServicesReplyData> irMeteringPointSet(GatewayManager gateway, IrMeteringPointSetRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.IR_METERING_POINT_SET.getMethod(),
request);
}
/**
* Payload control - ir metering area setting
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, include = GatewayTypeEnum.DOCK)
public TopicServicesResponse<ServicesReplyData> irMeteringAreaSet(GatewayManager gateway, IrMeteringAreaSetRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.IR_METERING_AREA_SET.getMethod(),
request);
}
/**
* Payload control - camera point focus
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, include = GatewayTypeEnum.DOCK)
public TopicServicesResponse<ServicesReplyData> cameraPointFocusAction(GatewayManager gateway, CameraPointFocusActionRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.CAMERA_POINT_FOCUS_ACTION.getMethod(),
request);
}
/**
* Payload control
* @param gateway
* @param request data
* @return services_reply
*/
public TopicServicesResponse<ServicesReplyData> payloadControl(GatewayManager gateway, PayloadControlMethodEnum methodEnum, BaseModel request) {
try {
AbstractControlService abstractControlService = SpringBeanUtils.getBean(this.getClass());
Method method = abstractControlService.getClass().getDeclaredMethod(
Common.convertSnake(methodEnum.getPayloadMethod().getMethod()),GatewayManager.class, methodEnum.getClazz());
return (TopicServicesResponse<ServicesReplyData>) method.invoke(abstractControlService, gateway, request);
} catch (NoSuchMethodException | IllegalAccessException e) {
throw new CloudSDKException(e);
} catch (InvocationTargetException e) {
throw new CloudSDKException(e.getTargetException());
}
}
/**
* Event notification of poi surround information
* @param request data
* @param headers The headers for a {@link Message}.
* @return events_reply
*/
@ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_POI_STATUS_NOTIFY, outputChannel = ChannelName.OUTBOUND_EVENTS)
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, include = GatewayTypeEnum.DOCK)
public TopicEventsResponse<MqttReply> poiStatusNotify(TopicEventsRequest<PoiStatusNotify> request, MessageHeaders headers) {
throw new UnsupportedOperationException("poiStatusNotify not implemented");
}
/**
* Enter the poi surround mode
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, exclude = GatewayTypeEnum.RC, include = GatewayTypeEnum.DOCK)
public TopicServicesResponse<ServicesReplyData> poiModeEnter(GatewayManager gateway, PoiModeEnterRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.POI_MODE_ENTER.getMethod(),
request);
}
/**
* Exit the poi surround mode
* @param gateway
* @return services_reply
*/
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, exclude = GatewayTypeEnum.RC, include = GatewayTypeEnum.DOCK)
public TopicServicesResponse<ServicesReplyData> poiModeExit(GatewayManager gateway) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.POI_MODE_EXIT.getMethod());
}
/**
* poi speed setting
* @param gateway
* @param request data
* @return services_reply
*/
@CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, exclude = GatewayTypeEnum.RC, include = GatewayTypeEnum.DOCK)
public TopicServicesResponse<ServicesReplyData> poiCircleSpeedSet(GatewayManager gateway, PoiCircleSpeedSetRequest request) {
return servicesPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.POI_CIRCLE_SPEED_SET.getMethod(),
request);
}
/**
* DRC-flight control
* @param gateway
* @param request data
*/
@CloudSDKVersion(exclude = GatewayTypeEnum.RC)
protected void droneControlDown(GatewayManager gateway, DroneControlRequest request) {
drcDownPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.DRONE_CONTROL.getMethod(),
request);
}
/**
* Drc up notification of drone control result
* @param request data
* @param headers The headers for a {@link Message}.
* @return events_reply
*/
@ServiceActivator(inputChannel = ChannelName.INBOUND_DRC_UP_DRONE_CONTROL)
public void droneControlUp(TopicDrcRequest<DrcUpData<DroneControlResponse>> request, MessageHeaders headers) {
throw new UnsupportedOperationException("droneControlUp not implemented");
}
/**
* DRC-drone emergency stop
* @param gateway
*/
@CloudSDKVersion(exclude = GatewayTypeEnum.RC)
public void droneEmergencyStopDown(GatewayManager gateway) {
drcDownPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.DRONE_EMERGENCY_STOP.getMethod());
}
/**
* Drc up notification of drone emergency stop result
* @param request data
* @param headers The headers for a {@link Message}.
* @return events_reply
*/
@ServiceActivator(inputChannel = ChannelName.INBOUND_DRC_UP_DRONE_EMERGENCY_STOP)
public void droneEmergencyStopUp(TopicDrcRequest<DrcUpData> request, MessageHeaders headers) {
throw new UnsupportedOperationException("droneEmergencyStopUp not implemented");
}
/**
* DRC-heart beat
* @param gateway
* @param request data
*/
@CloudSDKVersion(exclude = GatewayTypeEnum.RC)
public void heartBeatDown(GatewayManager gateway, HeartBeatRequest request) {
drcDownPublish.publish(
gateway.getGatewaySn(),
ControlMethodEnum.HEART_BEAT.getMethod(),
request);
}
/**
* Drc up notification of heart beat result
* @param request data
* @param headers The headers for a {@link Message}.
* @return events_reply
*/
@ServiceActivator(inputChannel = ChannelName.INBOUND_DRC_UP_HEART_BEAT)
public void heartBeatUp(TopicDrcRequest<HeartBeatRequest> request, MessageHeaders headers) {
throw new UnsupportedOperationException("heartBeatUp not implemented");
}
/**
* DRC-obstacle avoidance information pushing
* @param request data
* @param headers The headers for a {@link Message}.
* @return events_reply
*/
@ServiceActivator(inputChannel = ChannelName.INBOUND_DRC_UP_HSI_INFO_PUSH)
public void hsiInfoPush(TopicDrcRequest<HsiInfoPush> request, MessageHeaders headers) {
throw new UnsupportedOperationException("hsiInfoPush not implemented");
}
/**
* DRC-delay information pushing of image transmission link
* @param request data
* @param headers The headers for a {@link Message}.
* @return events_reply
*/
@ServiceActivator(inputChannel = ChannelName.INBOUND_DRC_UP_DELAY_INFO_PUSH)
public void delayInfoPush(TopicDrcRequest<DelayInfoPush> request, MessageHeaders headers) {
throw new UnsupportedOperationException("delayInfoPush not implemented");
}
/**
* DRC-high frequency osd information pushing
* @param request data
* @param headers The headers for a {@link Message}.
* @return events_reply
*/
@ServiceActivator(inputChannel = ChannelName.INBOUND_DRC_UP_OSD_INFO_PUSH)
public void osdInfoPush(TopicDrcRequest<OsdInfoPush> request, MessageHeaders headers) {
throw new UnsupportedOperationException("osdInfoPush not implemented");
}
}

0
src/main/java/com/dji/sdk/cloudapi/debug/AirConditionerModeSwitchActionEnum.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/AirConditionerModeSwitchActionEnum.java

0
src/main/java/com/dji/sdk/cloudapi/debug/AirConditionerModeSwitchRequest.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/AirConditionerModeSwitchRequest.java

0
src/main/java/com/dji/sdk/cloudapi/debug/AlarmStateSwitchRequest.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/AlarmStateSwitchRequest.java

0
src/main/java/com/dji/sdk/cloudapi/debug/BatteryMaintenanceSwitchRequest.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/BatteryMaintenanceSwitchRequest.java

0
src/main/java/com/dji/sdk/cloudapi/debug/BatteryStoreModeSwitchRequest.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/BatteryStoreModeSwitchRequest.java

0
src/main/java/com/dji/sdk/cloudapi/debug/DebugErrorCodeEnum.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/DebugErrorCodeEnum.java

84
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/DebugMethodEnum.java

@ -0,0 +1,84 @@
package com.dji.sdk.cloudapi.debug;
import com.dji.sdk.common.BaseModel;
import com.dji.sdk.exception.CloudSDKException;
import java.util.Arrays;
/**
* @author sean
* @version 1.3
* @date 2022/11/14
*/
public enum DebugMethodEnum {
DEBUG_MODE_OPEN("debug_mode_open", null),
DEBUG_MODE_CLOSE("debug_mode_close", null),
SUPPLEMENT_LIGHT_OPEN("supplement_light_open", null),
SUPPLEMENT_LIGHT_CLOSE("supplement_light_close", null),
DEVICE_REBOOT("device_reboot", null),
DRONE_OPEN("drone_open", null),
DRONE_CLOSE("drone_close", null),
DRONE_FORMAT("drone_format", null),
DEVICE_FORMAT("device_format", null),
COVER_OPEN("cover_open", null),
COVER_CLOSE("cover_close", null),
PUTTER_OPEN("putter_open", null),
PUTTER_CLOSE("putter_close", null),
CHARGE_OPEN("charge_open", null),
CHARGE_CLOSE("charge_close", null),
BATTERY_MAINTENANCE_SWITCH("battery_maintenance_switch", BatteryMaintenanceSwitchRequest.class),
ALARM_STATE_SWITCH("alarm_state_switch", AlarmStateSwitchRequest.class),
BATTERY_STORE_MODE_SWITCH("battery_store_mode_switch", BatteryStoreModeSwitchRequest.class),
SDR_WORKMODE_SWITCH("sdr_workmode_switch", SdrWorkmodeSwitchRequest.class),
AIR_CONDITIONER_MODE_SWITCH("air_conditioner_mode_switch", AirConditionerModeSwitchRequest.class),
ESIM_ACTIVATE("esim_activate", EsimActivateRequest.class),
SIM_SLOT_SWITCH("sim_slot_switch", SimSlotSwitchRequest.class),
ESIM_OPERATOR_SWITCH("esim_operator_switch", EsimOperatorSwitchRequest.class),
;
private final String method;
private final Class<? extends BaseModel> clazz;
DebugMethodEnum(String method, Class<? extends BaseModel> clazz) {
this.method = method;
this.clazz = clazz;
}
public String getMethod() {
return method;
}
public Class<? extends BaseModel> getClazz() {
return clazz;
}
public static DebugMethodEnum find(String method) {
return Arrays.stream(values()).filter(methodEnum -> methodEnum.method.equals(method)).findAny()
.orElseThrow(() -> new CloudSDKException(DebugMethodEnum.class, method));
}
}

38
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/DongleDeviceTypeEnum.java

@ -0,0 +1,38 @@
package com.dji.sdk.cloudapi.debug;
import com.dji.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
/**
* @author sean
* @version 1.7
* @date 2023/10/20
*/
public enum DongleDeviceTypeEnum {
DOCK("dock"),
DRONE("drone"),
;
private final String type;
DongleDeviceTypeEnum(String type) {
this.type = type;
}
@JsonValue
public String getType() {
return type;
}
@JsonCreator
public static DongleDeviceTypeEnum find(String type) {
return Arrays.stream(values()).filter(typeEnum -> typeEnum.type.equals(type)).findAny()
.orElseThrow(() -> new CloudSDKException(DongleDeviceTypeEnum.class, type));
}
}

54
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/EsimActivateRequest.java

@ -0,0 +1,54 @@
package com.dji.sdk.cloudapi.debug;
import com.dji.sdk.common.BaseModel;
import javax.validation.constraints.NotNull;
/**
* @author sean
* @version 1.7
* @date 2023/10/20
*/
public class EsimActivateRequest extends BaseModel {
/**
* Identifies the dongle to be operated on.
*/
@NotNull
private String imei;
/**
* Identifies the target device to operate on.
*/
@NotNull
private DongleDeviceTypeEnum deviceType;
public EsimActivateRequest() {
}
@Override
public String toString() {
return "EsimActivateRequest{" +
"imei='" + imei + '\'' +
", deviceType=" + deviceType +
'}';
}
public String getImei() {
return imei;
}
public EsimActivateRequest setImei(String imei) {
this.imei = imei;
return this;
}
public DongleDeviceTypeEnum getDeviceType() {
return deviceType;
}
public EsimActivateRequest setDeviceType(DongleDeviceTypeEnum deviceType) {
this.deviceType = deviceType;
return this;
}
}

71
cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/EsimOperatorSwitchRequest.java

@ -0,0 +1,71 @@
package com.dji.sdk.cloudapi.debug;
import com.dji.sdk.cloudapi.device.TelecomOperatorEnum;
import com.dji.sdk.common.BaseModel;
import javax.validation.constraints.NotNull;
/**
* @author sean
* @version 1.7
* @date 2023/10/20
*/
public class EsimOperatorSwitchRequest extends BaseModel {
/**
* Identifies the dongle to be operated on.
*/
@NotNull
private String imei;
/**
* Identifies the target device to operate on.
*/
@NotNull
private DongleDeviceTypeEnum deviceType;
/**
* Target carrier for switching.
*/
@NotNull
private TelecomOperatorEnum telecomOperator;
public EsimOperatorSwitchRequest() {
}
@Override
public String toString() {
return "EsimOperatorSwitchRequest{" +
"imei='" + imei + '\'' +
", deviceType=" + deviceType +
", telecomOperator=" + telecomOperator +
'}';
}
public String getImei() {
return imei;
}
public EsimOperatorSwitchRequest setImei(String imei) {
this.imei = imei;
return this;
}
public DongleDeviceTypeEnum getDeviceType() {
return deviceType;
}
public EsimOperatorSwitchRequest setDeviceType(DongleDeviceTypeEnum deviceType) {
this.deviceType = deviceType;
return this;
}
public TelecomOperatorEnum getTelecomOperator() {
return telecomOperator;
}
public EsimOperatorSwitchRequest setTelecomOperator(TelecomOperatorEnum telecomOperator) {
this.telecomOperator = telecomOperator;
return this;
}
}

0
src/main/java/com/dji/sdk/cloudapi/debug/RemoteDebugProgress.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/RemoteDebugProgress.java

0
src/main/java/com/dji/sdk/cloudapi/debug/RemoteDebugProgressData.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/RemoteDebugProgressData.java

0
src/main/java/com/dji/sdk/cloudapi/debug/RemoteDebugResponse.java → cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/RemoteDebugResponse.java

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save