Browse Source

mqtt

pull/1/head
吴远 5 months ago
parent
commit
412f9e1d2d
  1. 2
      config/nacos/dk-gen.yml
  2. 2
      config/nacos/dk-job.yml
  3. 2
      config/nacos/dk-monitor.yml
  4. 8
      config/nacos/seata-server.properties
  5. 6
      config/nacos/sentinel-dk-gateway.json
  6. 48
      dk-common/common-cloudsdk/README.md
  7. BIN
      dk-common/common-cloudsdk/image/1.png
  8. BIN
      dk-common/common-cloudsdk/image/2.png
  9. BIN
      dk-common/common-cloudsdk/image/3.png
  10. BIN
      dk-common/common-cloudsdk/image/4.png
  11. BIN
      dk-common/common-cloudsdk/image/5.png
  12. BIN
      dk-common/common-cloudsdk/image/6.png
  13. BIN
      dk-common/common-cloudsdk/image/7.png
  14. 32
      dk-common/common-cloudsdk/pom.xml
  15. 26
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/annotations/CloudSDKVersion.java
  16. 178
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/airsense/AirsenseWarning.java
  17. 39
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/airsense/AltitudeTypeEnum.java
  18. 41
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/airsense/VertTrendEnum.java
  19. 45
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/airsense/WarningLevelEnum.java
  20. 36
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/airsense/api/AbstractAirsenseService.java
  21. 34
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/config/ConfigScopeEnum.java
  22. 34
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/config/ConfigTypeEnum.java
  23. 73
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/config/ProductConfigResponse.java
  24. 42
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/config/RequestsConfigRequest.java
  25. 30
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/config/api/AbstractConfigService.java
  26. 99
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraAimRequest.java
  27. 68
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraExposureModeSetRequest.java
  28. 68
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraExposureSetRequest.java
  29. 66
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraFocalLengthSetRequest.java
  30. 68
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraFocusModeSetRequest.java
  31. 68
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraFocusValueSetRequest.java
  32. 97
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraLookAtRequest.java
  33. 50
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraModeSwitchRequest.java
  34. 36
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraPhotoStopRequest.java
  35. 56
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraPhotoTakeProgress.java
  36. 36
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraPhotoTakeRequest.java
  37. 93
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraPointFocusActionRequest.java
  38. 36
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraRecordingStartRequest.java
  39. 36
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraRecordingStopRequest.java
  40. 58
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraScreenSplitRequest.java
  41. 38
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraTypeEnum.java
  42. 37
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CommanderFlightModeEnum.java
  43. 36
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CommanderModeLostActionEnum.java
  44. 91
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/ControlErrorCodeEnum.java
  45. 90
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/ControlMethodEnum.java
  46. 44
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/DelayInfoPush.java
  47. 75
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/DrcModeEnterRequest.java
  48. 102
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/DrcModeMqttBroker.java
  49. 52
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/DrcStatusErrorEnum.java
  50. 44
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/DrcStatusNotify.java
  51. 121
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/DroneControlRequest.java
  52. 31
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/DroneControlResponse.java
  53. 36
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/ExposureCameraTypeEnum.java
  54. 44
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/ExposureModeEnum.java
  55. 107
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/ExposureValueEnum.java
  56. 68
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/FlyToPointProgress.java
  57. 70
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/FlyToPointRequest.java
  58. 60
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/FlyToPointUpdateRequest.java
  59. 47
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/FlyToStatusEnum.java
  60. 40
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/FocusModeEnum.java
  61. 40
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/GimbalResetModeEnum.java
  62. 49
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/GimbalResetRequest.java
  63. 50
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/HeartBeatRequest.java
  64. 248
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/HsiInfoPush.java
  65. 116
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/IrMeteringAreaSetRequest.java
  66. 54
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/IrMeteringModeSetRequest.java
  67. 80
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/IrMeteringPointSetRequest.java
  68. 30
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/JoystickInvalidNotify.java
  69. 49
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/JoystickInvalidReasonEnum.java
  70. 42
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/LensStorageSettingsEnum.java
  71. 35
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/LiveviewDelay.java
  72. 41
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/MeteringModeEnum.java
  73. 138
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/OsdInfoPush.java
  74. 36
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/PayloadAuthorityGrabRequest.java
  75. 78
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/PayloadControlMethodEnum.java
  76. 61
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/PhotoStorageSetRequest.java
  77. 42
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/PhotoTakeProgressData.java
  78. 32
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/PhotoTakeProgressExt.java
  79. 43
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/PhotoTakeProgressStepEnum.java
  80. 35
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/PoiCircleSpeedSetRequest.java
  81. 69
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/PoiModeEnterRequest.java
  82. 80
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/PoiStatusNotify.java
  83. 53
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/PoiStatusReasonEnum.java
  84. 72
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/Point.java
  85. 51
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/TakeoffStatusEnum.java
  86. 135
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/TakeoffToPointProgress.java
  87. 235
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/TakeoffToPointRequest.java
  88. 61
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/VideoStorageSetRequest.java
  89. 36
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/ZoomCameraTypeEnum.java
  90. 665
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/api/AbstractControlService.java
  91. 40
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/AirConditionerModeSwitchActionEnum.java
  92. 35
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/AirConditionerModeSwitchRequest.java
  93. 36
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/AlarmStateSwitchRequest.java
  94. 36
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/BatteryMaintenanceSwitchRequest.java
  95. 36
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/BatteryStoreModeSwitchRequest.java
  96. 168
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/DebugErrorCodeEnum.java
  97. 84
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/DebugMethodEnum.java
  98. 38
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/DongleDeviceTypeEnum.java
  99. 54
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/EsimActivateRequest.java
  100. 71
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/EsimOperatorSwitchRequest.java

2
config/nacos/dk-gen.yml

@ -3,7 +3,7 @@ spring:
dynamic: dynamic:
# 设置默认的数据源或者数据源组,默认值即为 master # 设置默认的数据源或者数据源组,默认值即为 master
primary: master primary: master
seata: false seata: true
datasource: datasource:
# 主库数据源 # 主库数据源
master: master:

2
config/nacos/dk-job.yml

@ -3,7 +3,7 @@ spring:
dynamic: dynamic:
# 设置默认的数据源或者数据源组,默认值即为 master # 设置默认的数据源或者数据源组,默认值即为 master
primary: master primary: master
seata: false seata: true
datasource: datasource:
# 主库数据源 # 主库数据源
master: master:

2
config/nacos/dk-monitor.yml

@ -10,4 +10,4 @@ spring:
title: RuoYi-Cloud-Plus服务监控中心 title: RuoYi-Cloud-Plus服务监控中心
discovery: discovery:
# seata 不具有健康检查的能力 防止报错排除掉 # seata 不具有健康检查的能力 防止报错排除掉
ignored-services: ruoyi-seata-server ignored-services: dk-seata-server

8
config/nacos/seata-server.properties

@ -1,7 +1,7 @@
service.vgroupMapping.ruoyi-auth-group=default service.vgroupMapping.dk-auth-group=default
service.vgroupMapping.ruoyi-system-group=default service.vgroupMapping.dk-system-group=default
service.vgroupMapping.ruoyi-resource-group=default service.vgroupMapping.dk-resource-group=default
service.vgroupMapping.ruoyi-workflow-group=default service.vgroupMapping.dk-workflow-group=default
service.enableDegrade=false service.enableDegrade=false
service.disableGlobalTransaction=false service.disableGlobalTransaction=false

6
config/nacos/sentinel-ruoyi-gateway.json → config/nacos/sentinel-dk-gateway.json

@ -1,6 +1,6 @@
[ [
{ {
"resource": "ruoyi-auth", "resource": "dk-auth",
"count": 500, "count": 500,
"grade": 1, "grade": 1,
"limitApp": "default", "limitApp": "default",
@ -8,7 +8,7 @@
"controlBehavior": 0 "controlBehavior": 0
}, },
{ {
"resource": "ruoyi-system", "resource": "dk-system",
"count": 1000, "count": 1000,
"grade": 1, "grade": 1,
"limitApp": "default", "limitApp": "default",
@ -16,7 +16,7 @@
"controlBehavior": 0 "controlBehavior": 0
}, },
{ {
"resource": "ruoyi-resource", "resource": "dk-resource",
"count": 500, "count": 500,
"grade": 1, "grade": 1,
"limitApp": "default", "limitApp": "default",

48
dk-common/common-cloudsdk/README.md

@ -0,0 +1,48 @@
# 如何接入CloudSDK
### 1. 在组件扫描中增加包名:org.dromara.common.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的方法
- 定义一个类,继承org.dromara.common.sdk.cloudapi.*.api包中的抽象类;
- 重写具体的方法以实现功能;
- 将定义的类放入spring容器中,由spring管理bean的生命周期。
### 【设备上线】示例:
- 定义一个类:SDKDeviceService 继承AbstractDeviceService;
![1](./image/1.png)
- 重写方法updateTopoOnline,实现设备上线功能。
![1](./image/2.png)
## 如何调用SDK的方法
- 定义一个类,继承org.dromara.common.sdk.cloudapi.*.api包中的抽象类;
- 在需要调用的类中注入该类;
- 调用具体的方法。
### 【航线预下发命令】示例:
- 定义一个类:SDKWaylineService 继承 AbstractWaylineService;
![1](./image/3.png)
- 在WaylineJobServiceImpl中注入该类;
![1](./image/4.png)
- 调用下发命令的方法:
![1](./image/5.png)
## 如何实现CloudAPI 定义的http 接口
- 定义一个类,实现org.dromara.common.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
- 自定义接入参考:org.dromara.common.sample.component.websocket.config

BIN
dk-common/common-cloudsdk/image/1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
dk-common/common-cloudsdk/image/2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

BIN
dk-common/common-cloudsdk/image/3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
dk-common/common-cloudsdk/image/4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

BIN
dk-common/common-cloudsdk/image/5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
dk-common/common-cloudsdk/image/6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

BIN
dk-common/common-cloudsdk/image/7.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

32
dk-common/common-cloudsdk/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>
<groupId>org.dromara</groupId>
<artifactId>dk-common</artifactId>
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>common-cloudsdk</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-mqtt</artifactId>
<version>${spring-integration-mqtt.version}</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>${openapi-ui.version}</version>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>common-core</artifactId>
</dependency>
</dependencies>
</project>

26
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/annotations/CloudSDKVersion.java

@ -0,0 +1,26 @@
package org.dromara.common.sdk.annotations;
import org.dromara.common.sdk.config.version.CloudSDKVersionEnum;
import org.dromara.common.sdk.config.version.GatewayTypeEnum;
import java.lang.annotation.*;
/**
* @author sean
* @version 1.7
* @date 2023/5/22
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD})
public @interface CloudSDKVersion {
CloudSDKVersionEnum since() default CloudSDKVersionEnum.V0_0_1;
CloudSDKVersionEnum deprecated() default CloudSDKVersionEnum.V99;
GatewayTypeEnum[] include() default {};
GatewayTypeEnum[] exclude() default {};
}

178
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/airsense/AirsenseWarning.java

@ -0,0 +1,178 @@
package org.dromara.common.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/airsense/AltitudeTypeEnum.java

@ -0,0 +1,39 @@
package org.dromara.common.sdk.cloudapi.airsense;
import org.dromara.common.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/airsense/VertTrendEnum.java

@ -0,0 +1,41 @@
package org.dromara.common.sdk.cloudapi.airsense;
import org.dromara.common.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/airsense/WarningLevelEnum.java

@ -0,0 +1,45 @@
package org.dromara.common.sdk.cloudapi.airsense;
import org.dromara.common.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/airsense/api/AbstractAirsenseService.java

@ -0,0 +1,36 @@
package org.dromara.common.sdk.cloudapi.airsense.api;
import org.dromara.common.sdk.annotations.CloudSDKVersion;
import org.dromara.common.sdk.cloudapi.airsense.AirsenseWarning;
import org.dromara.common.sdk.config.version.CloudSDKVersionEnum;
import org.dromara.common.sdk.mqtt.ChannelName;
import org.dromara.common.sdk.mqtt.MqttReply;
import org.dromara.common.sdk.mqtt.events.TopicEventsRequest;
import org.dromara.common.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");
}
}

34
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/config/ConfigScopeEnum.java

@ -0,0 +1,34 @@
package org.dromara.common.sdk.cloudapi.config;
import org.dromara.common.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
/**
* @author sean
* @version 1.3
* @date 2022/11/10
*/
public enum ConfigScopeEnum {
PRODUCT("product");
private final String scope;
ConfigScopeEnum(String scope) {
this.scope = scope;
}
@JsonValue
public String getScope() {
return scope;
}
@JsonCreator
public static ConfigScopeEnum find(String scope) {
return Arrays.stream(values()).filter(scopeEnum -> scopeEnum.scope.equals(scope)).findAny()
.orElseThrow(() -> new CloudSDKException(ConfigScopeEnum.class, scope));
}
}

34
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/config/ConfigTypeEnum.java

@ -0,0 +1,34 @@
package org.dromara.common.sdk.cloudapi.config;
import org.dromara.common.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
/**
* @author sean
* @version 1.3
* @date 2022/11/10
*/
public enum ConfigTypeEnum {
JSON("json");
private final String type;
ConfigTypeEnum(String type) {
this.type = type;
}
@JsonValue
public String getType() {
return type;
}
@JsonCreator
public static ConfigTypeEnum find(String type) {
return Arrays.stream(values()).filter(typeEnum -> typeEnum.type.equals(type)).findAny()
.orElseThrow(() -> new CloudSDKException(ConfigTypeEnum.class, type));
}
}

73
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/config/ProductConfigResponse.java

@ -0,0 +1,73 @@
package org.dromara.common.sdk.cloudapi.config;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.NotNull;
/**
* @author sean
* @version 1.3
* @date 2022/11/10
*/
public class ProductConfigResponse extends BaseModel {
private String ntpServerHost;
@NotNull
private String appId;
@NotNull
private String appKey;
@NotNull
private String appLicense;
public ProductConfigResponse() {
}
@Override
public String toString() {
return "ProductConfigResponse{" +
"ntpServerHost='" + ntpServerHost + '\'' +
", appId='" + appId + '\'' +
", appKey='" + appKey + '\'' +
", appLicense='" + appLicense + '\'' +
'}';
}
public String getNtpServerHost() {
return ntpServerHost;
}
public ProductConfigResponse setNtpServerHost(String ntpServerHost) {
this.ntpServerHost = ntpServerHost;
return this;
}
public String getAppId() {
return appId;
}
public ProductConfigResponse setAppId(String appId) {
this.appId = appId;
return this;
}
public String getAppKey() {
return appKey;
}
public ProductConfigResponse setAppKey(String appKey) {
this.appKey = appKey;
return this;
}
public String getAppLicense() {
return appLicense;
}
public ProductConfigResponse setAppLicense(String appLicense) {
this.appLicense = appLicense;
return this;
}
}

42
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/config/RequestsConfigRequest.java

@ -0,0 +1,42 @@
package org.dromara.common.sdk.cloudapi.config;
/**
* @author sean
* @version 1.3
* @date 2022/11/10
*/
public class RequestsConfigRequest {
private ConfigTypeEnum configType;
private ConfigScopeEnum configScope;
public RequestsConfigRequest() {
}
@Override
public String toString() {
return "RequestsConfigRequest{" +
"configType=" + configType +
", configScope=" + configScope +
'}';
}
public ConfigTypeEnum getConfigType() {
return configType;
}
public RequestsConfigRequest setConfigType(ConfigTypeEnum configType) {
this.configType = configType;
return this;
}
public ConfigScopeEnum getConfigScope() {
return configScope;
}
public RequestsConfigRequest setConfigScope(ConfigScopeEnum configScope) {
this.configScope = configScope;
return this;
}
}

30
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/config/api/AbstractConfigService.java

@ -0,0 +1,30 @@
package org.dromara.common.sdk.cloudapi.config.api;
import org.dromara.common.sdk.cloudapi.config.ProductConfigResponse;
import org.dromara.common.sdk.cloudapi.config.RequestsConfigRequest;
import org.dromara.common.sdk.mqtt.ChannelName;
import org.dromara.common.sdk.mqtt.requests.TopicRequestsRequest;
import org.dromara.common.sdk.mqtt.requests.TopicRequestsResponse;
import org.springframework.integration.annotation.ServiceActivator;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageHeaders;
/**
* @author sean
* @version 1.7
* @date 2023/6/29
*/
public abstract class AbstractConfigService {
/**
* Inform of file uploading progress
* @param request data
* @param headers The headers for a {@link Message}.
* @return requests_reply
*/
@ServiceActivator(inputChannel = ChannelName.INBOUND_REQUESTS_CONFIG, outputChannel = ChannelName.OUTBOUND_REQUESTS)
public TopicRequestsResponse<ProductConfigResponse> requestsConfig(TopicRequestsRequest<RequestsConfigRequest> request, MessageHeaders headers) {
throw new UnsupportedOperationException("requestsConfig not implemented");
}
}

99
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraAimRequest.java

@ -0,0 +1,99 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
/**
* @author sean
* @version 1.4
* @date 2023/3/1
*/
public class CameraAimRequest extends BaseModel {
@NotNull
private PayloadIndex payloadIndex;
@NotNull
private CameraTypeEnum cameraType;
/**
* true: Lock the gimbal, the gimbal and the drone rotate together.
* false: Only the gimbal rotates, but the drone does not.
*/
@NotNull
private Boolean locked;
/**
* upper left corner as center point
*/
@Min(0)
@Max(1)
private Float x;
@Min(0)
@Max(1)
private Float y;
public CameraAimRequest() {
}
@Override
public String toString() {
return "CameraAimRequest{" +
"payloadIndex=" + payloadIndex +
", cameraType=" + cameraType +
", locked=" + locked +
", x=" + x +
", y=" + y +
'}';
}
public PayloadIndex getPayloadIndex() {
return payloadIndex;
}
public CameraAimRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
public CameraTypeEnum getCameraType() {
return cameraType;
}
public CameraAimRequest setCameraType(CameraTypeEnum cameraType) {
this.cameraType = cameraType;
return this;
}
public Boolean getLocked() {
return locked;
}
public CameraAimRequest setLocked(Boolean locked) {
this.locked = locked;
return this;
}
public Float getX() {
return x;
}
public CameraAimRequest setX(Float x) {
this.x = x;
return this;
}
public Float getY() {
return y;
}
public CameraAimRequest setY(Float y) {
this.y = y;
return this;
}
}

68
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraExposureModeSetRequest.java

@ -0,0 +1,68 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraExposureSetRequest.java

@ -0,0 +1,68 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.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;
}
}

66
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraFocalLengthSetRequest.java

@ -0,0 +1,66 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
/**
* @author sean
* @version 1.4
* @date 2023/3/1
*/
public class CameraFocalLengthSetRequest extends BaseModel {
@NotNull
private PayloadIndex payloadIndex;
@NotNull
private ZoomCameraTypeEnum cameraType;
@Min(2)
@Max(200)
@NotNull
private Float zoomFactor;
public CameraFocalLengthSetRequest() {
}
@Override
public String toString() {
return "CameraFocalLengthSetRequest{" +
"payloadIndex=" + payloadIndex +
", cameraType=" + cameraType +
", zoomFactor=" + zoomFactor +
'}';
}
public PayloadIndex getPayloadIndex() {
return payloadIndex;
}
public CameraFocalLengthSetRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
public ZoomCameraTypeEnum getCameraType() {
return cameraType;
}
public CameraFocalLengthSetRequest setCameraType(ZoomCameraTypeEnum cameraType) {
this.cameraType = cameraType;
return this;
}
public Float getZoomFactor() {
return zoomFactor;
}
public CameraFocalLengthSetRequest setZoomFactor(Float zoomFactor) {
this.zoomFactor = zoomFactor;
return this;
}
}

68
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraFocusModeSetRequest.java

@ -0,0 +1,68 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraFocusValueSetRequest.java

@ -0,0 +1,68 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.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;
}
}

97
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraLookAtRequest.java

@ -0,0 +1,97 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.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;
}
}

50
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraModeSwitchRequest.java

@ -0,0 +1,50 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.CameraModeEnum;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.NotNull;
/**
* @author sean
* @version 1.4
* @date 2023/3/1
*/
public class CameraModeSwitchRequest extends BaseModel {
@NotNull
private PayloadIndex payloadIndex;
@NotNull
private CameraModeEnum cameraMode;
public CameraModeSwitchRequest() {
}
@Override
public String toString() {
return "CameraModeSwitchRequest{" +
"payloadIndex=" + payloadIndex +
", cameraMode=" + cameraMode +
'}';
}
public PayloadIndex getPayloadIndex() {
return payloadIndex;
}
public CameraModeSwitchRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
public CameraModeEnum getCameraMode() {
return cameraMode;
}
public CameraModeSwitchRequest setCameraMode(CameraModeEnum cameraMode) {
this.cameraMode = cameraMode;
return this;
}
}

36
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraPhotoStopRequest.java

@ -0,0 +1,36 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraPhotoTakeProgress.java

@ -0,0 +1,56 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.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;
}
}

36
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraPhotoTakeRequest.java

@ -0,0 +1,36 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.NotNull;
/**
* @author sean
* @version 1.4
* @date 2023/3/1
*/
public class CameraPhotoTakeRequest extends BaseModel {
@NotNull
private PayloadIndex payloadIndex;
public CameraPhotoTakeRequest() {
}
@Override
public String toString() {
return "CameraPhotoTakeRequest{" +
"payloadIndex=" + payloadIndex +
'}';
}
public PayloadIndex getPayloadIndex() {
return payloadIndex;
}
public CameraPhotoTakeRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
}

93
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraPointFocusActionRequest.java

@ -0,0 +1,93 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.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;
}
}

36
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraRecordingStartRequest.java

@ -0,0 +1,36 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.NotNull;
/**
* @author sean
* @version 1.4
* @date 2023/3/1
*/
public class CameraRecordingStartRequest extends BaseModel {
@NotNull
private PayloadIndex payloadIndex;
public CameraRecordingStartRequest() {
}
@Override
public String toString() {
return "CameraRecordingStartRequest{" +
"payloadIndex=" + payloadIndex +
'}';
}
public PayloadIndex getPayloadIndex() {
return payloadIndex;
}
public CameraRecordingStartRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
}

36
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraRecordingStopRequest.java

@ -0,0 +1,36 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.NotNull;
/**
* @author sean
* @version 1.4
* @date 2023/3/1
*/
public class CameraRecordingStopRequest extends BaseModel {
@NotNull
private PayloadIndex payloadIndex;
public CameraRecordingStopRequest() {
}
@Override
public String toString() {
return "CameraRecordingStopRequest{" +
"payloadIndex=" + payloadIndex +
'}';
}
public PayloadIndex getPayloadIndex() {
return payloadIndex;
}
public CameraRecordingStopRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
}

58
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraScreenSplitRequest.java

@ -0,0 +1,58 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.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;
}
}

38
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CameraTypeEnum.java

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

37
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CommanderFlightModeEnum.java

@ -0,0 +1,37 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.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/8/7
*/
public enum CommanderFlightModeEnum {
SMART_HEIGHT(0),
SETTING_HEIGHT(1);
private final int mode;
CommanderFlightModeEnum(int mode) {
this.mode = mode;
}
@JsonValue
public int getMode() {
return mode;
}
@JsonCreator
public static CommanderFlightModeEnum find(int mode) {
return Arrays.stream(values()).filter(modeEnum -> modeEnum.mode == mode).findAny()
.orElseThrow(() -> new CloudSDKException(CommanderFlightModeEnum.class, mode));
}
}

36
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/CommanderModeLostActionEnum.java

@ -0,0 +1,36 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.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/6/6
*/
public enum CommanderModeLostActionEnum {
CONTINUE(0),
EXECUTE_RC_LOST_ACTION(1);
private final int action;
CommanderModeLostActionEnum(int action) {
this.action = action;
}
@JsonValue
public int getAction() {
return action;
}
@JsonCreator
public static CommanderModeLostActionEnum find(int action) {
return Arrays.stream(values()).filter(actionEnum -> actionEnum.action == action).findAny()
.orElseThrow(() -> new CloudSDKException(CommanderModeLostActionEnum.class, action));
}
}

91
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/ControlErrorCodeEnum.java

@ -0,0 +1,91 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.common.IErrorInfo;
import org.dromara.common.sdk.mqtt.events.IEventsErrorCode;
import org.dromara.common.sdk.mqtt.services.IServicesErrorCode;
import java.util.Arrays;
/**
* @author sean.zhou
* @version 0.1
* @date 2021/11/25
*/
public enum ControlErrorCodeEnum implements IServicesErrorCode, IEventsErrorCode, IErrorInfo {
SETTING_RTH_FAILED(327000, "Height of return to home setting failed."),
SETTING_LOST_ACTION_FAILED(327001, "Signal lost action setting failed."),
OBTAIN_CONTROL_FAILED(327002, "Failed to obtain control."),
DEVICE_OFFLINE(327003, "Failed to obtain control. Device offline."),
DRAG_LIVESTREAM_VIEW_FAILED(327004, "Failed to drag livestream view."),
AIM_FAILED(327005, "Failed to double tab to be AIM."),
TAKE_PHOTO_FAILED(327006, "Failed to take photo."),
START_RECORDING_FAILED(327007, "Failed to start recording."),
STOP_RECORDING_FAILED(327008, "Failed to stop recording."),
SWITCH_CAMERA_MODE_FAILED(327009, "Failed to switch camera modes."),
ZOOM_CAMERA_ZOOM_FAILED(327010, "Failed to zoom in/out with zoom camera."),
IR_CAMERA_ZOOM_FAILED(327011, "Failed to zoom in/out with IR camera."),
DEVICE_LOCK(327012, "Failed to obtain control. Device is locked."),
SETTING_WAYLINE_LOST_ACTION_FAILED(327013, "Wayline signal lost action setting failed."),
GIMBAL_REACH_LIMIT(327014, "Gimbal reached movement limit."),
WRONG_LENS_TYPE(327015, "Invalid camera lens type."),
DRC_ABNORMAL(514300, "DRC abnormal."),
DRC_HEARTBEAT_TIMED_OUT(514301, "DRC heartbeat timed out."),
DRC_CERTIFICATE_ABNORMAL(514302, "DRC certificate is abnormal."),
DRC_LINK_LOST(514303, "DRC link is lost."),
DRC_LINK_REFUSED(514304, "DRC link is refused."),
UNKNOWN(-1, "UNKNOWN"),
;
private final String msg;
private final int code;
ControlErrorCodeEnum(int code, String msg) {
this.code = code;
this.msg = msg;
}
@Override
public String getMessage() {
return this.msg;
}
@Override
public Integer getCode() {
return this.code;
}
/**
* @param code error code
* @return enumeration object
*/
public static ControlErrorCodeEnum find(int code) {
return Arrays.stream(values()).filter(codeEnum -> codeEnum.code == code).findAny().orElse(UNKNOWN);
}
}

90
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/ControlMethodEnum.java

@ -0,0 +1,90 @@
package org.dromara.common.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;
}
}

44
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/DelayInfoPush.java

@ -0,0 +1,44 @@
package org.dromara.common.sdk.cloudapi.control;
import java.util.List;
/**
* @author sean
* @version 1.7
* @date 2023/6/29
*/
public class DelayInfoPush {
private Integer sdrCmdDelay;
private List<LiveviewDelay> liveviewDelayList;
public DelayInfoPush() {
}
@Override
public String toString() {
return "DelayInfoPush{" +
"sdrCmdDelay=" + sdrCmdDelay +
", liveviewDelayList=" + liveviewDelayList +
'}';
}
public Integer getSdrCmdDelay() {
return sdrCmdDelay;
}
public DelayInfoPush setSdrCmdDelay(Integer sdrCmdDelay) {
this.sdrCmdDelay = sdrCmdDelay;
return this;
}
public List<LiveviewDelay> getLiveviewDelayList() {
return liveviewDelayList;
}
public DelayInfoPush setLiveviewDelayList(List<LiveviewDelay> liveviewDelayList) {
this.liveviewDelayList = liveviewDelayList;
return this;
}
}

75
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/DrcModeEnterRequest.java

@ -0,0 +1,75 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.Valid;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
/**
* @author sean
* @version 1.3
* @date 2023/1/12
*/
public class DrcModeEnterRequest extends BaseModel {
@NotNull
@Valid
private DrcModeMqttBroker mqttBroker;
/**
* range: 1 - 30
*/
@Min(1)
@Max(30)
@NotNull
private Integer osdFrequency;
/**
* range: 1 - 30
*/
@Min(1)
@Max(30)
@NotNull
private Integer hsiFrequency;
public DrcModeEnterRequest() {
}
@Override
public String toString() {
return "DrcModeEnterRequest{" +
"mqttBroker=" + mqttBroker +
", osdFrequency=" + osdFrequency +
", hsiFrequency=" + hsiFrequency +
'}';
}
public DrcModeMqttBroker getMqttBroker() {
return mqttBroker;
}
public DrcModeEnterRequest setMqttBroker(DrcModeMqttBroker mqttBroker) {
this.mqttBroker = mqttBroker;
return this;
}
public Integer getOsdFrequency() {
return osdFrequency;
}
public DrcModeEnterRequest setOsdFrequency(Integer osdFrequency) {
this.osdFrequency = osdFrequency;
return this;
}
public Integer getHsiFrequency() {
return hsiFrequency;
}
public DrcModeEnterRequest setHsiFrequency(Integer hsiFrequency) {
this.hsiFrequency = hsiFrequency;
return this;
}
}

102
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/DrcModeMqttBroker.java

@ -0,0 +1,102 @@
package org.dromara.common.sdk.cloudapi.control;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
/**
* @author sean
* @version 1.3
* @date 2023/1/11
*/
public class DrcModeMqttBroker {
@NotNull
private String address;
@NotNull
private String username;
@NotNull
private String password;
@NotNull
private String clientId;
@NotNull
@Min(1234567890)
@Max(9999999999L)
private Long expireTime;
@NotNull
private Boolean enableTls;
public DrcModeMqttBroker() {
}
@Override
public String toString() {
return "DrcModeMqttBroker{" +
"address='" + address + '\'' +
", username='" + username + '\'' +
", password='" + password + '\'' +
", clientId='" + clientId + '\'' +
", expireTime=" + expireTime +
", enableTls=" + enableTls +
'}';
}
public String getAddress() {
return address;
}
public DrcModeMqttBroker setAddress(String address) {
this.address = address;
return this;
}
public String getUsername() {
return username;
}
public DrcModeMqttBroker setUsername(String username) {
this.username = username;
return this;
}
public String getPassword() {
return password;
}
public DrcModeMqttBroker setPassword(String password) {
this.password = password;
return this;
}
public String getClientId() {
return clientId;
}
public DrcModeMqttBroker setClientId(String clientId) {
this.clientId = clientId;
return this;
}
public Long getExpireTime() {
return expireTime;
}
public DrcModeMqttBroker setExpireTime(Long expireTime) {
this.expireTime = expireTime;
return this;
}
public Boolean getEnableTls() {
return enableTls;
}
public DrcModeMqttBroker setEnableTls(Boolean enableTls) {
this.enableTls = enableTls;
return this;
}
}

52
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/DrcStatusErrorEnum.java

@ -0,0 +1,52 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.common.IErrorInfo;
import org.dromara.common.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import java.util.Arrays;
/**
* @author sean
* @version 1.4
* @date 2023/3/17
*/
public enum DrcStatusErrorEnum implements IErrorInfo {
SUCCESS(0, "success"),
MQTT_ERR(514300, "mqtt连接错误。"),
HEARTBEAT_TIMEOUT(514301, "心跳超时,底座断开连接。"),
MQTT_CERTIFICATE_ERR(514302, "mqtt证书异常,连接失败。"),
MQTT_LOST(514303, "dock网络异常,mqtt连接丢失。"),
MQTT_REFUSE(514304, "与mqtt服务器的对接连接被拒绝。");
private final String msg;
private final int code;
DrcStatusErrorEnum(int code, String msg) {
this.code = code;
this.msg = msg;
}
@Override
public String getMessage() {
return msg;
}
@Override
public Integer getCode() {
return code;
}
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
public static DrcStatusErrorEnum find(int code) {
return Arrays.stream(values()).filter(error -> error.code == code).findAny()
.orElseThrow(() -> new CloudSDKException(DrcStatusErrorEnum.class, code));
}
}

44
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/DrcStatusNotify.java

@ -0,0 +1,44 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.DrcStateEnum;
/**
* @author sean
* @version 1.4
* @date 2023/3/17
*/
public class DrcStatusNotify {
private DrcStatusErrorEnum result;
private DrcStateEnum drcState;
public DrcStatusNotify() {
}
@Override
public String toString() {
return "DrcStatusNotify{" +
"result=" + result +
", drcState=" + drcState +
'}';
}
public DrcStatusErrorEnum getResult() {
return result;
}
public DrcStatusNotify setResult(DrcStatusErrorEnum result) {
this.result = result;
return this;
}
public DrcStateEnum getDrcState() {
return drcState;
}
public DrcStatusNotify setDrcState(DrcStateEnum drcState) {
this.drcState = drcState;
return this;
}
}

121
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/DroneControlRequest.java

@ -0,0 +1,121 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
/**
* @author sean
* @version 1.7
* @date 2023/6/29
*/
public class DroneControlRequest extends BaseModel {
@NotNull
private Long seq;
@Min(-17)
@Max(17)
private Float x;
@Min(-17)
@Max(17)
private Float y;
@Min(-4)
@Max(5)
private Float h;
@Min(-90)
@Max(90)
private Float w;
@Min(2)
@Max(10)
private Integer freq;
@Min(100)
@Max(1000)
private Integer delayTime;
public DroneControlRequest() {
}
@Override
public String toString() {
return "DroneControlRequest{" +
"seq=" + seq +
", x=" + x +
", y=" + y +
", h=" + h +
", w=" + w +
", freq=" + freq +
", delayTime=" + delayTime +
'}';
}
public Long getSeq() {
return seq;
}
public DroneControlRequest setSeq(Long seq) {
this.seq = seq;
return this;
}
public Float getX() {
return x;
}
public DroneControlRequest setX(Float x) {
this.x = x;
return this;
}
public Float getY() {
return y;
}
public DroneControlRequest setY(Float y) {
this.y = y;
return this;
}
public Float getH() {
return h;
}
public DroneControlRequest setH(Float h) {
this.h = h;
return this;
}
public Float getW() {
return w;
}
public DroneControlRequest setW(Float w) {
this.w = w;
return this;
}
public Integer getFreq() {
return freq;
}
public DroneControlRequest setFreq(Integer freq) {
this.freq = freq;
return this;
}
public Integer getDelayTime() {
return delayTime;
}
public DroneControlRequest setDelayTime(Integer delayTime) {
this.delayTime = delayTime;
return this;
}
}

31
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/DroneControlResponse.java

@ -0,0 +1,31 @@
package org.dromara.common.sdk.cloudapi.control;
/**
* @author sean
* @version 1.7
* @date 2023/6/29
*/
public class DroneControlResponse {
private Long seq;
public DroneControlResponse() {
}
@Override
public String toString() {
return "DroneControlResponse{" +
"seq=" + seq +
'}';
}
public Long getSeq() {
return seq;
}
public DroneControlResponse setSeq(Long seq) {
this.seq = seq;
return this;
}
}

36
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/ExposureCameraTypeEnum.java

@ -0,0 +1,36 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/ExposureModeEnum.java

@ -0,0 +1,44 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/ExposureValueEnum.java

@ -0,0 +1,107 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.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));
}
}

68
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/FlyToPointProgress.java

@ -0,0 +1,68 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.wayline.WaylineErrorCodeEnum;
/**
* @author sean
* @version 1.4
* @date 2023/3/14
*/
public class FlyToPointProgress {
private WaylineErrorCodeEnum result;
private FlyToStatusEnum status;
private String flyToId;
private Integer wayPointIndex;
public FlyToPointProgress() {
}
@Override
public String toString() {
return "FlyToPointProgress{" +
"result=" + result +
", status=" + status +
", flyToId='" + flyToId + '\'' +
", wayPointIndex=" + wayPointIndex +
'}';
}
public WaylineErrorCodeEnum getResult() {
return result;
}
public FlyToPointProgress setResult(WaylineErrorCodeEnum result) {
this.result = result;
return this;
}
public FlyToStatusEnum getStatus() {
return status;
}
public FlyToPointProgress setStatus(FlyToStatusEnum status) {
this.status = status;
return this;
}
public String getFlyToId() {
return flyToId;
}
public FlyToPointProgress setFlyToId(String flyToId) {
this.flyToId = flyToId;
return this;
}
public Integer getWayPointIndex() {
return wayPointIndex;
}
public FlyToPointProgress setWayPointIndex(Integer wayPointIndex) {
this.wayPointIndex = wayPointIndex;
return this;
}
}

70
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/FlyToPointRequest.java

@ -0,0 +1,70 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.Valid;
import jakarta.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;
}
}

60
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/FlyToPointUpdateRequest.java

@ -0,0 +1,60 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.Valid;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import jakarta.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;
}
}

47
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/FlyToStatusEnum.java

@ -0,0 +1,47 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
/**
* @author sean
* @version 1.4
* @date 2023/3/14
*/
public enum FlyToStatusEnum {
WAYLINE_PROGRESS("wayline_progress", "FlyTo作业正在进行中。"),
WAYLINE_FAILED("wayline_failed", "FlyTo作业执行失败。"),
WAYLINE_OK("wayline_ok", "FlyTo作业已成功执行。"),
WAYLINE_CANCEL("wayline_cancel", "FlyTo作业已关闭。");
private final String status;
private final String message;
FlyToStatusEnum(String status, String message) {
this.status = status;
this.message = message;
}
public String getMessage() {
return message;
}
@JsonValue
public String getStatus() {
return status;
}
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
public static FlyToStatusEnum find(String status) {
return Arrays.stream(values()).filter(statusEnum -> statusEnum.status.equals(status)).findAny()
.orElseThrow(() -> new CloudSDKException(FlyToStatusEnum.class, status));
}
}

40
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/FocusModeEnum.java

@ -0,0 +1,40 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.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));
}
}

40
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/GimbalResetModeEnum.java

@ -0,0 +1,40 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
/**
* @author sean
* @version 1.4
* @date 2023/3/13
*/
public enum GimbalResetModeEnum {
RECENTER(0),
DOWN(1),
RECENTER_PAN(2),
PITCH_DOWN(3);
private final int mode;
GimbalResetModeEnum(int mode) {
this.mode = mode;
}
@JsonValue
public int getMode() {
return mode;
}
@JsonCreator
public static GimbalResetModeEnum find(int mode) {
return Arrays.stream(values()).filter(resetModeEnum -> resetModeEnum.ordinal() == mode).findAny()
.orElseThrow(() -> new CloudSDKException(GimbalResetModeEnum.class, mode));
}
}

49
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/GimbalResetRequest.java

@ -0,0 +1,49 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.NotNull;
/**
* @author sean
* @version 1.4
* @date 2023/3/1
*/
public class GimbalResetRequest extends BaseModel {
@NotNull
private PayloadIndex payloadIndex;
@NotNull
private GimbalResetModeEnum resetMode;
public GimbalResetRequest() {
}
@Override
public String toString() {
return "GimbalResetRequest{" +
"payloadIndex=" + payloadIndex +
", resetMode=" + resetMode +
'}';
}
public PayloadIndex getPayloadIndex() {
return payloadIndex;
}
public GimbalResetRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
public GimbalResetModeEnum getResetMode() {
return resetMode;
}
public GimbalResetRequest setResetMode(GimbalResetModeEnum resetMode) {
this.resetMode = resetMode;
return this;
}
}

50
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/HeartBeatRequest.java

@ -0,0 +1,50 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
/**
* @author sean
* @version 1.7
* @date 2023/6/29
*/
public class HeartBeatRequest extends BaseModel {
@NotNull
private Long seq;
@NotNull
@Min(123456789012L)
private Long timestamp;
public HeartBeatRequest() {
}
@Override
public String toString() {
return "HeartBeatRequest{" +
"seq=" + seq +
", timestamp=" + timestamp +
'}';
}
public Long getSeq() {
return seq;
}
public HeartBeatRequest setSeq(Long seq) {
this.seq = seq;
return this;
}
public Long getTimestamp() {
return timestamp;
}
public HeartBeatRequest setTimestamp(Long timestamp) {
this.timestamp = timestamp;
return this;
}
}

248
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/HsiInfoPush.java

@ -0,0 +1,248 @@
package org.dromara.common.sdk.cloudapi.control;
import java.util.List;
/**
* @author sean
* @version 1.7
* @date 2023/6/29
*/
public class HsiInfoPush {
private Integer upDistance;
private Integer downDistance;
private List<Integer> aroundDistance;
private Boolean upEnable;
private Boolean upWork;
private Boolean downEnable;
private Boolean downWork;
private Boolean leftEnable;
private Boolean leftWork;
private Boolean rightEnable;
private Boolean rightWork;
private Boolean frontEnable;
private Boolean frontWork;
private Boolean backEnable;
private Boolean backWork;
private Boolean verticalEnable;
private Boolean verticalWork;
private Boolean horizontalEnable;
private Boolean horizontalWork;
public HsiInfoPush() {
}
@Override
public String toString() {
return "HsiInfoPush{" +
"upDistance=" + upDistance +
", downDistance=" + downDistance +
", aroundDistance=" + aroundDistance +
", upEnable=" + upEnable +
", upWork=" + upWork +
", downEnable=" + downEnable +
", downWork=" + downWork +
", leftEnable=" + leftEnable +
", leftWork=" + leftWork +
", rightEnable=" + rightEnable +
", rightWork=" + rightWork +
", frontEnable=" + frontEnable +
", frontWork=" + frontWork +
", backEnable=" + backEnable +
", backWork=" + backWork +
", verticalEnable=" + verticalEnable +
", verticalWork=" + verticalWork +
", horizontalEnable=" + horizontalEnable +
", horizontalWork=" + horizontalWork +
'}';
}
public Integer getUpDistance() {
return upDistance;
}
public HsiInfoPush setUpDistance(Integer upDistance) {
this.upDistance = upDistance;
return this;
}
public Integer getDownDistance() {
return downDistance;
}
public HsiInfoPush setDownDistance(Integer downDistance) {
this.downDistance = downDistance;
return this;
}
public List<Integer> getAroundDistance() {
return aroundDistance;
}
public HsiInfoPush setAroundDistance(List<Integer> aroundDistance) {
this.aroundDistance = aroundDistance;
return this;
}
public Boolean getUpEnable() {
return upEnable;
}
public HsiInfoPush setUpEnable(Boolean upEnable) {
this.upEnable = upEnable;
return this;
}
public Boolean getUpWork() {
return upWork;
}
public HsiInfoPush setUpWork(Boolean upWork) {
this.upWork = upWork;
return this;
}
public Boolean getDownEnable() {
return downEnable;
}
public HsiInfoPush setDownEnable(Boolean downEnable) {
this.downEnable = downEnable;
return this;
}
public Boolean getDownWork() {
return downWork;
}
public HsiInfoPush setDownWork(Boolean downWork) {
this.downWork = downWork;
return this;
}
public Boolean getLeftEnable() {
return leftEnable;
}
public HsiInfoPush setLeftEnable(Boolean leftEnable) {
this.leftEnable = leftEnable;
return this;
}
public Boolean getLeftWork() {
return leftWork;
}
public HsiInfoPush setLeftWork(Boolean leftWork) {
this.leftWork = leftWork;
return this;
}
public Boolean getRightEnable() {
return rightEnable;
}
public HsiInfoPush setRightEnable(Boolean rightEnable) {
this.rightEnable = rightEnable;
return this;
}
public Boolean getRightWork() {
return rightWork;
}
public HsiInfoPush setRightWork(Boolean rightWork) {
this.rightWork = rightWork;
return this;
}
public Boolean getFrontEnable() {
return frontEnable;
}
public HsiInfoPush setFrontEnable(Boolean frontEnable) {
this.frontEnable = frontEnable;
return this;
}
public Boolean getFrontWork() {
return frontWork;
}
public HsiInfoPush setFrontWork(Boolean frontWork) {
this.frontWork = frontWork;
return this;
}
public Boolean getBackEnable() {
return backEnable;
}
public HsiInfoPush setBackEnable(Boolean backEnable) {
this.backEnable = backEnable;
return this;
}
public Boolean getBackWork() {
return backWork;
}
public HsiInfoPush setBackWork(Boolean backWork) {
this.backWork = backWork;
return this;
}
public Boolean getVerticalEnable() {
return verticalEnable;
}
public HsiInfoPush setVerticalEnable(Boolean verticalEnable) {
this.verticalEnable = verticalEnable;
return this;
}
public Boolean getVerticalWork() {
return verticalWork;
}
public HsiInfoPush setVerticalWork(Boolean verticalWork) {
this.verticalWork = verticalWork;
return this;
}
public Boolean getHorizontalEnable() {
return horizontalEnable;
}
public HsiInfoPush setHorizontalEnable(Boolean horizontalEnable) {
this.horizontalEnable = horizontalEnable;
return this;
}
public Boolean getHorizontalWork() {
return horizontalWork;
}
public HsiInfoPush setHorizontalWork(Boolean horizontalWork) {
this.horizontalWork = horizontalWork;
return this;
}
}

116
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/IrMeteringAreaSetRequest.java

@ -0,0 +1,116 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.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;
}
}

54
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/IrMeteringModeSetRequest.java

@ -0,0 +1,54 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/IrMeteringPointSetRequest.java

@ -0,0 +1,80 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.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;
}
}

30
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/JoystickInvalidNotify.java

@ -0,0 +1,30 @@
package org.dromara.common.sdk.cloudapi.control;
/**
* @author sean
* @version 1.4
* @date 2023/3/14
*/
public class JoystickInvalidNotify {
private JoystickInvalidReasonEnum reason;
public JoystickInvalidNotify() {
}
@Override
public String toString() {
return "JoystickInvalidNotify{" +
"reason=" + reason +
'}';
}
public JoystickInvalidReasonEnum getReason() {
return reason;
}
public JoystickInvalidNotify setReason(JoystickInvalidReasonEnum reason) {
this.reason = reason;
return this;
}
}

49
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/JoystickInvalidReasonEnum.java

@ -0,0 +1,49 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
/**
* @author sean
* @version 1.4
* @date 2023/3/14
*/
public enum JoystickInvalidReasonEnum {
RC_LOST(0, "遥控器丢失。"),
BATTERY_LOW_GO_HOME(1, "由于电池电量不足,无人机自动返回家园。"),
BATTERY_SUPER_LOW_LANDING(2, "由于电池电量严重不足,无人机自动降落。"),
NEAR_BOUNDARY(3, "无人机在禁飞区附近。"),
RC_AUTHORITY(4, "遥控器获取控制权限。");
private final int reason;
private final String message;
JoystickInvalidReasonEnum(int reason, String message) {
this.reason = reason;
this.message = message;
}
@JsonValue
public int getVal() {
return reason;
}
public String getMessage() {
return message;
}
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
public static JoystickInvalidReasonEnum find(int reason) {
return Arrays.stream(values()).filter(reasonEnum -> reasonEnum.reason == reason).findAny()
.orElseThrow(() -> new CloudSDKException(JoystickInvalidReasonEnum.class, reason));
}
}

42
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/LensStorageSettingsEnum.java

@ -0,0 +1,42 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.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"),
VISION("vision"),
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));
}
}

35
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/LiveviewDelay.java

@ -0,0 +1,35 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.VideoId;
/**
* @author sean
* @version 1.7
* @date 2023/6/29
*/
public class LiveviewDelay {
private Integer liveviewDelayTime;
private VideoId videoId;
public LiveviewDelay() {
}
@Override
public String toString() {
return "LiveviewDelay{" +
"liveviewDelayTime=" + liveviewDelayTime +
", videoId=" + videoId +
'}';
}
public Integer getLiveviewDelayTime() {
return liveviewDelayTime;
}
public LiveviewDelay setLiveviewDelayTime(Integer liveviewDelayTime) {
this.liveviewDelayTime = liveviewDelayTime;
return this;
}
}

41
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/MeteringModeEnum.java

@ -0,0 +1,41 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.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));
}
}

138
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/OsdInfoPush.java

@ -0,0 +1,138 @@
package org.dromara.common.sdk.cloudapi.control;
/**
* @author sean
* @version 1.7
* @date 2023/6/29
*/
public class OsdInfoPush {
private Float attitudeHead;
private Float latitude;
private Float longitude;
private Float height;
private Float speedX;
private Float speedY;
private Float speedZ;
private Float gimbalPitch;
private Float gimbalRoll;
private Float gimbalYaw;
public OsdInfoPush() {
}
@Override
public String toString() {
return "OsdInfoPush{" +
"attitudeHead=" + attitudeHead +
", latitude=" + latitude +
", longitude=" + longitude +
", height=" + height +
", speedX=" + speedX +
", speedY=" + speedY +
", speedZ=" + speedZ +
", gimbalPitch=" + gimbalPitch +
", gimbalRoll=" + gimbalRoll +
", gimbalYaw=" + gimbalYaw +
'}';
}
public Float getAttitudeHead() {
return attitudeHead;
}
public OsdInfoPush setAttitudeHead(Float attitudeHead) {
this.attitudeHead = attitudeHead;
return this;
}
public Float getLatitude() {
return latitude;
}
public OsdInfoPush setLatitude(Float latitude) {
this.latitude = latitude;
return this;
}
public Float getLongitude() {
return longitude;
}
public OsdInfoPush setLongitude(Float longitude) {
this.longitude = longitude;
return this;
}
public Float getHeight() {
return height;
}
public OsdInfoPush setHeight(Float height) {
this.height = height;
return this;
}
public Float getSpeedX() {
return speedX;
}
public OsdInfoPush setSpeedX(Float speedX) {
this.speedX = speedX;
return this;
}
public Float getSpeedY() {
return speedY;
}
public OsdInfoPush setSpeedY(Float speedY) {
this.speedY = speedY;
return this;
}
public Float getSpeedZ() {
return speedZ;
}
public OsdInfoPush setSpeedZ(Float speedZ) {
this.speedZ = speedZ;
return this;
}
public Float getGimbalPitch() {
return gimbalPitch;
}
public OsdInfoPush setGimbalPitch(Float gimbalPitch) {
this.gimbalPitch = gimbalPitch;
return this;
}
public Float getGimbalRoll() {
return gimbalRoll;
}
public OsdInfoPush setGimbalRoll(Float gimbalRoll) {
this.gimbalRoll = gimbalRoll;
return this;
}
public Float getGimbalYaw() {
return gimbalYaw;
}
public OsdInfoPush setGimbalYaw(Float gimbalYaw) {
this.gimbalYaw = gimbalYaw;
return this;
}
}

36
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/PayloadAuthorityGrabRequest.java

@ -0,0 +1,36 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.NotNull;
/**
* @author sean
* @version 1.7
* @date 2023/6/29
*/
public class PayloadAuthorityGrabRequest extends BaseModel {
@NotNull
private PayloadIndex payloadIndex;
public PayloadAuthorityGrabRequest() {
}
@Override
public String toString() {
return "PayloadAuthorityGrabRequest{" +
"payloadIndex=" + payloadIndex +
'}';
}
public PayloadIndex getPayloadIndex() {
return payloadIndex;
}
public PayloadAuthorityGrabRequest setPayloadIndex(PayloadIndex payloadIndex) {
this.payloadIndex = payloadIndex;
return this;
}
}

78
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/PayloadControlMethodEnum.java

@ -0,0 +1,78 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.common.BaseModel;
import org.dromara.common.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/PhotoStorageSetRequest.java

@ -0,0 +1,61 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.NotNull;
import jakarta.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/PhotoTakeProgressData.java

@ -0,0 +1,42 @@
package org.dromara.common.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/PhotoTakeProgressExt.java

@ -0,0 +1,32 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/PhotoTakeProgressStepEnum.java

@ -0,0 +1,43 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/PoiCircleSpeedSetRequest.java

@ -0,0 +1,35 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/PoiModeEnterRequest.java

@ -0,0 +1,69 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/PoiStatusNotify.java

@ -0,0 +1,80 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/PoiStatusReasonEnum.java

@ -0,0 +1,53 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.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));
}
}

72
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/Point.java

@ -0,0 +1,72 @@
package org.dromara.common.sdk.cloudapi.control;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
/**
* @author sean
* @version 1.3
* @date 2023/2/14
*/
public class Point {
@Min(-90)
@Max(90)
@NotNull
private Float latitude;
@NotNull
@Min(-180)
@Max(180)
private Float longitude;
/**
* WGS84
* The M30 series are ellipsoidal heights.
*/
@NotNull
@Min(2)
@Max(10000)
private Float height;
public Point() {
}
@Override
public String toString() {
return "Point{" +
"latitude=" + latitude +
", longitude=" + longitude +
", height=" + height +
'}';
}
public Float getLatitude() {
return latitude;
}
public Point setLatitude(Float latitude) {
this.latitude = latitude;
return this;
}
public Float getLongitude() {
return longitude;
}
public Point setLongitude(Float longitude) {
this.longitude = longitude;
return this;
}
public Float getHeight() {
return height;
}
public Point setHeight(Float height) {
this.height = height;
return this;
}
}

51
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/TakeoffStatusEnum.java

@ -0,0 +1,51 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
/**
* @author sean
* @version 1.4
* @date 2023/3/17
*/
public enum TakeoffStatusEnum {
TASK_READY("task_ready", "无人机正准备起飞。"),
WAYLINE_PROGRESS("wayline_progress", "无人机正在起飞。"),
WAYLINE_FAILED("wayline_failed", "无人机正在起飞。"),
WAYLINE_OK("wayline_ok", "无人机成功起飞。"),
WAYLINE_CANCEL("wayline_cancel", "无人机起飞作业已被取消。"),
TASK_FINISH("task_finish", "无人机起飞任务完成。");
private final String status;
private final String message;
TakeoffStatusEnum(String status, String message) {
this.status = status;
this.message = message;
}
@JsonValue
public String getStatus() {
return status;
}
public String getMessage() {
return message;
}
@JsonCreator(mode = JsonCreator.Mode.DELEGATING)
public static TakeoffStatusEnum find(String status) {
return Arrays.stream(values()).filter(statusEnum -> statusEnum.status.equals(status)).findAny()
.orElseThrow(() -> new CloudSDKException(TakeoffStatusEnum.class, status));
}
}

135
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/TakeoffToPointProgress.java

@ -0,0 +1,135 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.annotations.CloudSDKVersion;
import org.dromara.common.sdk.cloudapi.wayline.WaylineErrorCodeEnum;
import org.dromara.common.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/TakeoffToPointRequest.java

@ -0,0 +1,235 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.annotations.CloudSDKVersion;
import org.dromara.common.sdk.cloudapi.device.ExitWaylineWhenRcLostEnum;
import org.dromara.common.sdk.cloudapi.device.RcLostActionEnum;
import org.dromara.common.sdk.cloudapi.wayline.RthModeEnum;
import org.dromara.common.sdk.cloudapi.wayline.SimulateMission;
import org.dromara.common.sdk.common.BaseModel;
import org.dromara.common.sdk.config.version.CloudSDKVersionEnum;
import jakarta.validation.Valid;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import jakarta.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/VideoStorageSetRequest.java

@ -0,0 +1,61 @@
package org.dromara.common.sdk.cloudapi.control;
import org.dromara.common.sdk.cloudapi.device.PayloadIndex;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.NotNull;
import jakarta.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;
}
}

36
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/ZoomCameraTypeEnum.java

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

665
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/control/api/AbstractControlService.java

@ -0,0 +1,665 @@
package org.dromara.common.sdk.cloudapi.control.api;
import org.dromara.common.sdk.annotations.CloudSDKVersion;
import org.dromara.common.sdk.cloudapi.control.*;
import org.dromara.common.sdk.common.BaseModel;
import org.dromara.common.sdk.common.Common;
import org.dromara.common.sdk.common.SpringBeanUtils;
import org.dromara.common.sdk.config.version.CloudSDKVersionEnum;
import org.dromara.common.sdk.config.version.GatewayManager;
import org.dromara.common.sdk.config.version.GatewayTypeEnum;
import org.dromara.common.sdk.exception.CloudSDKException;
import org.dromara.common.sdk.mqtt.ChannelName;
import org.dromara.common.sdk.mqtt.MqttReply;
import org.dromara.common.sdk.mqtt.drc.DrcDownPublish;
import org.dromara.common.sdk.mqtt.drc.DrcUpData;
import org.dromara.common.sdk.mqtt.drc.TopicDrcRequest;
import org.dromara.common.sdk.mqtt.events.EventsDataRequest;
import org.dromara.common.sdk.mqtt.events.TopicEventsRequest;
import org.dromara.common.sdk.mqtt.events.TopicEventsResponse;
import org.dromara.common.sdk.mqtt.services.ServicesPublish;
import org.dromara.common.sdk.mqtt.services.ServicesReplyData;
import org.dromara.common.sdk.mqtt.services.TopicServicesResponse;
import jakarta.annotation.Resource;
import org.springframework.integration.annotation.ServiceActivator;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageHeaders;
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");
}
}

40
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/AirConditionerModeSwitchActionEnum.java

@ -0,0 +1,40 @@
package org.dromara.common.sdk.cloudapi.debug;
import org.dromara.common.sdk.exception.CloudSDKException;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Arrays;
/**
* @author sean
* @version 1.3
* @date 2022/10/28
*/
public enum AirConditionerModeSwitchActionEnum {
IDLE_MODE(0),
COOLING_MODE(1),
heating_mode(2),
DEHUMIDIFICATION_MODE(3);
private final int action;
AirConditionerModeSwitchActionEnum(int action) {
this.action = action;
}
@JsonValue
public int getAction() {
return action;
}
@JsonCreator
public static AirConditionerModeSwitchActionEnum find(int action) {
return Arrays.stream(values()).filter(actionEnum -> actionEnum.action == action).findAny()
.orElseThrow(() -> new CloudSDKException(AirConditionerModeSwitchActionEnum.class, action));
}
}

35
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/AirConditionerModeSwitchRequest.java

@ -0,0 +1,35 @@
package org.dromara.common.sdk.cloudapi.debug;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.NotNull;
/**
* @author sean
* @version 1.3
* @date 2022/11/25
*/
public class AirConditionerModeSwitchRequest extends BaseModel {
@NotNull
private AirConditionerModeSwitchActionEnum action;
public AirConditionerModeSwitchRequest() {
}
@Override
public String toString() {
return "AirConditionerModeSwitchRequest{" +
"action=" + action +
'}';
}
public AirConditionerModeSwitchActionEnum getAction() {
return action;
}
public AirConditionerModeSwitchRequest setAction(AirConditionerModeSwitchActionEnum action) {
this.action = action;
return this;
}
}

36
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/AlarmStateSwitchRequest.java

@ -0,0 +1,36 @@
package org.dromara.common.sdk.cloudapi.debug;
import org.dromara.common.sdk.cloudapi.device.SwitchActionEnum;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.NotNull;
/**
* @author sean
* @version 1.3
* @date 2022/11/25
*/
public class AlarmStateSwitchRequest extends BaseModel {
@NotNull
private SwitchActionEnum action;
public AlarmStateSwitchRequest() {
}
@Override
public String toString() {
return "AlarmStateSwitchRequest{" +
"action=" + action +
'}';
}
public SwitchActionEnum getAction() {
return action;
}
public AlarmStateSwitchRequest setAction(SwitchActionEnum action) {
this.action = action;
return this;
}
}

36
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/BatteryMaintenanceSwitchRequest.java

@ -0,0 +1,36 @@
package org.dromara.common.sdk.cloudapi.debug;
import org.dromara.common.sdk.cloudapi.device.SwitchActionEnum;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.NotNull;
/**
* @author sean
* @version 1.3
* @date 2022/11/25
*/
public class BatteryMaintenanceSwitchRequest extends BaseModel {
@NotNull
private SwitchActionEnum action;
public BatteryMaintenanceSwitchRequest() {
}
@Override
public String toString() {
return "BatteryMaintenanceSwitchRequest{" +
"action=" + action +
'}';
}
public SwitchActionEnum getAction() {
return action;
}
public BatteryMaintenanceSwitchRequest setAction(SwitchActionEnum action) {
this.action = action;
return this;
}
}

36
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/BatteryStoreModeSwitchRequest.java

@ -0,0 +1,36 @@
package org.dromara.common.sdk.cloudapi.debug;
import org.dromara.common.sdk.cloudapi.device.BatteryStoreModeEnum;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.validation.constraints.NotNull;
/**
* @author sean
* @version 1.3
* @date 2022/11/25
*/
public class BatteryStoreModeSwitchRequest extends BaseModel {
@NotNull
private BatteryStoreModeEnum action;
public BatteryStoreModeSwitchRequest() {
}
@Override
public String toString() {
return "BatteryStoreModeSwitchRequest{" +
"action=" + action +
'}';
}
public BatteryStoreModeEnum getAction() {
return action;
}
public BatteryStoreModeSwitchRequest setAction(BatteryStoreModeEnum action) {
this.action = action;
return this;
}
}

168
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/DebugErrorCodeEnum.java

@ -0,0 +1,168 @@
package org.dromara.common.sdk.cloudapi.debug;
import org.dromara.common.sdk.common.IErrorInfo;
import org.dromara.common.sdk.mqtt.events.IEventsErrorCode;
import org.dromara.common.sdk.mqtt.services.IServicesErrorCode;
import java.util.Arrays;
/**
* @author sean.zhou
* @version 0.1
* @date 2021/11/25
*/
public enum DebugErrorCodeEnum implements IServicesErrorCode, IEventsErrorCode, IErrorInfo {
AIRCRAFT_NO_DONGLE(326002, "DJI蜂窝模块未安装在飞机上"),
AIRCRAFT_DONGLE_NO_SIM(326003, "飞机的DJI蜂窝模块中没有安装SIM卡。"),
AIRCRAFT_DONGLE_NEED_UPGRADE(326004, "飞机的DJI蜂窝模块需要升级,否则无法使用。"),
ESTABLISH_CONNECTION_FAILED(326005, "飞机的4G传输无法启用,4G传输无法建立连接。请检查4G信号强度,或咨询运营商检查套餐流量和APN设置。"),
SDR_SWITCH_FAILED(326006, "4G传输开关出现故障,请稍后再试。"),
WRONG_COMMAND_FORMAT(326007, "命令格式错误。"),
DOCK_NO_DONGLE(326008, "DJI蜂窝模块未安装在底座上。"),
DOCK_DONGLE_NO_SIM(326009, "底座的DJI蜂窝模块中没有安装SIM卡。"),
DOCK_DONGLE_NEED_UPGRADE(326010, "码头的DJI蜂窝模块需要升级,否则无法使用。"),
COMMAND_NOT_SUPPORTED(514100, "码头错误。重新启动码头,然后重试。"),
PUSH_DRIVING_RODS_FAILED(514101, "未能将传动杆推入到位。"),
PULL_DRIVING_RODS_FAILED(514102, "未能将驱动杆拉回。"),
LOW_POWER_1(514103, "飞机电池电量低。无法执行任务。等待飞机充电至50%,然后重试。"),
CHARGE_FAILED(514104, "电池充电失败。"),
STOP_CHARGING_FAILED(514105, "无法停止对电池充电"),
REBOOT_DRONE_FAILED(514106, "无法重新启动无人机。"),
OPEN_DOCK_COVER_FAILED(514107, "无法打开坞盖。"),
CLOSE_DOCK_COVER_FAILED(514108, "无法关闭坞盖。"),
POWER_ON_AIRCRAFT_FAILED(514109, "未能接通飞机电源。"),
POWER_OFF_AIRCRAFT_FAILED(514110, "未能关闭飞机电源。"),
OPEN_SLOW_MOTION_FAILED(514111, "打开慢动作模式时螺旋桨错误"),
CLOSE_SLOW_MOTION_FAILED(514112, "关闭慢动作模式时螺旋桨错误"),
AIRCRAFT_NOT_FOUND_1(514113, "驱动杆和飞机之间的连接错误。检查飞机是否在坞内,驱动杆是否卡住,充电连接器是否脏污或损坏。"),
OBTAIN_BATTERY_FAILED(514114, "无法获取飞机电池状态。重新启动dock,然后重试。"),
DOCK_BUSY(514116, "无法执行操作。Dock正在执行其他命令。请稍后再试。"),
OBTAIN_DOCK_COVER_FAILED(514117, "坞盖打开或未完全关闭。重新启动dock并重试"),
OBTAIN_DRIVING_RODS_FAILED(514118, "驱动杆向后拉或未推入到位。重新启动dock,然后重试。"),
TRANSMISSION_ERROR(514120, "码头和飞机断开连接。重新启动码头并重试,或者重新连接码头和飞机。"),
EMERGENCY_BUTTON_PRESSED_DOWN(514121, "紧急停止按钮按下。松开按钮。"),
OBTAIN_CHARGING_STATUS_FAILED(514122, "无法获取飞机充电状态。重新启动dock,然后重试。"),
LOW_POWER_2(514123, "飞机电池电量过低。无法接通飞机电源。"),
OBTAIN_BATTERY_STATUS_FAILED(514124, "无法获取飞机电池信息。"),
BATTERY_FULL(514125, "飞机电池电量几乎已满。无法开始充电。当电池电量低于95%时给电池充电。"),
HEAVY_RAINFALL(514134, "强降雨。无法执行任务。请稍后再试。"),
HIGH_WIND(514135, "风速过高(≥12 m/s)。无法执行任务。请稍后再试。"),
POWER_SUPPLY_ERROR(514136, "对接电源错误。无法执行任务。请恢复供电,然后重试。"),
LOW_ENVIRONMENT_TEMPERATURE(514137, "环境温度过低(低于-20°C)。无法执行任务。请稍后再试。"),
BATTERY_MAINTAINING(514138, "维护飞机电池。无法执行任务。等待维护完成。"),
MAINTAIN_BATTERY_FAILED(514139, "未能维护飞机电池。无需维护。"),
SETTING_BATTERY_STORAGE_FAILED(514140, "无法设置电池存储模式。"),
DOCK_SYSTEM_ERROR(514141, "Dock系统错误。重新启动dock,然后重试。"),
AIRCRAFT_NOT_FOUND_2(514142, "起飞前驱动杆与飞机的连接错误。检查飞机是否在坞内,驱动杆是否卡住,充电连接器是否脏污或损坏。"),
DRIVING_RODS_ERROR(514143, "驱动杆向后拉或未推入到位。请稍后再试,或者重新启动dock然后再试。"),
DOCK_COVER_ERROR(514144, "坞盖打开或未完全关闭。"),
ONSITE_DEBUGGING_MODE(514145, "以现场调试模式对接。无法执行当前操作或任务。"),
REMOTE_DEBUGGING_MODE(514146, "在远程调试模式下停靠。无法执行任务。"),
FIRMWARE_UPDATING(514147, "正在更新设备固件。无法执行任务。"),
WORKING(514148, "任务正在进行中。Dock无法进入远程调试模式或再次执行任务。"),
WRONG_STATUS(514149, "机场未处于运行模式,但已发出与运行模式相关的命令。"),
RESTARTING(514150, "正在重新启动设备。"),
UPDATING(514151, "正在更新设备固件。"),
NOT_REMOTE_DEBUGGING_MODE(514153, "Dock已退出远程调试模式。无法执行当前操作。"),
INITIALIZING(514170, "正在初始化dock。无法执行操作。等待初始化完成。"),
WRONG_PARAMETER(514171, "Cloud命令参数错误。Dock无法执行命令。"),
DISABLE_AC_FAILED(514180, "无法禁用空调冷却或加热。"),
ENABLE_AC_COOLING_FAILED(514181, "无法启用空调冷却。"),
ENABLE_AC_HEATING_FAILED(514182, "无法启用交流加热。"),
ENABLE_AC_DEHUMIDIFYING_FAILED(514183, "无法启用空调除湿。"),
LOW_TEMPERATURE(514184, "环境温度低于0°C。无法启用交流冷却。"),
HIGH_TEMPERATURE(514185, "环境温度高于45°C。无法启用交流加热"),
UNKNOWN(-1, "UNKNOWN"),
;
private final String msg;
private final int code;
DebugErrorCodeEnum(int code, String msg) {
this.code = code;
this.msg = msg;
}
@Override
public String getMessage() {
return this.msg;
}
@Override
public Integer getCode() {
return this.code;
}
/**
* @param code error code
* @return enumeration object
*/
public static DebugErrorCodeEnum find(int code) {
return Arrays.stream(values()).filter(codeEnum -> codeEnum.code == code).findAny().orElse(UNKNOWN);
}
}

84
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/DebugMethodEnum.java

@ -0,0 +1,84 @@
package org.dromara.common.sdk.cloudapi.debug;
import org.dromara.common.sdk.common.BaseModel;
import org.dromara.common.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/DongleDeviceTypeEnum.java

@ -0,0 +1,38 @@
package org.dromara.common.sdk.cloudapi.debug;
import org.dromara.common.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/EsimActivateRequest.java

@ -0,0 +1,54 @@
package org.dromara.common.sdk.cloudapi.debug;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.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
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/debug/EsimOperatorSwitchRequest.java

@ -0,0 +1,71 @@
package org.dromara.common.sdk.cloudapi.debug;
import org.dromara.common.sdk.cloudapi.device.TelecomOperatorEnum;
import org.dromara.common.sdk.common.BaseModel;
import jakarta.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;
}
}

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

Loading…
Cancel
Save