diff --git a/README.md b/README.md index b3aa75e5..c2819dd9 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ For more documentation, please visit the [DJI Developer Documentation](https://d ## Latest Release -Cloud API 1.10.0 was released on 7 Apr 2024.. For more information, please visit the [Release Note](https://developer.dji.com/doc/cloud-api-tutorial/cn/). +Cloud API 1.10.0 was released on 7 Apr 2024. For more information, please visit the [Release Note](https://developer.dji.com/doc/cloud-api-tutorial/cn/). ## License diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/config/ProductConfigResponse.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/config/ProductConfigResponse.java index f3a9bd27..de01ce7f 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/config/ProductConfigResponse.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/config/ProductConfigResponse.java @@ -2,7 +2,7 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraAimRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraAimRequest.java index ab9ea9d2..f9fa25f8 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraAimRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraAimRequest.java @@ -3,9 +3,9 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraExposureModeSetRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraExposureModeSetRequest.java index 6c8e6ec6..c2ecc384 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraExposureModeSetRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraExposureModeSetRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraExposureSetRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraExposureSetRequest.java index a6bc91bb..b4103877 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraExposureSetRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraExposureSetRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFocalLengthSetRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFocalLengthSetRequest.java index 73de6a02..63fbad40 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFocalLengthSetRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFocalLengthSetRequest.java @@ -3,9 +3,9 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFocusModeSetRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFocusModeSetRequest.java index 845e6b5a..8ac4ee23 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFocusModeSetRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFocusModeSetRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFocusValueSetRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFocusValueSetRequest.java index f137367b..9a2889b6 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFocusValueSetRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFocusValueSetRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFrameZoomRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFrameZoomRequest.java new file mode 100644 index 00000000..85204325 --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraFrameZoomRequest.java @@ -0,0 +1,99 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2024年04月19日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.cloudapi.control; + +import com.dji.sdk.cloudapi.device.PayloadIndex; +import com.dji.sdk.common.BaseModel; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; + +public class CameraFrameZoomRequest extends BaseModel { + + @NotNull + private PayloadIndex payloadIndex; + + @NotNull + private CameraTypeEnum cameraType; + + @NotNull + private Boolean locked; + + @Min(0) + @Max(1) + private Float x; + + @Min(0) + @Max(1) + private Float y; + + @Min(0) + @Max(1) + private Float width; + + @Min(0) + @Max(1) + private Float height; + + + public PayloadIndex getPayloadIndex() { + return payloadIndex; + } + + public void setPayloadIndex(PayloadIndex payloadIndex) { + this.payloadIndex = payloadIndex; + } + + public CameraTypeEnum getCameraType() { + return cameraType; + } + + public void setCameraType(CameraTypeEnum cameraType) { + this.cameraType = cameraType; + } + + public Boolean getLocked() { + return locked; + } + + public void setLocked(Boolean locked) { + this.locked = locked; + } + + public Float getX() { + return x; + } + + public void setX(Float x) { + this.x = x; + } + + public Float getY() { + return y; + } + + public void setY(Float y) { + this.y = y; + } + + public Float getWidth() { + return width; + } + + public void setWidth(Float width) { + this.width = width; + } + + public Float getHeight() { + return height; + } + + public void setHeight(Float height) { + this.height = height; + } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraLookAtRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraLookAtRequest.java index 634c48be..30b7d5b5 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraLookAtRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraLookAtRequest.java @@ -2,10 +2,10 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; - -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** * @author sean @@ -95,4 +95,24 @@ public CameraLookAtRequest setHeight(Float height) { this.height = height; return this; } + + public PayloadIndex getPayloadIndex() { + return payloadIndex; + } + + public Boolean getLocked() { + return locked; + } + + public Float getLatitude() { + return latitude; + } + + public Float getLongitude() { + return longitude; + } + + public Float getHeight() { + return height; + } } diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraModeSwitchRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraModeSwitchRequest.java index 37d00c8b..a744f430 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraModeSwitchRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraModeSwitchRequest.java @@ -4,7 +4,7 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraPhotoStopRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraPhotoStopRequest.java index a20ae8a7..beeae288 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraPhotoStopRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraPhotoStopRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraPhotoTakeRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraPhotoTakeRequest.java index a2fef960..cc50bdec 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraPhotoTakeRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraPhotoTakeRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraPointFocusActionRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraPointFocusActionRequest.java index 2b3b27c4..ce61061a 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraPointFocusActionRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraPointFocusActionRequest.java @@ -3,9 +3,9 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraRecordingStartRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraRecordingStartRequest.java index f695c7d7..57e8d206 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraRecordingStartRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraRecordingStartRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraRecordingStopRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraRecordingStopRequest.java index f98e268b..88c6ddf7 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraRecordingStopRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraRecordingStopRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraScreenSplitRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraScreenSplitRequest.java index cbc49e4a..93aedb3a 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraScreenSplitRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/CameraScreenSplitRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/ControlMethodEnum.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/ControlMethodEnum.java index 4f870ab4..482e55e1 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/ControlMethodEnum.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/ControlMethodEnum.java @@ -62,6 +62,7 @@ public enum ControlMethodEnum { IR_METERING_AREA_SET("ir_metering_area_set"), CAMERA_POINT_FOCUS_ACTION("camera_point_focus_action"), + CAMERA_FRAME_ZOOM("camera_frame_zoom"), DRONE_CONTROL("drone_control"), @@ -75,6 +76,16 @@ public enum ControlMethodEnum { POI_CIRCLE_SPEED_SET("poi_circle_speed_set"), + //add by witcom@2024-06-03 + SPEAKER_AUDIO_PLAY_START("speaker_audio_play_start"), + SPEAKER_TTS_PLAY_START("speaker_tts_play_start"), + SPEAKER_REPLAY("speaker_replay"), + SPEAKER_PLAY_STOP("speaker_play_stop"), + SPEAKER_PLAY_MODE_SET("speaker_play_mode_set"), + SPEAKER_PLAY_VOLUME_SET("speaker_play_volume_set"), + + PSDK_WIDGET_VALUE_SET("psdk_widget_value_set"), + PSDK_INPUT_BOX_TEXT_SET("psdk_input_box_text_set"), ; private final String method; diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DrcModeEnterRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DrcModeEnterRequest.java index 7c5bcf2a..84de6f90 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DrcModeEnterRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DrcModeEnterRequest.java @@ -2,10 +2,10 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.Valid; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DrcModeMqttBroker.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DrcModeMqttBroker.java index 7b16c711..26e6f35a 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DrcModeMqttBroker.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DrcModeMqttBroker.java @@ -1,8 +1,8 @@ package com.dji.sdk.cloudapi.control; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DroneControlRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DroneControlRequest.java index e6ba180e..a408e900 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DroneControlRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/DroneControlRequest.java @@ -2,9 +2,9 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/FlyToPointRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/FlyToPointRequest.java index 81c99d4d..8ea8d7c9 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/FlyToPointRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/FlyToPointRequest.java @@ -2,8 +2,8 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.Valid; -import javax.validation.constraints.*; +import jakarta.validation.Valid; +import jakarta.validation.constraints.*; import java.util.List; /** @@ -13,7 +13,7 @@ */ public class FlyToPointRequest extends BaseModel { - @Pattern(regexp = "^[^<>:\"/|?*._\\\\]+$") + //@Pattern(regexp = "^[^<>:\"/|?*._\\\\]+$") @NotNull private String flyToId; diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/FlyToPointUpdateRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/FlyToPointUpdateRequest.java index 3bbb205e..9ec03a06 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/FlyToPointUpdateRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/FlyToPointUpdateRequest.java @@ -2,11 +2,11 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.Valid; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import 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; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/GimbalResetRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/GimbalResetRequest.java index 8030180a..bab8b38f 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/GimbalResetRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/GimbalResetRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/HeartBeatRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/HeartBeatRequest.java index 8ae23afd..8127b70d 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/HeartBeatRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/HeartBeatRequest.java @@ -2,8 +2,8 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/IrMeteringAreaSetRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/IrMeteringAreaSetRequest.java index 6d8ad5d5..964b0fee 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/IrMeteringAreaSetRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/IrMeteringAreaSetRequest.java @@ -3,9 +3,9 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/IrMeteringModeSetRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/IrMeteringModeSetRequest.java index 6510068e..76c9132d 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/IrMeteringModeSetRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/IrMeteringModeSetRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/IrMeteringPointSetRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/IrMeteringPointSetRequest.java index f2bc6d5d..a9af34b9 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/IrMeteringPointSetRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/IrMeteringPointSetRequest.java @@ -3,9 +3,9 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PSDKUiResourceUploadResult.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PSDKUiResourceUploadResult.java new file mode 100644 index 00000000..ee3239f1 --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PSDKUiResourceUploadResult.java @@ -0,0 +1,51 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2024年06月03日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.cloudapi.control; + +public class PSDKUiResourceUploadResult { + + String objectKey; + + Integer psdk_index; + + Integer result; + Integer size; + + + public String getObjectKey() { + return objectKey; + } + + public void setObjectKey(String objectKey) { + this.objectKey = objectKey; + } + + public Integer getPsdk_index() { + return psdk_index; + } + + public void setPsdk_index(Integer psdk_index) { + this.psdk_index = psdk_index; + } + + public Integer getResult() { + return result; + } + + public void setResult(Integer result) { + this.result = result; + } + + public Integer getSize() { + return size; + } + + public void setSize(Integer size) { + this.size = size; + } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PayloadAuthorityGrabRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PayloadAuthorityGrabRequest.java index 4b990534..71c80d89 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PayloadAuthorityGrabRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PayloadAuthorityGrabRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PayloadControlMethodEnum.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PayloadControlMethodEnum.java index 7f23ea42..e2521494 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PayloadControlMethodEnum.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PayloadControlMethodEnum.java @@ -52,6 +52,17 @@ public enum PayloadControlMethodEnum { CAMERA_POINT_FOCUS_ACTION(ControlMethodEnum.CAMERA_POINT_FOCUS_ACTION, CameraPointFocusActionRequest.class), + CAMERA_FRAME_ZOOM(ControlMethodEnum.CAMERA_FRAME_ZOOM, CameraFrameZoomRequest.class), + + SPEAKER_AUDIO_PLAY_START(ControlMethodEnum.SPEAKER_AUDIO_PLAY_START,SpeakerAudioPlayStartRequest.class), + SPEAKER_TTS_PLAY_START(ControlMethodEnum.SPEAKER_TTS_PLAY_START,SpeakerTTSPlayStartRequest.class), + SPEAKER_REPLAY(ControlMethodEnum.SPEAKER_REPLAY,PsdkRequest.class), + SPEAKER_PLAY_STOP(ControlMethodEnum.SPEAKER_PLAY_STOP,PsdkRequest.class), + SPEAKER_PLAY_MODE_SET(ControlMethodEnum.SPEAKER_PLAY_MODE_SET, SpeakerPlayModeSetRequest.class), + SPEAKER_PLAY_VOLUME_SET(ControlMethodEnum.SPEAKER_PLAY_VOLUME_SET, SpeakerPlayVolumeSetRequest.class), + + PSDK_WIDGET_VALUE_SET(ControlMethodEnum.PSDK_WIDGET_VALUE_SET,PsdkWidgetValueSetRequest.class), + PSDK_INPUT_BOX_TEXT_SET(ControlMethodEnum.PSDK_INPUT_BOX_TEXT_SET, PsdkInputBoxTextSetRequest.class), ; private final ControlMethodEnum payloadMethod; diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PhotoStorageSetRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PhotoStorageSetRequest.java index fc546abf..ecfce9b1 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PhotoStorageSetRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PhotoStorageSetRequest.java @@ -3,8 +3,8 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PoiCircleSpeedSetRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PoiCircleSpeedSetRequest.java index 9898b209..faeb96ff 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PoiCircleSpeedSetRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PoiCircleSpeedSetRequest.java @@ -2,7 +2,7 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PoiModeEnterRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PoiModeEnterRequest.java index e9504830..29387f53 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PoiModeEnterRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PoiModeEnterRequest.java @@ -2,9 +2,9 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/Point.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/Point.java index f44e76c6..2004f5ea 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/Point.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/Point.java @@ -1,8 +1,8 @@ package com.dji.sdk.cloudapi.control; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PsdkFloatingWindowText.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PsdkFloatingWindowText.java new file mode 100644 index 00000000..a3cd49d0 --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PsdkFloatingWindowText.java @@ -0,0 +1,29 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2024年06月03日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.cloudapi.control; + +public class PsdkFloatingWindowText { + String value; + Integer psdkIndex; + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public Integer getPsdkIndex() { + return psdkIndex; + } + + public void setPsdkIndex(Integer psdkIndex) { + this.psdkIndex = psdkIndex; + } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PsdkInputBoxTextSetRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PsdkInputBoxTextSetRequest.java new file mode 100644 index 00000000..8f6509d0 --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PsdkInputBoxTextSetRequest.java @@ -0,0 +1,19 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2024年06月04日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.cloudapi.control; + +import com.dji.sdk.common.BaseModel; +import jakarta.validation.constraints.NotNull; + +public class PsdkInputBoxTextSetRequest extends BaseModel { + + @NotNull + Integer psdkIndex; + + String value; +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PsdkRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PsdkRequest.java new file mode 100644 index 00000000..a3ded41c --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PsdkRequest.java @@ -0,0 +1,23 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2024年06月03日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.cloudapi.control; + +import com.dji.sdk.common.BaseModel; + +public class PsdkRequest extends BaseModel { + + Integer psdkIndex; + + public Integer getPsdkIndex() { + return psdkIndex; + } + + public void setPsdkIndex(Integer psdkIndex) { + this.psdkIndex = psdkIndex; + } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PsdkWidgetValueSetRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PsdkWidgetValueSetRequest.java new file mode 100644 index 00000000..bc7aa769 --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/PsdkWidgetValueSetRequest.java @@ -0,0 +1,45 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2024年06月04日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.cloudapi.control; + +import com.dji.sdk.common.BaseModel; +import jakarta.validation.constraints.NotNull; + +public class PsdkWidgetValueSetRequest extends BaseModel { + + @NotNull + Integer index; + + @NotNull + Integer psdkIndex; + Integer value; + + public Integer getIndex() { + return index; + } + + public void setIndex(Integer index) { + this.index = index; + } + + public Integer getPsdkIndex() { + return psdkIndex; + } + + public void setPsdkIndex(Integer psdkIndex) { + this.psdkIndex = psdkIndex; + } + + public Integer getValue() { + return value; + } + + public void setValue(Integer value) { + this.value = value; + } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerAudioPlayStartRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerAudioPlayStartRequest.java new file mode 100644 index 00000000..dcb117bf --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerAudioPlayStartRequest.java @@ -0,0 +1,37 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2024年06月03日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.cloudapi.control; + +import com.dji.sdk.common.BaseModel; +import jakarta.validation.constraints.NotNull; + +public class SpeakerAudioPlayStartRequest extends BaseModel { + + @NotNull + Integer psdkIndex; + + @NotNull + SpeakerAudioPlayStartRequestFile file; + + + public Integer getPsdkIndex() { + return psdkIndex; + } + + public void setPsdkIndex(Integer psdkIndex) { + this.psdkIndex = psdkIndex; + } + + public SpeakerAudioPlayStartRequestFile getFile() { + return file; + } + + public void setFile(SpeakerAudioPlayStartRequestFile file) { + this.file = file; + } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerAudioPlayStartRequestFile.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerAudioPlayStartRequestFile.java new file mode 100644 index 00000000..87792e45 --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerAudioPlayStartRequestFile.java @@ -0,0 +1,55 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2024年06月03日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.cloudapi.control; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; + +public class SpeakerAudioPlayStartRequestFile { + + String format = "pcm"; + + @NotEmpty + String md5; + @NotEmpty + String name; + @NotEmpty + String url; + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } + + public String getMd5() { + return md5; + } + + public void setMd5(String md5) { + this.md5 = md5; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerPlayModeSetRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerPlayModeSetRequest.java new file mode 100644 index 00000000..2d9c3578 --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerPlayModeSetRequest.java @@ -0,0 +1,37 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2024年06月03日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.cloudapi.control; + +import com.dji.sdk.common.BaseModel; +import jakarta.validation.constraints.NotNull; + +public class SpeakerPlayModeSetRequest extends BaseModel { + + //"0":"单次播放","1":"循环播放(单曲)" + @NotNull + Integer playMode; + + @NotNull + Integer psdkIndex; + + public Integer getPlayMode() { + return playMode; + } + + public void setPlayMode(Integer playMode) { + this.playMode = playMode; + } + + public Integer getPsdkIndex() { + return psdkIndex; + } + + public void setPsdkIndex(Integer psdkIndex) { + this.psdkIndex = psdkIndex; + } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerPlayProgress.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerPlayProgress.java new file mode 100644 index 00000000..bbb9a7bf --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerPlayProgress.java @@ -0,0 +1,29 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2024年06月03日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.cloudapi.control; + +public class SpeakerPlayProgress { + Integer percent; + String stepKey; + + public Integer getPercent() { + return percent; + } + + public void setPercent(Integer percent) { + this.percent = percent; + } + + public String getStepKey() { + return stepKey; + } + + public void setStepKey(String stepKey) { + this.stepKey = stepKey; + } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerPlayStartProgress.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerPlayStartProgress.java new file mode 100644 index 00000000..d834b1e2 --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerPlayStartProgress.java @@ -0,0 +1,48 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2024年06月03日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.cloudapi.control; + +public class SpeakerPlayStartProgress { + + String md5; + Integer psdkIndex; + String status; + SpeakerPlayProgress progress; + + public String getMd5() { + return md5; + } + + public void setMd5(String md5) { + this.md5 = md5; + } + + public Integer getPsdkIndex() { + return psdkIndex; + } + + public void setPsdkIndex(Integer psdkIndex) { + this.psdkIndex = psdkIndex; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public SpeakerPlayProgress getProgress() { + return progress; + } + + public void setProgress(SpeakerPlayProgress progress) { + this.progress = progress; + } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerPlayVolumeSetRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerPlayVolumeSetRequest.java new file mode 100644 index 00000000..b423af7b --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerPlayVolumeSetRequest.java @@ -0,0 +1,40 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2024年06月03日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.cloudapi.control; + +import com.dji.sdk.common.BaseModel; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; + +public class SpeakerPlayVolumeSetRequest extends BaseModel { + + @NotNull + Integer psdkIndex; + + @NotNull + @Min(0) + @Max(100) + Integer playVolume; + + public Integer getPsdkIndex() { + return psdkIndex; + } + + public void setPsdkIndex(Integer psdkIndex) { + this.psdkIndex = psdkIndex; + } + + public Integer getPlayVolume() { + return playVolume; + } + + public void setPlayVolume(Integer playVolume) { + this.playVolume = playVolume; + } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerTTSPlayStartRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerTTSPlayStartRequest.java new file mode 100644 index 00000000..d06bef0b --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerTTSPlayStartRequest.java @@ -0,0 +1,36 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2024年06月03日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.cloudapi.control; + +import com.dji.sdk.common.BaseModel; +import jakarta.validation.constraints.NotNull; + +public class SpeakerTTSPlayStartRequest extends BaseModel { + + @NotNull + Integer psdkIndex; + + @NotNull + SpeakerTTSPlayStartRequestTTS tts; + + public Integer getPsdkIndex() { + return psdkIndex; + } + + public void setPsdkIndex(Integer psdkIndex) { + this.psdkIndex = psdkIndex; + } + + public SpeakerTTSPlayStartRequestTTS getTts() { + return tts; + } + + public void setTts(SpeakerTTSPlayStartRequestTTS tts) { + this.tts = tts; + } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerTTSPlayStartRequestTTS.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerTTSPlayStartRequestTTS.java new file mode 100644 index 00000000..32797c01 --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/SpeakerTTSPlayStartRequestTTS.java @@ -0,0 +1,43 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2024年06月03日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.cloudapi.control; + +import com.google.common.base.Charsets; +import com.google.common.hash.Hashing; + +import java.beans.Encoder; + +public class SpeakerTTSPlayStartRequestTTS { + String md5; + + String name; + + String text; + + public String getMd5() { + return md5; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + this.md5 = Hashing.md5().newHasher().putString(text, Charsets.UTF_8) + .hash().toString(); + } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/TakeoffToPointRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/TakeoffToPointRequest.java index f5a1692a..f553efab 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/TakeoffToPointRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/TakeoffToPointRequest.java @@ -8,11 +8,11 @@ import com.dji.sdk.common.BaseModel; import com.dji.sdk.config.version.CloudSDKVersionEnum; -import javax.validation.Valid; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +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 @@ -21,7 +21,7 @@ */ public class TakeoffToPointRequest extends BaseModel { - @Pattern(regexp = "^[^<>:\"/|?*._\\\\]+$") + //@Pattern(regexp = "^[^<>:\"/|?*._\\\\]+$") @NotNull private String flightId; diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/VideoStorageSetRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/VideoStorageSetRequest.java index eaba3e1e..946ba925 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/VideoStorageSetRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/VideoStorageSetRequest.java @@ -3,8 +3,8 @@ import com.dji.sdk.cloudapi.device.PayloadIndex; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/api/AbstractControlService.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/api/AbstractControlService.java index e4096157..7aafc9aa 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/api/AbstractControlService.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/control/api/AbstractControlService.java @@ -24,7 +24,7 @@ import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -486,6 +486,89 @@ public TopicServicesResponse cameraPointFocusAction(GatewayMa request); } + + @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, include = GatewayTypeEnum.DOCK2) + public TopicServicesResponse cameraFrameZoom(GatewayManager gateway, CameraFrameZoomRequest request) { + return servicesPublish.publish( + gateway.getGatewaySn(), + ControlMethodEnum.CAMERA_FRAME_ZOOM.getMethod(), + request); + } + + //============================== Psdk ============================== + + @ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_PSDK_UI_RESOURCE_UPLOAD_RESULT, outputChannel = ChannelName.OUTBOUND_EVENTS) + public TopicEventsResponse psdkUiResourceUploadResult(TopicEventsRequest request, MessageHeaders headers) { + throw new UnsupportedOperationException("psdkUiResourceUploadResult not implemented"); + } + + @ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_PSDK_FLOATING_WINDOW_TEXT, outputChannel = ChannelName.OUTBOUND_EVENTS) + public TopicEventsResponse psdkFloatingWindowText(TopicEventsRequest request, MessageHeaders headers) { + throw new UnsupportedOperationException("psdkFloatingWindowText not implemented"); + } + + @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, include = {GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2}) + public TopicServicesResponse speakerAudioPlayStart(GatewayManager gateway, SpeakerAudioPlayStartRequest request) { + return servicesPublish.publish( + gateway.getGatewaySn(), + ControlMethodEnum.SPEAKER_AUDIO_PLAY_START.getMethod(), + request); + } + + @ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_SPEAKER_AUDIO_PLAY_START_PROGRESS, outputChannel = ChannelName.OUTBOUND_EVENTS) + public TopicEventsResponse speakerAudioPlayStartProgress(TopicEventsRequest> request, MessageHeaders headers) { + throw new UnsupportedOperationException("speakerAudioPlayStartProgress not implemented"); + } + + @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, include = {GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2}) + public TopicServicesResponse speakerTtsPlayStart(GatewayManager gateway, SpeakerTTSPlayStartRequest request) { + return servicesPublish.publish( + gateway.getGatewaySn(), + ControlMethodEnum.SPEAKER_TTS_PLAY_START.getMethod(), + request); + } + + @ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_SPEAKER_TTS_PLAY_START_PROGRESS, outputChannel = ChannelName.OUTBOUND_EVENTS) + public TopicEventsResponse speakerTTSPlayStartProgress(TopicEventsRequest> request, MessageHeaders headers) { + throw new UnsupportedOperationException("speakerTTSPlayStartProgress not implemented"); + } + + @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, include = {GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2}) + public TopicServicesResponse speakerReplay(GatewayManager gateway, PsdkRequest request) { + return servicesPublish.publish( + gateway.getGatewaySn(), + ControlMethodEnum.SPEAKER_REPLAY.getMethod(), + request); + } + + @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, include = {GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2}) + public TopicServicesResponse speakerPlayStop(GatewayManager gateway, PsdkRequest request) { + return servicesPublish.publish( + gateway.getGatewaySn(), + ControlMethodEnum.SPEAKER_PLAY_STOP.getMethod(), + request); + } + + @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, include = {GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2}) + public TopicServicesResponse speakerPlayModeSet(GatewayManager gateway, SpeakerPlayModeSetRequest request) { + return servicesPublish.publish( + gateway.getGatewaySn(), + ControlMethodEnum.SPEAKER_PLAY_MODE_SET.getMethod(), + request); + } + + + @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_2, include = {GatewayTypeEnum.DOCK, GatewayTypeEnum.DOCK2}) + public TopicServicesResponse speakerPlayVolumeSet(GatewayManager gateway, SpeakerPlayVolumeSetRequest request) { + return servicesPublish.publish( + gateway.getGatewaySn(), + ControlMethodEnum.SPEAKER_PLAY_VOLUME_SET.getMethod(), + request); + } + + ///////////////////////////////////////////////////////////////////// + + /** * Payload control * @param gateway diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/AirConditionerModeSwitchRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/AirConditionerModeSwitchRequest.java index 78698bc3..6f0c65db 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/AirConditionerModeSwitchRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/AirConditionerModeSwitchRequest.java @@ -2,7 +2,7 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/AlarmStateSwitchRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/AlarmStateSwitchRequest.java index 0f7c584c..85c6f6e9 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/AlarmStateSwitchRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/AlarmStateSwitchRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.SwitchActionEnum; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/BatteryMaintenanceSwitchRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/BatteryMaintenanceSwitchRequest.java index c25f1cae..93ce5314 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/BatteryMaintenanceSwitchRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/BatteryMaintenanceSwitchRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.SwitchActionEnum; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/BatteryStoreModeSwitchRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/BatteryStoreModeSwitchRequest.java index 974bbcc1..4a329389 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/BatteryStoreModeSwitchRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/BatteryStoreModeSwitchRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.BatteryStoreModeEnum; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/EsimActivateRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/EsimActivateRequest.java index 59b5c65d..07af9eeb 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/EsimActivateRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/EsimActivateRequest.java @@ -2,7 +2,7 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/EsimOperatorSwitchRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/EsimOperatorSwitchRequest.java index 753c992d..4fba7913 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/EsimOperatorSwitchRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/EsimOperatorSwitchRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.TelecomOperatorEnum; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/RemoteDebugStepKeyEnum.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/RemoteDebugStepKeyEnum.java index ddeca501..60f99b60 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/RemoteDebugStepKeyEnum.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/RemoteDebugStepKeyEnum.java @@ -59,7 +59,9 @@ public enum RemoteDebugStepKeyEnum { FREE_PUTTER("free_putter", "Free Putter"), - STOP_CHARGE("stop_charge", "Stop charging"); + STOP_CHARGE("stop_charge", "Stop charging"), + + UNKNOWN("unknown","Unknown"); private final String stepKey; @@ -79,10 +81,11 @@ public String getMessage() { return message; } + //fix: 提供unknown取代异常 witcom@2023.10.30 @JsonCreator public static RemoteDebugStepKeyEnum find(String stepKey) { return Arrays.stream(values()).filter(stepKeyEnum -> stepKeyEnum.stepKey.equals(stepKey)).findAny() - .orElseThrow(() -> new CloudSDKException(RemoteDebugStepKeyEnum.class,stepKey)); + .orElse(UNKNOWN); } } diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/SdrWorkmodeSwitchRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/SdrWorkmodeSwitchRequest.java index 2298a28e..67d51d30 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/SdrWorkmodeSwitchRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/SdrWorkmodeSwitchRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.LinkWorkModeEnum; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/SimSlotSwitchRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/SimSlotSwitchRequest.java index 3f7c7b43..12fa70c7 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/SimSlotSwitchRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/SimSlotSwitchRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.SimSlotEnum; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/api/AbstractDebugService.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/api/AbstractDebugService.java index a8de7e73..f38ce1dc 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/api/AbstractDebugService.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/debug/api/AbstractDebugService.java @@ -22,7 +22,7 @@ import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/CameraModeEnum.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/CameraModeEnum.java index a7a18695..3dc1a7f8 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/CameraModeEnum.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/CameraModeEnum.java @@ -13,6 +13,8 @@ */ public enum CameraModeEnum { + //fix: Cannot construct instance of `com.dji.sdk.cloudapi.device.CameraModeEnum`, problem: com.dji.sdk.cloudapi.device.CameraModeEnum has unknown data: [-1] vincent @ 2023.12.07 + UNKNOWN(-1), PHOTO(0), VIDEO(1), diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/DeviceOsdHost.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/DeviceOsdHost.java index f540f482..1e58d3f8 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/DeviceOsdHost.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/DeviceOsdHost.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/DeviceOsdWsResponse.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/DeviceOsdWsResponse.java index 57e17f51..b1e9312e 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/DeviceOsdWsResponse.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/DeviceOsdWsResponse.java @@ -3,8 +3,8 @@ import com.dji.sdk.common.BaseModel; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/DockDroneCurrentRthMode.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/DockDroneCurrentRthMode.java index b70fcba8..0e37a17b 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/DockDroneCurrentRthMode.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/DockDroneCurrentRthMode.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.wayline.RthModeEnum; import com.fasterxml.jackson.annotation.JsonProperty; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/DockLiveErrorStatus.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/DockLiveErrorStatus.java index 67b58cfe..3f9705e9 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/DockLiveErrorStatus.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/DockLiveErrorStatus.java @@ -37,11 +37,14 @@ public DockLiveErrorStatus(int code) { } public String getMessage() { + if(success){ return "success";} return errorCode.getMessage(); } @JsonValue public Integer getCode() { + //witcom: errorCode.getCode() will cause npe 2023.10.30 + if(success){ return 0; } return source.getSource() * MOD + errorCode.getCode(); } diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/DockSilentMode.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/DockSilentMode.java index 4c11e5f6..b3262085 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/DockSilentMode.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/DockSilentMode.java @@ -4,7 +4,7 @@ import com.dji.sdk.common.BaseModel; import com.fasterxml.jackson.annotation.JsonProperty; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/GearEnum.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/GearEnum.java index b22a957c..8d80b74f 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/GearEnum.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/GearEnum.java @@ -32,7 +32,8 @@ public enum GearEnum { G(8), T(9), - ; + //problem: com.dji.sdk.cloudapi.device.GearEnum has unknown data: [65535] + UNKNOWN(65535); private final int gear; diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/PayloadIndex.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/PayloadIndex.java index c3c842f7..87c20466 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/PayloadIndex.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/PayloadIndex.java @@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.util.Arrays; import java.util.Objects; diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/VideoId.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/VideoId.java index a61b77bb..62478074 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/VideoId.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/device/VideoId.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.annotation.JsonValue; import org.springframework.util.StringUtils; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.util.Arrays; import java.util.Objects; diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/firmware/OtaCreateDevice.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/firmware/OtaCreateDevice.java index bef65e78..fced5e94 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/firmware/OtaCreateDevice.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/firmware/OtaCreateDevice.java @@ -1,7 +1,7 @@ package com.dji.sdk.cloudapi.firmware; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/firmware/OtaCreateRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/firmware/OtaCreateRequest.java index 9c007627..df70319c 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/firmware/OtaCreateRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/firmware/OtaCreateRequest.java @@ -2,9 +2,9 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/firmware/api/AbstractFirmwareService.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/firmware/api/AbstractFirmwareService.java index 461ae0cf..bb8aebbb 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/firmware/api/AbstractFirmwareService.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/firmware/api/AbstractFirmwareService.java @@ -18,7 +18,7 @@ import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/FeatureProperty.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/FeatureProperty.java index 0fcbc73b..7cde2b53 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/FeatureProperty.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/FeatureProperty.java @@ -2,7 +2,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; -import javax.validation.constraints.Min; +import jakarta.validation.constraints.Min; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/FlightAreaFeature.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/FlightAreaFeature.java index 41ece858..d3b2f0e5 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/FlightAreaFeature.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/FlightAreaFeature.java @@ -1,8 +1,8 @@ package com.dji.sdk.cloudapi.flightarea; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; /** * @author sean @@ -11,7 +11,7 @@ */ public class FlightAreaFeature { - @Pattern(regexp = "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$") + //@Pattern(regexp = "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$") @NotNull private String id; diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/FlightAreaGetFile.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/FlightAreaGetFile.java index 174e44d4..a13d8984 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/FlightAreaGetFile.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/FlightAreaGetFile.java @@ -1,7 +1,7 @@ package com.dji.sdk.cloudapi.flightarea; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/FlightAreaJson.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/FlightAreaJson.java index e9769499..127a7d8b 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/FlightAreaJson.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/FlightAreaJson.java @@ -1,6 +1,6 @@ package com.dji.sdk.cloudapi.flightarea; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/FlightAreasGetResponse.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/FlightAreasGetResponse.java index f0199a04..fbc2b875 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/FlightAreasGetResponse.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/FlightAreasGetResponse.java @@ -2,8 +2,8 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/api/AbstractFlightAreaService.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/api/AbstractFlightAreaService.java index 910acca0..f2bdc250 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/api/AbstractFlightAreaService.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/flightarea/api/AbstractFlightAreaService.java @@ -18,7 +18,7 @@ import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/interconnection/CustomDataTransmissionToEsdkRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/interconnection/CustomDataTransmissionToEsdkRequest.java index 2611233a..a7c52ee5 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/interconnection/CustomDataTransmissionToEsdkRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/interconnection/CustomDataTransmissionToEsdkRequest.java @@ -1,9 +1,9 @@ package com.dji.sdk.cloudapi.interconnection; import com.dji.sdk.common.BaseModel; +import jakarta.validation.constraints.NotNull; import org.hibernate.validator.constraints.Length; -import javax.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/interconnection/CustomDataTransmissionToPsdkRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/interconnection/CustomDataTransmissionToPsdkRequest.java index 35dc96f4..3812f022 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/interconnection/CustomDataTransmissionToPsdkRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/interconnection/CustomDataTransmissionToPsdkRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.common.BaseModel; import org.hibernate.validator.constraints.Length; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/interconnection/api/AbstractInterconnectionService.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/interconnection/api/AbstractInterconnectionService.java index eccc52df..b80e8ab1 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/interconnection/api/AbstractInterconnectionService.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/interconnection/api/AbstractInterconnectionService.java @@ -1,10 +1,7 @@ package com.dji.sdk.cloudapi.interconnection.api; import com.dji.sdk.annotations.CloudSDKVersion; -import com.dji.sdk.cloudapi.interconnection.CustomDataTransmissionFromEsdk; -import com.dji.sdk.cloudapi.interconnection.CustomDataTransmissionToEsdkRequest; -import com.dji.sdk.cloudapi.interconnection.CustomDataTransmissionToPsdkRequest; -import com.dji.sdk.cloudapi.interconnection.InterconnectionMethodEnum; +import com.dji.sdk.cloudapi.interconnection.*; import com.dji.sdk.config.version.CloudSDKVersionEnum; import com.dji.sdk.config.version.GatewayManager; import com.dji.sdk.config.version.GatewayTypeEnum; @@ -19,7 +16,7 @@ import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * @author sean @@ -64,7 +61,7 @@ public TopicServicesResponse customDataTransmissionToEsdk(Gat */ @ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_CUSTOM_DATA_TRANSMISSION_FROM_PSDK, outputChannel = ChannelName.OUTBOUND_EVENTS) @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0) - public TopicEventsResponse customDataTransmissionFromPsdk(TopicEventsRequest request, MessageHeaders headers) { + public TopicEventsResponse customDataTransmissionFromPsdk(TopicEventsRequest request, MessageHeaders headers) { throw new UnsupportedOperationException("customDataTransmissionFromPsdk not implemented"); } diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LiveLensChangeRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LiveLensChangeRequest.java index ff498b9e..8385ebdd 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LiveLensChangeRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LiveLensChangeRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.VideoId; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LiveSetQualityRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LiveSetQualityRequest.java index 541b25e4..1965ab9b 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LiveSetQualityRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LiveSetQualityRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.VideoId; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LiveStartPushRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LiveStartPushRequest.java index e99507b9..1793dba6 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LiveStartPushRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LiveStartPushRequest.java @@ -3,8 +3,9 @@ import com.dji.sdk.cloudapi.device.VideoId; import com.dji.sdk.common.BaseModel; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.Valid; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LiveStopPushRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LiveStopPushRequest.java index 9107c53b..e3521d03 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LiveStopPushRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LiveStopPushRequest.java @@ -3,7 +3,7 @@ import com.dji.sdk.cloudapi.device.VideoId; import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LivestreamAgoraUrl.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LivestreamAgoraUrl.java index f86c2112..d5256dfe 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LivestreamAgoraUrl.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LivestreamAgoraUrl.java @@ -2,7 +2,7 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.net.URLEncoder; import java.nio.charset.Charset; diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LivestreamGb28181Url.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LivestreamGb28181Url.java index 99622dbb..31be95e8 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LivestreamGb28181Url.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LivestreamGb28181Url.java @@ -2,7 +2,7 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LivestreamRtmpUrl.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LivestreamRtmpUrl.java index d3d4850e..4a4d29c0 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LivestreamRtmpUrl.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LivestreamRtmpUrl.java @@ -2,7 +2,7 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LivestreamRtspUrl.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LivestreamRtspUrl.java index 5fda1875..20745e36 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LivestreamRtspUrl.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LivestreamRtspUrl.java @@ -2,7 +2,7 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LivestreamWhipUrl.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LivestreamWhipUrl.java index 32745da3..e62ab74e 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LivestreamWhipUrl.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/LivestreamWhipUrl.java @@ -2,7 +2,7 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/api/AbstractLivestreamService.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/api/AbstractLivestreamService.java index 7db68f6c..a51997c8 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/api/AbstractLivestreamService.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/livestream/api/AbstractLivestreamService.java @@ -12,7 +12,7 @@ import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/FileUploadListRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/FileUploadListRequest.java index e1f52d11..bdbe007b 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/FileUploadListRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/FileUploadListRequest.java @@ -2,9 +2,9 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/FileUploadStartFile.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/FileUploadStartFile.java index cd905abb..a151370f 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/FileUploadStartFile.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/FileUploadStartFile.java @@ -1,7 +1,7 @@ package com.dji.sdk.cloudapi.log; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/FileUploadStartParam.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/FileUploadStartParam.java index 4bb8423e..f096e963 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/FileUploadStartParam.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/FileUploadStartParam.java @@ -1,8 +1,8 @@ package com.dji.sdk.cloudapi.log; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/FileUploadStartRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/FileUploadStartRequest.java index 366836a4..b72d0361 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/FileUploadStartRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/FileUploadStartRequest.java @@ -5,8 +5,8 @@ import com.dji.sdk.cloudapi.storage.StsCredentialsResponse; import com.dji.sdk.common.BaseModel; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/FileUploadUpdateRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/FileUploadUpdateRequest.java index e909ab6b..c270727c 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/FileUploadUpdateRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/FileUploadUpdateRequest.java @@ -2,9 +2,9 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/LogFileIndex.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/LogFileIndex.java index b830901e..0d191b71 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/LogFileIndex.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/LogFileIndex.java @@ -1,6 +1,6 @@ package com.dji.sdk.cloudapi.log; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/api/AbstractLogService.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/api/AbstractLogService.java index e8daece1..b6686422 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/api/AbstractLogService.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/log/api/AbstractLogService.java @@ -15,7 +15,7 @@ import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/CreateMapElementRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/CreateMapElementRequest.java index 8c5947c1..2ec83c71 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/CreateMapElementRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/CreateMapElementRequest.java @@ -2,9 +2,9 @@ import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/CreateMapElementResponse.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/CreateMapElementResponse.java index 26769edc..a5a828cb 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/CreateMapElementResponse.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/CreateMapElementResponse.java @@ -2,8 +2,8 @@ import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementContent.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementContent.java index 98908918..8905d8bf 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementContent.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementContent.java @@ -2,8 +2,8 @@ import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementCoordinate.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementCoordinate.java index 332f492e..95382c7b 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementCoordinate.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementCoordinate.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementLineStringGeometry.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementLineStringGeometry.java index a24eeb45..9571bc09 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementLineStringGeometry.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementLineStringGeometry.java @@ -5,8 +5,8 @@ import io.swagger.v3.oas.annotations.media.Schema; import org.springframework.util.CollectionUtils; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import java.util.ArrayList; import java.util.Arrays; import java.util.List; diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementPointGeometry.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementPointGeometry.java index 8fe6d8ba..f1c06b25 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementPointGeometry.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementPointGeometry.java @@ -5,8 +5,8 @@ import io.swagger.v3.oas.annotations.media.Schema; import org.springframework.util.CollectionUtils; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import java.util.ArrayList; import java.util.Arrays; import java.util.List; diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementPolygonGeometry.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementPolygonGeometry.java index e7d26706..e63a7386 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementPolygonGeometry.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementPolygonGeometry.java @@ -5,8 +5,8 @@ import io.swagger.v3.oas.annotations.media.Schema; import org.springframework.util.CollectionUtils; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import java.util.ArrayList; import java.util.Arrays; import java.util.List; diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementProperty.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementProperty.java index d3a35aad..2d3aa631 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementProperty.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementProperty.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementResource.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementResource.java index 33571d26..21366e0d 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementResource.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/ElementResource.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/GetMapElementsResponse.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/GetMapElementsResponse.java index f2c41e1d..4fa9e560 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/GetMapElementsResponse.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/GetMapElementsResponse.java @@ -4,9 +4,9 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/MapElementCreateWsResponse.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/MapElementCreateWsResponse.java index 74933f57..72d8f319 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/MapElementCreateWsResponse.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/MapElementCreateWsResponse.java @@ -4,10 +4,10 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.Valid; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +import jakarta.validation.Valid; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/MapElementDeleteWsResponse.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/MapElementDeleteWsResponse.java index fdf48aec..3cda3e45 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/MapElementDeleteWsResponse.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/MapElementDeleteWsResponse.java @@ -4,8 +4,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/MapElementUpdateWsResponse.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/MapElementUpdateWsResponse.java index 2ace0774..7f2ee2cc 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/MapElementUpdateWsResponse.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/MapElementUpdateWsResponse.java @@ -4,10 +4,10 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.Valid; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +import jakarta.validation.Valid; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/MapGroupElement.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/MapGroupElement.java index f360571d..d3e599a0 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/MapGroupElement.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/MapGroupElement.java @@ -3,10 +3,10 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.Valid; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +import jakarta.validation.Valid; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/MapGroupRefreshWsResponse.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/MapGroupRefreshWsResponse.java index b30c2ea1..8e66ded1 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/MapGroupRefreshWsResponse.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/MapGroupRefreshWsResponse.java @@ -4,9 +4,9 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/OfflineMapFile.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/OfflineMapFile.java index db8b3643..b0267628 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/OfflineMapFile.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/OfflineMapFile.java @@ -1,7 +1,7 @@ package com.dji.sdk.cloudapi.map; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/OfflineMapGetResponse.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/OfflineMapGetResponse.java index 43ebc83e..a2c702da 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/OfflineMapGetResponse.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/OfflineMapGetResponse.java @@ -2,8 +2,8 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/UpdateMapElementRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/UpdateMapElementRequest.java index 1c712be3..ac4346a3 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/UpdateMapElementRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/UpdateMapElementRequest.java @@ -2,8 +2,8 @@ import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/api/AbstractOfflineMapService.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/api/AbstractOfflineMapService.java index af47a442..54b53944 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/api/AbstractOfflineMapService.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/api/AbstractOfflineMapService.java @@ -11,6 +11,8 @@ import com.dji.sdk.config.version.GatewayTypeEnum; import com.dji.sdk.mqtt.ChannelName; import com.dji.sdk.mqtt.MqttReply; +import com.dji.sdk.mqtt.events.TopicEventsRequest; +import com.dji.sdk.mqtt.events.TopicEventsResponse; import com.dji.sdk.mqtt.requests.TopicRequestsRequest; import com.dji.sdk.mqtt.requests.TopicRequestsResponse; import com.dji.sdk.mqtt.services.ServicesPublish; @@ -22,7 +24,7 @@ import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * @author sean @@ -66,7 +68,8 @@ public TopicServicesResponse offlineMapUpdate(GatewayManager */ @ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_OFFLINE_MAP_SYNC_PROGRESS, outputChannel = ChannelName.OUTBOUND_EVENTS) @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_1, include = GatewayTypeEnum.DOCK2) - public TopicRequestsResponse offlineMapSyncProgress(TopicRequestsRequest request, MessageHeaders headers) { + //fix: SpelEvaluationException: EL1004E: Method call: Method offlineMapSyncProgress(com.dji.sdk.mqtt.events.TopicEventsRequest,org.springframework.messaging.MessageHeaders) cannot be found on type + public TopicEventsResponse offlineMapSyncProgress(TopicEventsRequest request, MessageHeaders headers) { throw new UnsupportedOperationException("offlineMapSyncProgress not implemented"); } diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/api/IHttpMapService.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/api/IHttpMapService.java index be0530b2..9f9393a8 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/api/IHttpMapService.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/map/api/IHttpMapService.java @@ -11,9 +11,9 @@ import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.validation.Valid; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/FastUploadExtension.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/FastUploadExtension.java index 5426ceb6..f852b9ce 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/FastUploadExtension.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/FastUploadExtension.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/FolderUploadCallbackRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/FolderUploadCallbackRequest.java index 78abab4b..c4892c4b 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/FolderUploadCallbackRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/FolderUploadCallbackRequest.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/GetFileFingerprintRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/GetFileFingerprintRequest.java index 7fe08bb4..9e6d967d 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/GetFileFingerprintRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/GetFileFingerprintRequest.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/GetFileFingerprintResponse.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/GetFileFingerprintResponse.java index d0ab21a2..a0f8bd6a 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/GetFileFingerprintResponse.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/GetFileFingerprintResponse.java @@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/MediaFastUploadRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/MediaFastUploadRequest.java index 78c22b3f..2e3fb513 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/MediaFastUploadRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/MediaFastUploadRequest.java @@ -2,8 +2,8 @@ import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/MediaFileExtension.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/MediaFileExtension.java index 8e2f7c98..39381d4f 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/MediaFileExtension.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/MediaFileExtension.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/MediaFileMetadata.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/MediaFileMetadata.java index 5a5a17be..541a3d27 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/MediaFileMetadata.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/MediaFileMetadata.java @@ -4,8 +4,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import java.time.LocalDateTime; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/MediaUploadCallbackRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/MediaUploadCallbackRequest.java index 6567ea33..a5a77222 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/MediaUploadCallbackRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/MediaUploadCallbackRequest.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/Position.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/Position.java index f192f6e3..94f85677 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/Position.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/Position.java @@ -2,7 +2,7 @@ import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/StorageConfigGetModuleEnum.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/StorageConfigGetModuleEnum.java index b61fe8a9..4552e9af 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/StorageConfigGetModuleEnum.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/StorageConfigGetModuleEnum.java @@ -13,7 +13,9 @@ */ public enum StorageConfigGetModuleEnum { - MEDIA(0); + MEDIA(0), + + PSDK_UI(1); private final int module; diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/UploadFlighttaskMediaPrioritize.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/UploadFlighttaskMediaPrioritize.java index b93fad3d..37fa2fff 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/UploadFlighttaskMediaPrioritize.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/UploadFlighttaskMediaPrioritize.java @@ -2,8 +2,8 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; /** * @author sean @@ -12,8 +12,9 @@ */ public class UploadFlighttaskMediaPrioritize extends BaseModel { + /* fix: flightId是应用层提供的,应用层有自己的id构建规则,如果不是设备原因必须指定格式,最好就不要控制flightId的格式了 by witcom@2023.09.22 */ @NotNull - @Pattern(regexp = "^[^<>:\"/|?*._\\\\]+$") + //@Pattern(regexp = "^[^<>:\"/|?*._\\\\]+$") private String flightId; public UploadFlighttaskMediaPrioritize() { diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/api/AbstractMediaService.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/api/AbstractMediaService.java index ad45aa81..6a1bbda4 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/api/AbstractMediaService.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/api/AbstractMediaService.java @@ -17,7 +17,7 @@ import org.springframework.integration.annotation.ServiceActivator; import org.springframework.messaging.MessageHeaders; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/api/IHttpMediaService.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/api/IHttpMediaService.java index 81a23e00..55032c75 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/api/IHttpMediaService.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/media/api/IHttpMediaService.java @@ -13,9 +13,9 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.validation.Valid; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/organization/AirportBindStatusResponse.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/organization/AirportBindStatusResponse.java index 2bff608a..49713b44 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/organization/AirportBindStatusResponse.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/organization/AirportBindStatusResponse.java @@ -2,9 +2,9 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/organization/AirportOrganizationBindResponse.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/organization/AirportOrganizationBindResponse.java index 296fcb6f..694a58b5 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/organization/AirportOrganizationBindResponse.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/organization/AirportOrganizationBindResponse.java @@ -2,9 +2,9 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/organization/AirportOrganizationGetResponse.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/organization/AirportOrganizationGetResponse.java index cb10abf2..079e7d13 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/organization/AirportOrganizationGetResponse.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/organization/AirportOrganizationGetResponse.java @@ -2,7 +2,7 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/organization/BindStatusRequestDevice.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/organization/BindStatusRequestDevice.java index 68a263e3..934b27f3 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/organization/BindStatusRequestDevice.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/organization/BindStatusRequestDevice.java @@ -2,7 +2,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/organization/OrganizationBindInfo.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/organization/OrganizationBindInfo.java index 128c44b1..67e0e05a 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/organization/OrganizationBindInfo.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/organization/OrganizationBindInfo.java @@ -2,7 +2,7 @@ import com.dji.sdk.mqtt.MqttReply; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DistanceLimitStatusData.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DistanceLimitStatusData.java index cf03f336..960bb86e 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DistanceLimitStatusData.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DistanceLimitStatusData.java @@ -3,8 +3,8 @@ import com.dji.sdk.cloudapi.device.SwitchActionEnum; import com.fasterxml.jackson.annotation.JsonProperty; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; /** * The state of the drone's limited distance diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DistanceLimitStatusSet.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DistanceLimitStatusSet.java index ddca8486..bdbcfd8c 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DistanceLimitStatusSet.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DistanceLimitStatusSet.java @@ -2,8 +2,8 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; /** * The state of the drone's limited distance diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DockDroneCommanderFlightHeight.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DockDroneCommanderFlightHeight.java index 5178d1ce..6793a975 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DockDroneCommanderFlightHeight.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DockDroneCommanderFlightHeight.java @@ -3,9 +3,9 @@ import com.dji.sdk.common.BaseModel; import com.fasterxml.jackson.annotation.JsonProperty; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DockDroneCommanderModeLostAction.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DockDroneCommanderModeLostAction.java index 014a4b6f..1e5e9a06 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DockDroneCommanderModeLostAction.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DockDroneCommanderModeLostAction.java @@ -4,7 +4,7 @@ import com.dji.sdk.common.BaseModel; import com.fasterxml.jackson.annotation.JsonProperty; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DockDroneOfflineMapEnable.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DockDroneOfflineMapEnable.java index c329212e..f1e153ca 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DockDroneOfflineMapEnable.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DockDroneOfflineMapEnable.java @@ -3,7 +3,7 @@ import com.dji.sdk.common.BaseModel; import com.fasterxml.jackson.annotation.JsonProperty; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DockDroneRthMode.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DockDroneRthMode.java index f9000760..d47b6cc3 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DockDroneRthMode.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/DockDroneRthMode.java @@ -4,7 +4,7 @@ import com.dji.sdk.common.BaseModel; import com.fasterxml.jackson.annotation.JsonProperty; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ExitWaylineWhenRcLostSet.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ExitWaylineWhenRcLostSet.java index d9053faf..0e5d158b 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ExitWaylineWhenRcLostSet.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ExitWaylineWhenRcLostSet.java @@ -4,7 +4,7 @@ import com.dji.sdk.common.BaseModel; import com.fasterxml.jackson.annotation.JsonProperty; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/HeightLimitSet.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/HeightLimitSet.java index 0fc3180a..908e0a56 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/HeightLimitSet.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/HeightLimitSet.java @@ -3,9 +3,9 @@ import com.dji.sdk.common.BaseModel; import com.fasterxml.jackson.annotation.JsonProperty; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/NightLightsStateSet.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/NightLightsStateSet.java index feb5fea7..3e779bbc 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/NightLightsStateSet.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/NightLightsStateSet.java @@ -4,7 +4,7 @@ import com.dji.sdk.common.BaseModel; import com.fasterxml.jackson.annotation.JsonProperty; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ObstacleAvoidanceSet.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ObstacleAvoidanceSet.java index f84ec4c7..2fbce672 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ObstacleAvoidanceSet.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ObstacleAvoidanceSet.java @@ -3,8 +3,8 @@ import com.dji.sdk.cloudapi.device.ObstacleAvoidance; import com.dji.sdk.common.BaseModel; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/RcLostActionSet.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/RcLostActionSet.java index 68664784..fe9e0db4 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/RcLostActionSet.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/RcLostActionSet.java @@ -4,7 +4,7 @@ import com.dji.sdk.common.BaseModel; import com.fasterxml.jackson.annotation.JsonProperty; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/RthAltitudeSet.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/RthAltitudeSet.java index 94e30945..a3a9a5c5 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/RthAltitudeSet.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/RthAltitudeSet.java @@ -3,9 +3,9 @@ import com.dji.sdk.common.BaseModel; import com.fasterxml.jackson.annotation.JsonProperty; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ThermalCurrentPaletteStyleSet.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ThermalCurrentPaletteStyleSet.java index 6b5e8476..536cd544 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ThermalCurrentPaletteStyleSet.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ThermalCurrentPaletteStyleSet.java @@ -5,8 +5,8 @@ import com.dji.sdk.common.BaseModel; import com.fasterxml.jackson.annotation.JsonValue; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import java.util.Map; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ThermalGainModeSet.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ThermalGainModeSet.java index f49bea49..09415a29 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ThermalGainModeSet.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ThermalGainModeSet.java @@ -5,8 +5,8 @@ import com.dji.sdk.common.BaseModel; import com.fasterxml.jackson.annotation.JsonValue; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import java.util.Map; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ThermalIsothermLowerLimitSet.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ThermalIsothermLowerLimitSet.java index 66ff5b46..652c69dc 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ThermalIsothermLowerLimitSet.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ThermalIsothermLowerLimitSet.java @@ -4,8 +4,8 @@ import com.dji.sdk.common.BaseModel; import com.fasterxml.jackson.annotation.JsonValue; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import java.util.Map; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ThermalIsothermStateSet.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ThermalIsothermStateSet.java index df25b384..7622125a 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ThermalIsothermStateSet.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ThermalIsothermStateSet.java @@ -5,8 +5,8 @@ import com.dji.sdk.common.BaseModel; import com.fasterxml.jackson.annotation.JsonValue; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import java.util.Map; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ThermalIsothermUpperLimitSet.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ThermalIsothermUpperLimitSet.java index 3d5df2b8..95d1b106 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ThermalIsothermUpperLimitSet.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/ThermalIsothermUpperLimitSet.java @@ -4,8 +4,8 @@ import com.dji.sdk.common.BaseModel; import com.fasterxml.jackson.annotation.JsonValue; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import java.util.Map; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/UserExperienceImprovementSet.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/UserExperienceImprovementSet.java index eda802df..f930cdf2 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/UserExperienceImprovementSet.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/UserExperienceImprovementSet.java @@ -4,7 +4,7 @@ import com.dji.sdk.common.BaseModel; import com.fasterxml.jackson.annotation.JsonProperty; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/api/AbstractPropertyService.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/api/AbstractPropertyService.java index 56a9ab72..f3fb2257 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/api/AbstractPropertyService.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/property/api/AbstractPropertyService.java @@ -12,8 +12,8 @@ import com.dji.sdk.mqtt.property.PropertySetReplyResultEnum; import com.fasterxml.jackson.annotation.JsonProperty; -import javax.annotation.Resource; -import javax.validation.Valid; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/storage/CredentialsToken.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/storage/CredentialsToken.java index c8ffc0ee..dd798416 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/storage/CredentialsToken.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/storage/CredentialsToken.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/storage/StsCredentialsResponse.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/storage/StsCredentialsResponse.java index 08212745..14cbe0f7 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/storage/StsCredentialsResponse.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/storage/StsCredentialsResponse.java @@ -4,9 +4,9 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/storage/api/IHttpStorageService.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/storage/api/IHttpStorageService.java index 602a8d27..c3f69b80 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/storage/api/IHttpStorageService.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/storage/api/IHttpStorageService.java @@ -8,8 +8,8 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/DeviceIconUrl.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/DeviceIconUrl.java index 937cb4a4..0690e2f5 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/DeviceIconUrl.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/DeviceIconUrl.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/DeviceTopology.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/DeviceTopology.java index 437783db..68775e79 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/DeviceTopology.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/DeviceTopology.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/TopologyDeviceModel.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/TopologyDeviceModel.java index 770c28b0..a66e6fc9 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/TopologyDeviceModel.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/TopologyDeviceModel.java @@ -7,7 +7,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/TopologyList.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/TopologyList.java index acdf7b2a..6e064d31 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/TopologyList.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/TopologyList.java @@ -2,8 +2,8 @@ import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/TopologyResponse.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/TopologyResponse.java index 352b947c..046112a6 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/TopologyResponse.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/TopologyResponse.java @@ -3,8 +3,8 @@ import com.dji.sdk.common.BaseModel; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/api/IHttpTsaService.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/api/IHttpTsaService.java index 6e9a2d82..7cd2a5d9 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/api/IHttpTsaService.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/tsa/api/IHttpTsaService.java @@ -9,8 +9,8 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/ExecutableConditions.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/ExecutableConditions.java index 768b3015..f5e2f574 100755 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/ExecutableConditions.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/ExecutableConditions.java @@ -1,7 +1,7 @@ package com.dji.sdk.cloudapi.wayline; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskBreakPoint.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskBreakPoint.java index e52a3d95..757f1513 100755 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskBreakPoint.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskBreakPoint.java @@ -1,8 +1,8 @@ package com.dji.sdk.cloudapi.wayline; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** * @author sean @@ -24,12 +24,10 @@ public class FlighttaskBreakPoint { @NotNull private BreakpointStateEnum state; - /** - * Current wayline segment process - */ - @NotNull - @Min(0) - @Max(1) + +// @NotNull +// @Min(0) +// @Max(1) private Float progress; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskCreateFile.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskCreateFile.java index 271d2d45..2db2fcfb 100755 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskCreateFile.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskCreateFile.java @@ -1,6 +1,6 @@ package com.dji.sdk.cloudapi.wayline; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskCreateRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskCreateRequest.java index c614c965..f6b4d53e 100755 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskCreateRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskCreateRequest.java @@ -2,9 +2,9 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskExecuteRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskExecuteRequest.java index 5ef50d55..7e6533b8 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskExecuteRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskExecuteRequest.java @@ -2,8 +2,8 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; /** * @author sean @@ -12,8 +12,11 @@ */ public class FlighttaskExecuteRequest extends BaseModel { + /** + * fix: flightId是应用层提供的,应用层有自己的id构建规则,如果不是设备原因必须指定格式,最好就不要控制flightId的格式了 by witcom@2023.09.22 + */ @NotNull - @Pattern(regexp = "^[^<>:\"/|?*._\\\\]+$") + //@Pattern(regexp = "^[^<>:\"/|?*._\\\\]+$") private String flightId; public FlighttaskExecuteRequest() { diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskFile.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskFile.java index 70837fca..19585719 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskFile.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskFile.java @@ -1,6 +1,6 @@ package com.dji.sdk.cloudapi.wayline; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskPrepareRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskPrepareRequest.java index c1777f88..3a7af428 100755 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskPrepareRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskPrepareRequest.java @@ -6,11 +6,11 @@ import com.dji.sdk.config.version.CloudSDKVersionEnum; import com.dji.sdk.config.version.GatewayTypeEnum; -import javax.validation.Valid; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +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 @@ -21,9 +21,10 @@ public class FlighttaskPrepareRequest extends BaseModel { /** * Task ID + * fix: flightId是应用层提供的,应用层有自己的id构建规则,如果不是设备原因必须指定格式,最好就不要控制flightId的格式了 by witcom@2023.09.22 */ @NotNull - @Pattern(regexp = "^[^<>:\"/|?*._\\\\]+$") + //@Pattern(regexp = "^[^<>:\"/|?*._\\\\]+$") private String flightId; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskResourceGetResponse.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskResourceGetResponse.java index 1a1f2750..d595a505 100755 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskResourceGetResponse.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskResourceGetResponse.java @@ -2,8 +2,8 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskUndoRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskUndoRequest.java index 10b9a486..a0bbceab 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskUndoRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskUndoRequest.java @@ -2,9 +2,9 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; import java.util.List; /** @@ -14,9 +14,12 @@ */ public class FlighttaskUndoRequest extends BaseModel { + /** + * fix: flightId是应用层提供的,应用层有自己的id构建规则,如果不是设备原因必须指定格式,最好就不要控制flightId的格式了 by witcom@2023.09.22 + */ @NotNull @Size(min = 1) - private List<@Pattern(regexp = "^[^<>:\"/|?*._\\\\]+$") String> flightIds; + private List:\"/|?*._\\\\]+$")*/ String> flightIds; public FlighttaskUndoRequest() { } diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/GetWaylineListOrderBy.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/GetWaylineListOrderBy.java index e81d1758..2ba129ad 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/GetWaylineListOrderBy.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/GetWaylineListOrderBy.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/GetWaylineListRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/GetWaylineListRequest.java index 5b28c32c..66761a30 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/GetWaylineListRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/GetWaylineListRequest.java @@ -5,10 +5,10 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.Valid; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import jakarta.validation.Valid; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/GetWaylineListResponse.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/GetWaylineListResponse.java index 69b74002..a754f9aa 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/GetWaylineListResponse.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/GetWaylineListResponse.java @@ -6,10 +6,10 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/ReadyConditions.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/ReadyConditions.java index ea0288e7..8a2f4e6e 100755 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/ReadyConditions.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/ReadyConditions.java @@ -2,9 +2,9 @@ import com.dji.sdk.common.BaseModel; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/SimulateMission.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/SimulateMission.java index bf3c4bcf..17af8780 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/SimulateMission.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/SimulateMission.java @@ -1,8 +1,8 @@ package com.dji.sdk.cloudapi.wayline; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/WaylineUploadCallbackMetadata.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/WaylineUploadCallbackMetadata.java index aa97993e..819962d6 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/WaylineUploadCallbackMetadata.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/WaylineUploadCallbackMetadata.java @@ -4,8 +4,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/WaylineUploadCallbackRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/WaylineUploadCallbackRequest.java index 87f82148..9f947150 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/WaylineUploadCallbackRequest.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/WaylineUploadCallbackRequest.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/api/AbstractWaylineService.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/api/AbstractWaylineService.java index 783ef399..19b7c908 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/api/AbstractWaylineService.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/api/AbstractWaylineService.java @@ -22,7 +22,7 @@ import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * @author sean @@ -189,7 +189,10 @@ public TopicRequestsResponse> flighttas */ @ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_RETURN_HOME_INFO, outputChannel = ChannelName.OUTBOUND_EVENTS) @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0) - public TopicRequestsResponse returnHomeInfo(TopicRequestsRequest request, MessageHeaders headers) { + //fix: SpelEvaluationException: EL1004E: Method call: Method returnHomeInfo(com.dji.sdk.mqtt.events.TopicEventsRequest,org.springframework.messaging.MessageHeaders) cannot be found on type xxx + //public TopicRequestsResponse returnHomeInfo(TopicRequestsRequest request, MessageHeaders headers) { + public TopicEventsResponse returnHomeInfo(TopicEventsRequest request, MessageHeaders headers){ + throw new UnsupportedOperationException("returnHomeInfo not implemented"); } diff --git a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/api/IHttpWaylineService.java b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/api/IHttpWaylineService.java index 17fae68f..26200541 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/api/IHttpWaylineService.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/api/IHttpWaylineService.java @@ -12,11 +12,11 @@ import org.springdoc.api.annotations.ParameterObject; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import java.util.List; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/common/BaseModel.java b/cloud-sdk/src/main/java/com/dji/sdk/common/BaseModel.java index 77ef2d07..8d4ea5b1 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/common/BaseModel.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/common/BaseModel.java @@ -6,9 +6,7 @@ import com.dji.sdk.exception.CloudSDKException; import org.springframework.util.CollectionUtils; -import javax.validation.ConstraintViolation; -import javax.validation.Validation; -import javax.validation.Validator; +import jakarta.validation.*; import java.lang.reflect.Field; import java.util.Arrays; import java.util.HashSet; diff --git a/cloud-sdk/src/main/java/com/dji/sdk/common/ErrorCodeSourceEnum.java b/cloud-sdk/src/main/java/com/dji/sdk/common/ErrorCodeSourceEnum.java index 01c1ef21..90f4cfe5 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/common/ErrorCodeSourceEnum.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/common/ErrorCodeSourceEnum.java @@ -14,6 +14,9 @@ */ public enum ErrorCodeSourceEnum { + //fix: Cannot construct instance of `com.dji.sdk.cloudapi.device.DockLiveErrorStatus`, problem: com.dji.sdk.common.ErrorCodeSourceEnum has unknown data: [0] + UNKNOWN(0), + DEVICE(3), DOCK(5), diff --git a/cloud-sdk/src/main/java/com/dji/sdk/common/JDKLockBarrierImpl.java b/cloud-sdk/src/main/java/com/dji/sdk/common/JDKLockBarrierImpl.java new file mode 100644 index 00000000..e7d5ae83 --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/common/JDKLockBarrierImpl.java @@ -0,0 +1,89 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2023年09月22日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.common; + +import com.dji.sdk.mqtt.Chan; +import com.dji.sdk.mqtt.CommonTopicRequest; +import com.dji.sdk.mqtt.CommonTopicResponse; + +import java.util.Objects; +import java.util.concurrent.ConcurrentHashMap; + +public class JDKLockBarrierImpl implements PublishBarrier{ + + /** + * 在我的实现中是采用一个定期清理的TimedCache储存请求 + */ + private final ConcurrentHashMap container = new ConcurrentHashMap<>(); + + @Override + public String generateIdentity(CommonTopicRequest requestData) { + return requestData.getTid(); + } + + @Override + public String generateIdentity(CommonTopicResponse receiveData) { + return receiveData.getTid(); + } + + @Override + public void put(String identity, CommonTopicResponse receiveData) { + if(hasIdentity(identity)){ + container.get(identity).setData(receiveData); + } + } + + @Override + public void registerRequest(String identity, CommonTopicRequest requestData) { + container.put(identity,new JDKHolder()); + } + + @Override + public PublishBarrierResult await(String identity, long timeout) { + JDKHolder jdkHolder = container.get(identity); + if(Objects.isNull(jdkHolder)){ + throw new RuntimeException("等待指令返回前未注册指令到栅栏"); + } + jdkHolder.await(timeout); + + return jdkHolder.getResult(); + } + + @Override + public boolean hasIdentity(String identity) { + return container.containsKey(identity); + } + + public static class JDKHolder{ + volatile Object locker = new Object(); + CommonTopicResponse response = null; + + public void await(long timeout) { + synchronized (locker){ + try { + locker.wait(timeout); + }catch (InterruptedException e){} + } + } + + public void setData(CommonTopicResponse receiveData) { + this.response = receiveData; + synchronized (locker){ + locker.notify(); + } + } + + public PublishBarrierResult getResult() { + if(Objects.nonNull(response)){ + return PublishBarrierResult.ok(response); + }else{ + return PublishBarrierResult.EMPTY; + } + } + } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/common/LocalCacheSDKManager.java b/cloud-sdk/src/main/java/com/dji/sdk/common/LocalCacheSDKManager.java new file mode 100644 index 00000000..7dbfad3b --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/common/LocalCacheSDKManager.java @@ -0,0 +1,67 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2023年09月25日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.common; + +import com.dji.sdk.cloudapi.device.DeviceDomainEnum; +import com.dji.sdk.cloudapi.device.DeviceEnum; +import com.dji.sdk.cloudapi.device.DeviceSubTypeEnum; +import com.dji.sdk.cloudapi.device.DeviceTypeEnum; +import com.dji.sdk.config.version.GatewayManager; +import com.dji.sdk.config.version.GatewayTypeEnum; +import com.dji.sdk.exception.CloudSDKErrorEnum; +import com.dji.sdk.exception.CloudSDKException; +import org.springframework.stereotype.Component; + +import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.ConcurrentHashMap; + +public class LocalCacheSDKManager implements SDKManager{ + + final ConcurrentHashMap SDK_MAP = new ConcurrentHashMap<>(16); + + + @Override + public GatewayManager getDeviceSDK(String gatewaySn) { + if (SDK_MAP.containsKey(gatewaySn)) { + return SDK_MAP.get(gatewaySn); + } + throw new CloudSDKException(CloudSDKErrorEnum.NOT_REGISTERED, + "The device has not been registered, please call the 'SDKManager.registerDevice()' method to register the device first."); + } + + @Override + public Optional findDeviceSDK(String gatewaySn) { + if(SDK_MAP.containsKey(gatewaySn)){ + return Optional.of(SDK_MAP.get(gatewaySn)); + }else { + return Optional.empty(); + } + } + + @Override + public GatewayManager registerDevice(String gatewaySn, String droneSn, DeviceDomainEnum domain, DeviceTypeEnum type, DeviceSubTypeEnum subType, String gatewayThingVersion, String droneThingVersion) { + return registerDevice(gatewaySn, droneSn, GatewayTypeEnum.find(DeviceEnum.find(domain, type, subType)), gatewayThingVersion, droneThingVersion); + } + + @Override + public GatewayManager registerDevice(String gatewaySn, String droneSn, GatewayTypeEnum type, String gatewayThingVersion, String droneThingVersion) { + return registerDevice(new GatewayManager(Objects.requireNonNull(gatewaySn), droneSn, type, gatewayThingVersion, droneThingVersion)); + } + + @Override + public GatewayManager registerDevice(GatewayManager gateway) { + SDK_MAP.put(gateway.getGatewaySn(), gateway); + return gateway; + } + + @Override + public void logoutDevice(String gatewaySn) { + SDK_MAP.remove(gatewaySn); + } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/common/PublishBarrier.java b/cloud-sdk/src/main/java/com/dji/sdk/common/PublishBarrier.java new file mode 100644 index 00000000..e5b0071d --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/common/PublishBarrier.java @@ -0,0 +1,26 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2023年09月22日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.common; + +import com.dji.sdk.mqtt.CommonTopicRequest; +import com.dji.sdk.mqtt.CommonTopicResponse; + +public interface PublishBarrier { + + //构建栅栏标识方法 + String generateIdentity(CommonTopicRequest requestData); + String generateIdentity(CommonTopicResponse receiveData); + + void put(String identity, CommonTopicResponse receiveData); + + void registerRequest(String identity, CommonTopicRequest requestData); + + PublishBarrierResult await(String identity,long timeout); + + boolean hasIdentity(String identity); +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/common/PublishBarrierResult.java b/cloud-sdk/src/main/java/com/dji/sdk/common/PublishBarrierResult.java new file mode 100644 index 00000000..38314fd0 --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/common/PublishBarrierResult.java @@ -0,0 +1,41 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2023年09月22日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.common; + +import com.dji.sdk.mqtt.CommonTopicResponse; + +public class PublishBarrierResult implements PublishResult { + + public static PublishBarrierResult EMPTY = new PublishBarrierResult(); + + public static PublishBarrierResult ok(CommonTopicResponse data){ + return new PublishBarrierResult().setData(data); + } + + + boolean timeout = true; + + CommonTopicResponse data; + + private PublishBarrierResult() { + } + + private PublishBarrierResult setData(CommonTopicResponse data) { + this.data = data; + this.timeout = false; + return this; + } + + public boolean isTimeout(){ + return timeout; + } + + public CommonTopicResponse getData(){ + return data; + } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/common/PublishConfiguration.java b/cloud-sdk/src/main/java/com/dji/sdk/common/PublishConfiguration.java new file mode 100644 index 00000000..bfd008c8 --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/common/PublishConfiguration.java @@ -0,0 +1,88 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2023年09月22日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.common; + +import java.util.Objects; +import java.util.function.BiConsumer; +import java.util.function.Consumer; + +public class PublishConfiguration implements ReadonlyPublishConfiguration { + + String bid; + String tid; + + //默认超时 + int timeout = 3; + //请求发送前调用 + Consumer beforePublishHook = null; + //收到请求回信后调用 + BiConsumer afterPublishHook = null; + + + public String getBid() { + return bid; + } + + public String getTid() { + return tid; + } + + public long getTimeout() { + return timeout * 1000; + } + + public void setBizId(String bid) { + this.bid = bid; + } + + public void setTransactionId(String tid) { + this.tid = tid; + } + + public void setTimeout(int timeout) { + this.timeout = timeout; + } + + public void setBeforePublishHook(Consumer callback) { + beforePublishHook = callback; + } + + public void setAfterPublishReplyHook(BiConsumer callback) { + afterPublishHook = callback; + } + + public void invokeBeforePublishHook(PublishRequest req){ + if(Objects.nonNull(beforePublishHook)){ + try { + beforePublishHook.accept(req); + }catch (Throwable ex){ + //do nothing + //业务层的异常不理会 + } + } + } + + public void invokeAfterPublishReplyHook(PublishRequest req, PublishBarrierResult result){ + if(Objects.nonNull(afterPublishHook)){ + try{ + afterPublishHook.accept(req,result); + }catch (Throwable ex){ + //do nothing + //业务层的异常不理会 + } + } + } + + public boolean noneBeforePublishHook() { + return Objects.isNull(beforePublishHook); + } + + public boolean noneAfterPublishHook() { + return Objects.isNull(afterPublishHook); + } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/common/PublishOption.java b/cloud-sdk/src/main/java/com/dji/sdk/common/PublishOption.java new file mode 100644 index 00000000..5f33e494 --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/common/PublishOption.java @@ -0,0 +1,57 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2023年09月22日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.common; + +import com.google.common.base.Strings; + +import java.util.Objects; +import java.util.function.BiConsumer; +import java.util.function.Consumer; + +public class PublishOption { + + public static Consumer DEFAULT = (cfg)->{}; + + final PublishConfiguration configuration; + + public PublishOption(PublishConfiguration configuration) { + this.configuration = configuration; + } + + public PublishOption withBizId(String bid){ + if(!Strings.isNullOrEmpty(bid)){ + configuration.setBizId(bid); + } + return this; + } + + public PublishOption withTransactionId(String tid){ + if(!Strings.isNullOrEmpty(tid)){ + configuration.setTransactionId(tid); + } + return this; + } + + public PublishOption timeout(int second){ + configuration.setTimeout(second); + return this; + } + + public PublishOption beforePublish(Consumer callback){ + if(Objects.nonNull(callback)){ + configuration.setBeforePublishHook(callback); + } + return this; + } + public PublishOption afterPublishReply(BiConsumer callback){ + if(Objects.nonNull(callback)){ + configuration.setAfterPublishReplyHook(callback); + } + return this; + } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/common/PublishRequest.java b/cloud-sdk/src/main/java/com/dji/sdk/common/PublishRequest.java new file mode 100644 index 00000000..81c86742 --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/common/PublishRequest.java @@ -0,0 +1,20 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2023年09月25日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.common; + +import com.dji.sdk.common.ReadonlyPublishConfiguration; +import com.dji.sdk.mqtt.CommonTopicRequest; + +public interface PublishRequest { + + String getTopic(); + + CommonTopicRequest getOriginRequest(); + + ReadonlyPublishConfiguration getConfiguration(); +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/common/PublishResult.java b/cloud-sdk/src/main/java/com/dji/sdk/common/PublishResult.java new file mode 100644 index 00000000..8b236933 --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/common/PublishResult.java @@ -0,0 +1,17 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2023年09月25日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.common; + +import com.dji.sdk.mqtt.CommonTopicResponse; + +public interface PublishResult { + + boolean isTimeout(); + + CommonTopicResponse getData(); +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/common/ReadonlyPublishConfiguration.java b/cloud-sdk/src/main/java/com/dji/sdk/common/ReadonlyPublishConfiguration.java new file mode 100644 index 00000000..ff4e880d --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/common/ReadonlyPublishConfiguration.java @@ -0,0 +1,17 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2023年09月25日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.common; + +public interface ReadonlyPublishConfiguration { + + String getBid(); + + String getTid(); + + long getTimeout(); +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/common/SDKManager.java b/cloud-sdk/src/main/java/com/dji/sdk/common/SDKManager.java index 78f15493..fd148bc6 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/common/SDKManager.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/common/SDKManager.java @@ -10,15 +10,39 @@ import com.dji.sdk.exception.CloudSDKException; import java.util.Objects; +import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; /** * @author sean * @version 1.7 * @date 2023/5/19 + * + * fix: 改接口,由客户决定Gateway管理策略 witcom@2023.09.25 */ -public class SDKManager { +public interface SDKManager { + default GatewayManager getDeviceSDK(String gatewaySn){ + return findDeviceSDK(gatewaySn) + .orElseThrow(()-> new CloudSDKException(CloudSDKErrorEnum.NOT_REGISTERED, + "The device has not been registered, please call the 'SDKManager.registerDevice()' method to register the device first.")); + } + + Optional findDeviceSDK(String gatewaySn); + default GatewayManager registerDevice(String gatewaySn, String droneSn, + DeviceDomainEnum domain, DeviceTypeEnum type, DeviceSubTypeEnum subType, String gatewayThingVersion, String droneThingVersion){ + return registerDevice(gatewaySn, droneSn, GatewayTypeEnum.find(DeviceEnum.find(domain, type, subType)), gatewayThingVersion, droneThingVersion); + } + + default GatewayManager registerDevice(String gatewaySn, String droneSn, GatewayTypeEnum type, String gatewayThingVersion, String droneThingVersion){ + return registerDevice(new GatewayManager(Objects.requireNonNull(gatewaySn), droneSn, type, gatewayThingVersion, droneThingVersion)); + } + + GatewayManager registerDevice(GatewayManager gateway); + + void logoutDevice(String gatewaySn); + +/* private SDKManager() { } @@ -32,6 +56,14 @@ public static GatewayManager getDeviceSDK(String gatewaySn) { "The device has not been registered, please call the 'SDKManager.registerDevice()' method to register the device first."); } + public static Optional findDeviceSDK(String gatewaySn) { + if(SDK_MAP.containsKey(gatewaySn)){ + return Optional.of(SDK_MAP.get(gatewaySn)); + }else { + return Optional.empty(); + } + } + public static GatewayManager registerDevice(String gatewaySn, String droneSn, DeviceDomainEnum domain, DeviceTypeEnum type, DeviceSubTypeEnum subType, String gatewayThingVersion, String droneThingVersion) { return registerDevice(gatewaySn, droneSn, GatewayTypeEnum.find(DeviceEnum.find(domain, type, subType)), gatewayThingVersion, droneThingVersion); @@ -49,4 +81,6 @@ public static GatewayManager registerDevice(GatewayManager gateway) { public static void logoutDevice(String gatewaySn) { SDK_MAP.remove(gatewaySn); } + + */ } diff --git a/cloud-sdk/src/main/java/com/dji/sdk/config/DefaultBeanConfiguration.java b/cloud-sdk/src/main/java/com/dji/sdk/config/DefaultBeanConfiguration.java new file mode 100644 index 00000000..9829b4ad --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/config/DefaultBeanConfiguration.java @@ -0,0 +1,80 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2023年09月22日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.config; + +import com.dji.sdk.common.*; +import com.dji.sdk.mqtt.ChanBarrierAdapter; +import com.dji.sdk.mqtt.GlobalPublishOption; +import com.dji.sdk.common.PublishRequest; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.UUID; +import java.util.function.BiConsumer; +import java.util.function.Consumer; +import java.util.function.Supplier; + +@Configuration +public class DefaultBeanConfiguration { + + /** + * 全局发送默认设置 + * @return + */ + @Bean + @ConditionalOnMissingBean(GlobalPublishOption.class) + public GlobalPublishOption defaultPublishOption(){ + return new GlobalPublishOption() { + @Override + public Supplier defaultTransactionId() { + return ()-> UUID.randomUUID().toString(); + } + + @Override + public Supplier defaultBizId() { + return ()-> UUID.randomUUID().toString(); + } + + @Override + public Consumer defaultBeforePublishHook() { + return null; + } + + @Override + public BiConsumer defaultAfterPublishHook() { + return null; + } + }; + } + + @Bean + @ConditionalOnMissingBean(SDKManager.class) + public SDKManager localCacheSDKManager(){ + return new LocalCacheSDKManager(); + } + + /** + * 使用者可以自定义PublishBarrier的实现,默认采用Chan实现 + */ + @Bean + @ConditionalOnMissingBean(PublishBarrier.class) + public PublishBarrier chanBarrier(){ + /** 原Chan实现 */ + return new ChanBarrierAdapter(); + } + + /** + * PublishBarrier 另一个实现, 采用同步锁 + */ +// @Bean +// @ConditionalOnMissingBean(PublishBarrier.class) +// public PublishBarrier jdkBarrier(){ +// return new JDKLockBarrierImpl(); +// } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/config/GetSnakeDataBinder.java b/cloud-sdk/src/main/java/com/dji/sdk/config/GetSnakeDataBinder.java index 6f083957..663c007c 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/config/GetSnakeDataBinder.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/config/GetSnakeDataBinder.java @@ -8,7 +8,7 @@ import org.springframework.beans.PropertyValue; import org.springframework.web.servlet.mvc.method.annotation.ExtendedServletRequestDataBinder; -import javax.servlet.ServletRequest; +import jakarta.servlet.ServletRequest; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/ChanBarrierAdapter.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/ChanBarrierAdapter.java new file mode 100644 index 00000000..368db353 --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/ChanBarrierAdapter.java @@ -0,0 +1,53 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2023年09月22日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.mqtt; + +import com.dji.sdk.common.PublishBarrier; +import com.dji.sdk.common.PublishBarrierResult; + +import java.util.Objects; + +public class ChanBarrierAdapter implements PublishBarrier { + @Override + public String generateIdentity(CommonTopicRequest requestData) { + return requestData.getTid(); + } + + @Override + public String generateIdentity(CommonTopicResponse receiveData) { + return receiveData.getTid(); + } + + @Override + public void put(String identity, CommonTopicResponse receiveData) { + Chan instance = Chan.getInstance(identity, false); + if(Objects.nonNull(instance)){ + instance.put(receiveData); + } + } + + @Override + public void registerRequest(String identity, CommonTopicRequest requestData) { + Chan.getInstance(identity, true); + } + + @Override + public PublishBarrierResult await(String identity,long timeout) { + Chan instance = Chan.getInstance(identity, false); + + CommonTopicResponse response = instance.get(identity, timeout); + + return Objects.nonNull(response) ? PublishBarrierResult.ok(response) : PublishBarrierResult.EMPTY; + } + + @Override + public boolean hasIdentity(String identity) { + Chan instance = Chan.getInstance(identity, false); + return Objects.nonNull(instance); + } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/ChannelName.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/ChannelName.java index 876e1e38..e9b37262 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/ChannelName.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/ChannelName.java @@ -158,6 +158,13 @@ public class ChannelName { public static final String INBOUND_EVENTS_CAMERA_PHOTO_TAKE_PROGRESS = "inboundEventsCameraPhotoTakeProgress"; + //Add by witcom@2024.06.03 + public static final String INBOUND_EVENTS_PSDK_UI_RESOURCE_UPLOAD_RESULT = "inboundEventsPsdkUIResourceUploadResult"; + public static final String INBOUND_EVENTS_PSDK_FLOATING_WINDOW_TEXT = "inboundEventsFloatWindowText"; + + public static final String INBOUND_EVENTS_SPEAKER_AUDIO_PLAY_START_PROGRESS = "inboundEventsSpeakerAudioPlayStartProgress"; + public static final String INBOUND_EVENTS_SPEAKER_TTS_PLAY_START_PROGRESS = "inboundEventsSpeakerTTSPlayStartProgress"; + // property public static final String INBOUND_PROPERTY_SET_REPLY = "inboundPropertySetReply"; diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/FlowTransformWrapper.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/FlowTransformWrapper.java new file mode 100644 index 00000000..b0c87a84 --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/FlowTransformWrapper.java @@ -0,0 +1,51 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2023年10月09日 + * @version: 1.0.0 + * @description: + **************************************************/ +package com.dji.sdk.mqtt; + +public class FlowTransformWrapper { + + public final static String DEFAULT_ERROR_MSG = "null"; + + public static FlowTransformWrapper error(){ + return new FlowTransformWrapper(DEFAULT_ERROR_MSG); + } + + public static FlowTransformWrapper ok(CommonTopicRequest request){ + return new FlowTransformWrapper(request); + } + + CommonTopicRequest request; + boolean bError; + String errorMessage; + + private FlowTransformWrapper(CommonTopicRequest request){ + this.request = request; + this.bError = false; + } + + private FlowTransformWrapper(String errorMessage){ + this.bError = true; + this.errorMessage = errorMessage; + } + + public CommonTopicRequest getRequest() { + return request; + } + + public boolean hasError() { + return bError; + } + + public boolean continuee(){ + return !hasError(); + } + + public String getErrorMessage() { + return errorMessage; + } +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/GlobalPublishOption.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/GlobalPublishOption.java new file mode 100644 index 00000000..50872cac --- /dev/null +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/GlobalPublishOption.java @@ -0,0 +1,24 @@ +/************************************************* + * @copyright 2017 Flision Corporation Inc. + * @author: Vincent Chan @ Canton + * @date: 2023年09月25日 + * @version: 1.0.0 + * @description: 全局发送默认配置 + **************************************************/ +package com.dji.sdk.mqtt; + +import com.dji.sdk.common.PublishBarrierResult; +import com.dji.sdk.common.PublishRequest; + +import java.util.function.BiConsumer; +import java.util.function.Consumer; +import java.util.function.Supplier; + +public interface GlobalPublishOption { + Supplier defaultTransactionId(); + Supplier defaultBizId(); + + Consumer defaultBeforePublishHook(); + BiConsumer defaultAfterPublishHook(); + +} diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/InboundMessageRouter.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/InboundMessageRouter.java index 4d2a4176..aae6d988 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/InboundMessageRouter.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/InboundMessageRouter.java @@ -37,7 +37,10 @@ protected Collection determineTargetChannels(Message message) String topic = headers.get(MqttHeaders.RECEIVED_TOPIC).toString(); byte[] payload = (byte[])message.getPayload(); - log.debug("received topic: {} \t payload =>{}", topic, new String(payload)); + //fix: 修复未启动debug时仍然需要构造debug参数的问题 by witcom@2023.09.22 + if(log.isDebugEnabled()) { + log.debug("received topic: {} \t payload =>{}", topic, new String(payload)); + } CloudApiTopicEnum topicEnum = CloudApiTopicEnum.find(topic); MessageChannel bean = (MessageChannel) SpringBeanUtils.getBean(topicEnum.getBeanName()); diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/MqttConfiguration.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/MqttConfiguration.java index 58551136..352b1f96 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/MqttConfiguration.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/MqttConfiguration.java @@ -15,7 +15,7 @@ import org.springframework.messaging.MessageChannel; import org.springframework.messaging.MessageHandler; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.UUID; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/MqttGatewayPublish.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/MqttGatewayPublish.java index 272651c9..3c7ffc67 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/MqttGatewayPublish.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/MqttGatewayPublish.java @@ -1,10 +1,12 @@ package com.dji.sdk.mqtt; -import com.dji.sdk.common.Common; +import com.dji.sdk.common.*; import com.dji.sdk.exception.CloudSDKErrorEnum; import com.dji.sdk.exception.CloudSDKException; import com.dji.sdk.websocket.api.WebSocketMessageSend; import com.fasterxml.jackson.core.JsonProcessingException; +import com.google.common.base.Strings; +import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.TypeMismatchException; @@ -13,10 +15,12 @@ import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Objects; import java.util.UUID; +import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Consumer; /** * @author sean.zhou @@ -35,9 +39,17 @@ public class MqttGatewayPublish { @Resource private IMqttMessageGateway messageGateway; + @Resource + private PublishBarrier publishBarrier; + + @Resource + private GlobalPublishOption globalOptions; + public void publish(String topic, int qos, CommonTopicRequest request) { try { - log.debug("send topic: {}, payload: {}", topic, request.toString()); + if(log.isDebugEnabled()) { + log.debug("send topic: {}, payload: {}", topic, request.toString()); + } byte[] payload = Common.getObjectMapper().writeValueAsBytes(request); messageGateway.publish(topic, payload, qos); } catch (JsonProcessingException e) { @@ -48,7 +60,9 @@ public void publish(String topic, int qos, CommonTopicRequest request) { public void publish(String topic, int qos, CommonTopicResponse response) { try { - log.debug("send topic: {}, payload: {}", topic, response.toString()); + if(log.isDebugEnabled()) { + log.debug("send topic: {}, payload: {}", topic, response.toString()); + } byte[] payload = Common.getObjectMapper().writeValueAsBytes(response); messageGateway.publish(topic, payload, qos); } catch (JsonProcessingException e) { @@ -76,7 +90,9 @@ public CommonTopicResponse publishWithReply(Class clazz, String topic, AtomicInteger time = new AtomicInteger(0); boolean hasBid = StringUtils.hasText(request.getBid()); request.setBid(hasBid ? request.getBid() : UUID.randomUUID().toString()); + // Retry + // Is Retry necessary? why not use Spring @Retryable instead? while (time.getAndIncrement() <= retryCount) { this.publish(topic, request); @@ -100,5 +116,88 @@ public CommonTopicResponse publishWithReply(Class clazz, String topic, throw new CloudSDKException(CloudSDKErrorEnum.MQTT_PUBLISH_ABNORMAL, "No message reply received."); } + public CompletableFuture> publishWithReply(Class clazz, String topic, CommonTopicRequest request, Consumer options){ + PublishConfiguration config = prepareConfiguration(options); + request.setBid(config.getBid()); + request.setTid(config.getTid()); + + //use to log request data or the last chance to change some data + //CommonTopicRequest丢失了一些需要记录的内容,把这些内容封到PublishRequest交出去 + PublishRequest wrapRequest = new CommonTopicRequestWrapper(clazz,topic, request, config); + config.invokeBeforePublishHook(wrapRequest); + + //注册barrier + String identity = publishBarrier.generateIdentity(request); //提供栅栏标识 + publishBarrier.registerRequest(identity, request); + + return CompletableFuture.supplyAsync(()->{ + this.publish(topic, request); + + if(log.isDebugEnabled()){ log.debug("等待{}指令返回",identity); }; + PublishBarrierResult result = publishBarrier.await(identity,config.getTimeout()); + config.invokeAfterPublishReplyHook(wrapRequest, result); + + if(result.isTimeout()){ + throw new CloudSDKException("Timeout"); //TODO: 换个更明确的异常更好 + } + + if(log.isDebugEnabled()){ log.debug("{}指令已返回",identity); } + return result.getData(); + }); + } + + private PublishConfiguration prepareConfiguration(Consumer options){ + PublishConfiguration config = new PublishConfiguration(); + PublishOption option = new PublishOption(config); + options.accept(option); + + if(Strings.isNullOrEmpty(config.getBid())){ + config.setBizId(globalOptions.defaultBizId().get()); + } + + if(Strings.isNullOrEmpty(config.getTid())){ + config.setTransactionId(globalOptions.defaultTransactionId().get()); + } + + if(config.noneBeforePublishHook()){ + config.setBeforePublishHook(globalOptions.defaultBeforePublishHook()); + } + + if(config.noneAfterPublishHook()){ + config.setAfterPublishReplyHook(globalOptions.defaultAfterPublishHook()); + } + return config; + } + + static class CommonTopicRequestWrapper implements PublishRequest{ + final CommonTopicRequest request; + final String topic; + final Class clazz; + + final ReadonlyPublishConfiguration config; + + public CommonTopicRequestWrapper(Class clazz, String topic,CommonTopicRequest request, PublishConfiguration config) { + this.clazz = clazz; + this.request = request; + this.topic = topic; + this.config = config; + } + + @Override + public String getTopic() { + return topic; + } + + @Override + public CommonTopicRequest getOriginRequest() { + return request; + } + @Override + public ReadonlyPublishConfiguration getConfiguration() { + return config; + } + + + } } \ No newline at end of file diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/MqttTopicServiceImpl.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/MqttTopicServiceImpl.java index 158fa605..4e02f8ab 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/MqttTopicServiceImpl.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/MqttTopicServiceImpl.java @@ -5,7 +5,7 @@ import org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Arrays; import java.util.HashSet; import java.util.Set; diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/drc/DrcDownPublish.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/drc/DrcDownPublish.java index 25d643b1..10e99dee 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/drc/DrcDownPublish.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/drc/DrcDownPublish.java @@ -4,7 +4,7 @@ import com.dji.sdk.mqtt.TopicConst; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Objects; /** diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/drc/DrcUpRouter.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/drc/DrcUpRouter.java index 8648bf82..4987e1d5 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/drc/DrcUpRouter.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/drc/DrcUpRouter.java @@ -6,7 +6,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.dsl.IntegrationFlows; import org.springframework.messaging.Message; import java.io.IOException; @@ -22,7 +21,7 @@ public class DrcUpRouter { @Bean public IntegrationFlow drcUpRouterFlow() { - return IntegrationFlows + return IntegrationFlow .from(ChannelName.INBOUND_DRC_UP) .transform(Message.class, source -> { try { diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/drc/DrcUpSubscribe.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/drc/DrcUpSubscribe.java index ef922f06..6dd16e1f 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/drc/DrcUpSubscribe.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/drc/DrcUpSubscribe.java @@ -5,7 +5,7 @@ import com.dji.sdk.mqtt.TopicConst; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/events/EventsMethodEnum.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/events/EventsMethodEnum.java index 4ab564b6..27d4910b 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/events/EventsMethodEnum.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/events/EventsMethodEnum.java @@ -98,6 +98,13 @@ public enum EventsMethodEnum { CAMERA_PHOTO_TAKE_PROGRESS("camera_photo_take_progress", ChannelName.INBOUND_EVENTS_CAMERA_PHOTO_TAKE_PROGRESS, new TypeReference>() {}), + //Add by witcom@2024.06.03 + PSDK_UI_RESOURCE_UPLOAD_RESULT("psdk_ui_resource_upload_result", ChannelName.INBOUND_EVENTS_PSDK_UI_RESOURCE_UPLOAD_RESULT, new TypeReference(){}), + PSDK_FLOAT_WINDOW_TEXT("psdk_floating_window_text",ChannelName.INBOUND_EVENTS_PSDK_FLOATING_WINDOW_TEXT,new TypeReference(){}), + SPEAKER_AUDIO_PLAY_START_PROGRESS("speaker_audio_play_start_progress",ChannelName.INBOUND_EVENTS_SPEAKER_AUDIO_PLAY_START_PROGRESS,new TypeReference>() {}), + SPEAKER_TTS_PLAY_START_PROGRESS("speaker_tts_play_start_progress",ChannelName.INBOUND_EVENTS_SPEAKER_TTS_PLAY_START_PROGRESS,new TypeReference>() {}), + + UNKNOWN("", ChannelName.DEFAULT, new TypeReference<>() {}); private final String method; diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/events/EventsRouter.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/events/EventsRouter.java index 0a6d50d3..ee3db5ed 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/events/EventsRouter.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/events/EventsRouter.java @@ -12,7 +12,7 @@ import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.io.IOException; import java.util.Arrays; import java.util.Objects; @@ -32,7 +32,7 @@ public class EventsRouter { @Bean public IntegrationFlow eventsMethodRouterFlow() { - return IntegrationFlows + return IntegrationFlow .from(ChannelName.INBOUND_EVENTS) .transform(Message.class, source -> { try { @@ -53,7 +53,7 @@ public IntegrationFlow eventsMethodRouterFlow() { @Bean public IntegrationFlow replySuccessEvents() { - return IntegrationFlows + return IntegrationFlow .from(ChannelName.OUTBOUND_EVENTS) .handle(this::publish) .nullChannel(); diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/events/EventsSubscribe.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/events/EventsSubscribe.java index 464727e5..f7ef16fe 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/events/EventsSubscribe.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/events/EventsSubscribe.java @@ -5,7 +5,7 @@ import com.dji.sdk.mqtt.TopicConst; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/osd/OsdRouter.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/osd/OsdRouter.java index f85c50cf..3958bd65 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/osd/OsdRouter.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/osd/OsdRouter.java @@ -2,7 +2,6 @@ import com.dji.sdk.cloudapi.device.PayloadModelConst; import com.dji.sdk.common.Common; -import com.dji.sdk.config.version.GatewayManager; import com.dji.sdk.common.SDKManager; import com.dji.sdk.exception.CloudSDKException; import com.dji.sdk.mqtt.ChannelName; @@ -10,15 +9,11 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.dsl.IntegrationFlows; import org.springframework.integration.mqtt.support.MqttHeaders; import org.springframework.messaging.Message; import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.dji.sdk.mqtt.TopicConst.*; @@ -32,8 +27,8 @@ public class OsdRouter { @Bean - public IntegrationFlow osdRouterFlow() { - return IntegrationFlows + public IntegrationFlow osdRouterFlow(SDKManager sdkManager) { + return IntegrationFlow .from(ChannelName.INBOUND_OSD) .transform(Message.class, source -> { try { @@ -45,19 +40,28 @@ public IntegrationFlow osdRouterFlow() { } }, null) .handle((response, headers) -> { - GatewayManager gateway = SDKManager.getDeviceSDK(response.getGateway()); - OsdDeviceTypeEnum typeEnum = OsdDeviceTypeEnum.find(gateway.getType(), response.getFrom().equals(response.getGateway())); - Map data = (Map) response.getData(); - if (!typeEnum.isGateway()) { - List payloadData = (List) data.getOrDefault(PayloadModelConst.PAYLOAD_KEY, new ArrayList<>()); - PayloadModelConst.getAllIndexWithPosition().stream().filter(data::containsKey) - .map(data::get).forEach(payloadData::add); - data.put(PayloadModelConst.PAYLOAD_KEY, payloadData); - } - return response.setData(Common.getObjectMapper().convertValue(data, typeEnum.getClassType())); + + // fix: getDeviceSDK抛出异常导致在设备未注册的情况下报osd时产生大量日志 witcom@2023.09.22 + //GatewayManager gateway = SDKManager.getDeviceSDK(response.getGateway()); + return sdkManager.findDeviceSDK(response.getGateway()) + .map(gateway-> { + + OsdDeviceTypeEnum typeEnum = OsdDeviceTypeEnum.find(gateway.getType(), response.getFrom().equals(response.getGateway())); + Map data = (Map) response.getData(); + if (!typeEnum.isGateway()) { + List payloadData = (List) data.getOrDefault(PayloadModelConst.PAYLOAD_KEY, new ArrayList<>()); + PayloadModelConst.getAllIndexWithPosition().stream().filter(data::containsKey) + .map(data::get).forEach(payloadData::add); + data.put(PayloadModelConst.PAYLOAD_KEY, payloadData); + } + return response.setData(Common.getObjectMapper().convertValue(data, typeEnum.getClassType())); + }) + .orElse(null); }) + .filter(Objects::nonNull) .route(response -> OsdDeviceTypeEnum.find(response.getData().getClass()), - mapping -> Arrays.stream(OsdDeviceTypeEnum.values()).forEach(key -> mapping.channelMapping(key, key.getChannelName()))) + mapping -> Arrays.stream(OsdDeviceTypeEnum.values()) + .forEach(key -> mapping.channelMapping(key, key.getChannelName()))) .get(); } diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/osd/OsdSubscribe.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/osd/OsdSubscribe.java index 2bb72a73..bc8fe519 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/osd/OsdSubscribe.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/osd/OsdSubscribe.java @@ -6,7 +6,7 @@ import com.dji.sdk.mqtt.TopicConst; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * @@ -22,8 +22,11 @@ public class OsdSubscribe { @Resource private IMqttTopicService topicService; + @Resource + SDKManager sdkManager; + public void subscribe(GatewayManager gateway, boolean unsubscribeSubDevice) { - SDKManager.registerDevice(gateway); + sdkManager.registerDevice(gateway); topicService.subscribe(String.format(TOPIC, gateway.getGatewaySn())); if (unsubscribeSubDevice) { topicService.unsubscribe(String.format(TOPIC, gateway.getDroneSn())); @@ -35,7 +38,7 @@ public void subscribe(GatewayManager gateway, boolean unsubscribeSubDevice) { } public void unsubscribe(GatewayManager gateway) { - SDKManager.logoutDevice(gateway.getGatewaySn()); + sdkManager.logoutDevice(gateway.getGatewaySn()); topicService.unsubscribe(String.format(TOPIC, gateway.getGatewaySn())); if (null != gateway.getDroneSn()) { topicService.unsubscribe(String.format(TOPIC, gateway.getDroneSn())); diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/property/PropertySetPublish.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/property/PropertySetPublish.java index 3426a853..cb926dbf 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/property/PropertySetPublish.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/property/PropertySetPublish.java @@ -1,12 +1,17 @@ package com.dji.sdk.mqtt.property; +import com.dji.sdk.common.PublishOption; +import com.dji.sdk.mqtt.CommonTopicRequest; +import com.dji.sdk.mqtt.CommonTopicResponse; import com.dji.sdk.mqtt.MqttGatewayPublish; import com.dji.sdk.mqtt.TopicConst; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Objects; import java.util.UUID; +import java.util.concurrent.CompletableFuture; +import java.util.function.Consumer; /** * @author sean @@ -29,12 +34,33 @@ public PropertySetReplyResultEnum publish(String sn, Object data, int retryCount public PropertySetReplyResultEnum publish(String sn, Object data, int retryCount, long timeout) { String topic = TopicConst.THING_MODEL_PRE + TopicConst.PRODUCT + Objects.requireNonNull(sn) + TopicConst.PROPERTY_SUF + TopicConst.SET_SUF; + + return gatewayPublish.publishWithReply(PropertySetReplyResultEnum.class,topic, + new CommonTopicRequest<>() + .setTimestamp(System.currentTimeMillis()) + .setData(Objects.requireNonNull(data)), + ops->ops.timeout((int)(timeout/1000))) + .join() + .getData(); + +// return gatewayPublish.publishWithReply( +// PropertySetReplyResultEnum.class, topic, new TopicPropertySetRequest<>() +// .setTid(UUID.randomUUID().toString()) +// .setBid(null) +// .setTimestamp(System.currentTimeMillis()) +// .setData(Objects.requireNonNull(data)), retryCount, timeout).getData(); + } + + public CompletableFuture> + publish(String sn, Object data, Consumer options){ + String topic = TopicConst.THING_MODEL_PRE + TopicConst.PRODUCT + Objects.requireNonNull(sn) + TopicConst.PROPERTY_SUF + TopicConst.SET_SUF; return gatewayPublish.publishWithReply( - PropertySetReplyResultEnum.class, topic, new TopicPropertySetRequest<>() - .setTid(UUID.randomUUID().toString()) - .setBid(null) + PropertySetReplyResultEnum.class, + topic, + new CommonTopicRequest<>() .setTimestamp(System.currentTimeMillis()) - .setData(Objects.requireNonNull(data)), retryCount, timeout).getData(); + .setData(Objects.requireNonNull(data)), + options); } } diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/property/PropertySetReplyHandler.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/property/PropertySetReplyHandler.java index 1723e22f..da2b8f6a 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/property/PropertySetReplyHandler.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/property/PropertySetReplyHandler.java @@ -1,6 +1,7 @@ package com.dji.sdk.mqtt.property; import com.dji.sdk.common.Common; +import com.dji.sdk.common.PublishBarrier; import com.dji.sdk.mqtt.Chan; import com.dji.sdk.mqtt.ChannelName; import com.fasterxml.jackson.core.type.TypeReference; @@ -9,6 +10,7 @@ import org.springframework.messaging.Message; import org.springframework.stereotype.Component; +import jakarta.annotation.Resource; import java.io.IOException; import java.util.Objects; @@ -20,6 +22,9 @@ @Component public class PropertySetReplyHandler { + @Resource + PublishBarrier barrier; + private static final String RESULT_KEY = "result"; /** @@ -32,13 +37,19 @@ public void propertySetReply(Message message) throws IOException { byte[] payload = (byte[])message.getPayload(); TopicPropertySetResponse receiver = Common.getObjectMapper().readValue(payload, new TypeReference() {}); - Chan chan = Chan.getInstance(receiver.getTid(), false); - if (Objects.isNull(chan)) { + //fix: use Barrier instead witcom@2023.09.22 + //Chan chan = Chan.getInstance(receiver.getTid(), false); +// if (Objects.isNull(chan)) { +// return; +// } + String identity = barrier.generateIdentity(receiver); + if(!barrier.hasIdentity(identity)) { return; } receiver.setData(PropertySetReplyResultEnum.find( Common.getObjectMapper().convertValue(receiver.getData(), JsonNode.class).findValue(RESULT_KEY).intValue())); // Put the message to the chan object. - chan.put(receiver); + //chan.put(receiver); + barrier.put(identity, receiver); } } diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/property/PropertySetSubscribe.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/property/PropertySetSubscribe.java index b17af53d..88815d94 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/property/PropertySetSubscribe.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/property/PropertySetSubscribe.java @@ -5,7 +5,7 @@ import com.dji.sdk.mqtt.TopicConst; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/requests/RequestsRouter.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/requests/RequestsRouter.java index 045afcd6..2232f1a6 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/requests/RequestsRouter.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/requests/RequestsRouter.java @@ -11,7 +11,7 @@ import org.springframework.integration.dsl.IntegrationFlows; import org.springframework.messaging.MessageHeaders; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.io.IOException; import java.util.Arrays; import java.util.Objects; @@ -29,7 +29,7 @@ public class RequestsRouter { @Bean public IntegrationFlow requestsMethodRouterFlow() { - return IntegrationFlows + return IntegrationFlow .from(ChannelName.INBOUND_REQUESTS) .transform(payload -> { try { @@ -48,7 +48,7 @@ public IntegrationFlow requestsMethodRouterFlow() { @Bean public IntegrationFlow replyRequestsMethod() { - return IntegrationFlows + return IntegrationFlow .from(ChannelName.OUTBOUND_REQUESTS) .handle(this::publish) .nullChannel(); diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/requests/RequestsSubscribe.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/requests/RequestsSubscribe.java index b207c531..bf9a8a91 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/requests/RequestsSubscribe.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/requests/RequestsSubscribe.java @@ -5,7 +5,7 @@ import com.dji.sdk.mqtt.TopicConst; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/services/ServicesPublish.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/services/ServicesPublish.java index a07ec020..f7da5b84 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/services/ServicesPublish.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/services/ServicesPublish.java @@ -1,15 +1,19 @@ package com.dji.sdk.mqtt.services; import com.dji.sdk.common.Common; +import com.dji.sdk.common.PublishOption; +import com.dji.sdk.mqtt.CommonTopicResponse; import com.dji.sdk.mqtt.MqttGatewayPublish; import com.dji.sdk.mqtt.TopicConst; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.Objects; import java.util.UUID; +import java.util.concurrent.CompletableFuture; +import java.util.function.Consumer; /** * @author sean @@ -80,6 +84,8 @@ public TopicServicesResponse publish(String sn, String method public TopicServicesResponse> publish( TypeReference clazz, String sn, String method, Object data, String bid, int retryCount, long timeout) { + return this.publish(clazz, sn, method,data,ops-> ops.withBizId(bid).timeout((int)(timeout / 1000))).join(); + /* String topic = TopicConst.THING_MODEL_PRE + TopicConst.PRODUCT + Objects.requireNonNull(sn) + TopicConst.SERVICES_SUF; TopicServicesResponse response = (TopicServicesResponse) gatewayPublish.publishWithReply( ServicesReplyReceiver.class, topic, new TopicServicesRequest<>() @@ -104,6 +110,44 @@ public TopicServicesResponse> publish( reply.setOutput(mapper.convertValue(replyReceiver.getOutput(), clazz)); } return response.setData(reply); + + */ } + /** + * Remark by witcom@2023.09.22 + * TODO: 在贡献的版本到这里就不再往下修改了,需要修改所有AbstractXXXService和AOP,改动量很大 + * 主要思想是 + * 1.提供异步支持 + * 2.Chan的实现可由用户自定义 + * 3.提供发送选项参数 + * 4.提供发送前,接收后钩子用于记录请求和返回接近最原始的记录 + */ + + public CompletableFuture>> publish(TypeReference clazz, String sn, String method, Object data, Consumer options){ + String topic = TopicConst.THING_MODEL_PRE + TopicConst.PRODUCT + Objects.requireNonNull(sn) + TopicConst.SERVICES_SUF; + return gatewayPublish.publishWithReply(ServicesReplyReceiver.class, topic, new TopicServicesRequest<>() + .setTimestamp(System.currentTimeMillis()) + .setMethod(method) + .setData(Objects.requireNonNullElse(data, "")), options) + .thenApply(response->(TopicServicesResponse)response) + .thenApply(response->{ + ServicesReplyReceiver replyReceiver = (ServicesReplyReceiver) response.getData(); + ServicesReplyData reply = new ServicesReplyData().setResult(replyReceiver.getResult()); + if (Objects.isNull(clazz)) { + reply.setOutput((T) Objects.requireNonNullElse( + replyReceiver.getOutput(), Objects.requireNonNullElse(replyReceiver.getInfo(), ""))); + return response.setData(reply); + } + // put together in "output" + ObjectMapper mapper = Common.getObjectMapper(); + if (Objects.nonNull(replyReceiver.getInfo())) { + reply.setOutput(mapper.convertValue(replyReceiver.getInfo(), clazz)); + } + if (Objects.nonNull(replyReceiver.getOutput())) { + reply.setOutput(mapper.convertValue(replyReceiver.getOutput(), clazz)); + } + return response.setData(reply); + }); + } } diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/services/ServicesReplyHandler.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/services/ServicesReplyHandler.java index 01ee174a..9df904bd 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/services/ServicesReplyHandler.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/services/ServicesReplyHandler.java @@ -3,6 +3,7 @@ import com.dji.sdk.cloudapi.log.FileUploadListResponse; import com.dji.sdk.cloudapi.log.LogMethodEnum; import com.dji.sdk.common.Common; +import com.dji.sdk.common.PublishBarrier; import com.dji.sdk.mqtt.Chan; import com.dji.sdk.mqtt.ChannelName; import com.fasterxml.jackson.core.type.TypeReference; @@ -10,6 +11,7 @@ import org.springframework.messaging.Message; import org.springframework.stereotype.Component; +import jakarta.annotation.Resource; import java.io.IOException; import java.util.Objects; @@ -21,6 +23,9 @@ @Component public class ServicesReplyHandler { + @Resource + PublishBarrier barrier; + /** * Handle the reply message from topic "/services_reply". * @param message reply message @@ -32,14 +37,20 @@ public void servicesReply(Message message) throws IOException { TopicServicesResponse receiver = Common.getObjectMapper() .readValue(payload, new TypeReference>() {}); - Chan chan = Chan.getInstance(receiver.getTid(), false); - if (Objects.isNull(chan)) { + //fix: use Barrier instead witcom@2023.09.22 +// Chan chan = Chan.getInstance(receiver.getTid(), false); +// if (Objects.isNull(chan)) { +// return; +// } + String identity = barrier.generateIdentity(receiver); + if(!barrier.hasIdentity(identity)){ return; } if (LogMethodEnum.FILE_UPLOAD_LIST.getMethod().equals(receiver.getMethod())) { receiver.getData().setOutput(Common.getObjectMapper().convertValue(receiver.getData(), new TypeReference() {})); } - chan.put(receiver); + barrier.put(identity, receiver); + //chan.put(receiver); } } diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/services/ServicesSubscribe.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/services/ServicesSubscribe.java index 654ed4c4..38a57179 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/services/ServicesSubscribe.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/services/ServicesSubscribe.java @@ -5,7 +5,7 @@ import com.dji.sdk.mqtt.TopicConst; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * @author sean diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/state/DockStateDataKeyEnum.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/state/DockStateDataKeyEnum.java index 9a00e0bb..6557584e 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/state/DockStateDataKeyEnum.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/state/DockStateDataKeyEnum.java @@ -10,6 +10,7 @@ import java.util.Arrays; import java.util.Collections; +import java.util.Optional; import java.util.Set; /** @@ -70,9 +71,10 @@ public Set getKeys() { return keys; } - public static DockStateDataKeyEnum find(Set keys) { - return Arrays.stream(values()).filter(keyEnum -> !Collections.disjoint(keys, keyEnum.keys)).findAny() - .orElseThrow(() -> new CloudSDKException(DockStateDataKeyEnum.class, keys)); + public static Optional find(Set keys) { + // com.dji.sdk.mqtt.state.DockStateDataKeyEnum has unknown data: [[mode_code_reason]] + return Arrays.stream(values()).filter(keyEnum -> !Collections.disjoint(keys, keyEnum.keys)).findAny(); + // .orElseThrow(() -> new CloudSDKException(DockStateDataKeyEnum.class, keys)); } } diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/state/RcStateDataKeyEnum.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/state/RcStateDataKeyEnum.java index bd80c686..79ba8309 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/state/RcStateDataKeyEnum.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/state/RcStateDataKeyEnum.java @@ -6,6 +6,7 @@ import java.util.Arrays; import java.util.Collections; +import java.util.Optional; import java.util.Set; /** @@ -45,9 +46,9 @@ public Set getKeys() { return keys; } - public static RcStateDataKeyEnum find(Set keys) { - return Arrays.stream(values()).filter(keyEnum -> !Collections.disjoint(keys, keyEnum.keys)).findAny() - .orElseThrow(() -> new CloudSDKException(RcStateDataKeyEnum.class, keys)); + public static Optional find(Set keys) { + return Arrays.stream(values()).filter(keyEnum -> !Collections.disjoint(keys, keyEnum.keys)).findAny(); + //.orElseThrow(() -> new CloudSDKException(RcStateDataKeyEnum.class, keys)); } } diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/state/StateRouter.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/state/StateRouter.java index f431fe78..e8ec0606 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/state/StateRouter.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/state/StateRouter.java @@ -2,55 +2,75 @@ import com.dji.sdk.common.Common; import com.dji.sdk.common.SDKManager; +import com.dji.sdk.config.version.GatewayTypeEnum; import com.dji.sdk.exception.CloudSDKErrorEnum; import com.dji.sdk.exception.CloudSDKException; import com.dji.sdk.mqtt.ChannelName; +import com.dji.sdk.mqtt.FlowTransformWrapper; import com.dji.sdk.mqtt.MqttGatewayPublish; import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.dsl.IntegrationFlows; import org.springframework.integration.mqtt.support.MqttHeaders; import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; -import javax.annotation.Resource; -import java.io.IOException; -import java.util.Arrays; -import java.util.Map; -import java.util.Objects; -import java.util.Set; +import java.util.*; import static com.dji.sdk.mqtt.TopicConst.*; /** - * * @author sean.zhou - * @date 2021/11/17 * @version 0.1 + * @date 2021/11/17 */ +@Slf4j @Configuration public class StateRouter { @Resource + SDKManager sdkManager; private MqttGatewayPublish gatewayPublish; @Bean public IntegrationFlow stateDataRouterFlow() { - return IntegrationFlows + ObjectMapper objectMapper = Common.getObjectMapper(); + return IntegrationFlow .from(ChannelName.INBOUND_STATE) .transform(Message.class, source -> { try { - TopicStateRequest response = Common.getObjectMapper().readValue((byte[]) source.getPayload(), new TypeReference() {}); + TopicStateRequest response = objectMapper.readValue( + (byte[]) source.getPayload(), + new TypeReference() {}); String topic = String.valueOf(source.getHeaders().get(MqttHeaders.RECEIVED_TOPIC)); String from = topic.substring((THING_MODEL_PRE + PRODUCT).length(), topic.indexOf(STATE_SUF)); - return response.setFrom(from) - .setData(Common.getObjectMapper().convertValue(response.getData(), getTypeReference(response.getGateway(), response.getData()))); - } catch (IOException e) { - throw new CloudSDKException(e); + + return FlowTransformWrapper.ok(response.setFrom(from)); + } catch (Exception ex) { + log.warn("[StateRouter]"+ex.getMessage()); + return FlowTransformWrapper.error(); } }, null) + .filter(FlowTransformWrapper::continuee) + .handle((wrapper, headers) -> { + + TopicStateRequest response = (TopicStateRequest)wrapper.getRequest(); + + //fix: 修复设备未注册前设备推送state导致产生大量日志的问题 witcom@2023.10.08 + try { + return getTypeReference(response.getGateway(), response.getData()) + .map(clazz -> response.setData(objectMapper.convertValue(response.getData(), clazz))) + .orElse(null); + }catch (CloudSDKException ex){ + log.warn("[StateRouter]"+ex.getMessage()); + return null; + } + }) + .filter(Objects::nonNull) .route(response -> StateDataKeyEnum.find(response.getData().getClass()), mapping -> Arrays.stream(StateDataKeyEnum.values()).forEach(key -> mapping.channelMapping(key, key.getChannelName()))) .get(); @@ -59,7 +79,7 @@ public IntegrationFlow stateDataRouterFlow() { @Bean public IntegrationFlow replySuccessState() { - return IntegrationFlows + return IntegrationFlow .from(ChannelName.OUTBOUND_STATE) .handle(this::publish) .nullChannel(); @@ -75,16 +95,22 @@ private TopicStateResponse publish(TopicStateResponse request, MessageHeaders he } - private Class getTypeReference(String gatewaySn, Object data) { + private Optional getTypeReference(String gatewaySn, Object data) { Set keys = ((Map) data).keySet(); - switch (SDKManager.getDeviceSDK(gatewaySn).getType()) { - case RC: - return RcStateDataKeyEnum.find(keys).getClassType(); - case DOCK: - case DOCK2: - return DockStateDataKeyEnum.find(keys).getClassType(); - default: - throw new CloudSDKException(CloudSDKErrorEnum.WRONG_DATA, "Unexpected value: " + SDKManager.getDeviceSDK(gatewaySn).getType()); - } + //fix: 捕捉数据流发现在注册前设备可能会推送state主题导致产生大量日志 witcom@2023.10.08 + //GatewayTypeEnum type = sdkManager.getDeviceSDK(gatewaySn).getType(); + return sdkManager.findDeviceSDK(gatewaySn) + .flatMap(gw -> { + GatewayTypeEnum type = gw.getType(); + switch (type) { + case RC: + return RcStateDataKeyEnum.find(keys).map(v->v.getClassType()); + case DOCK: + case DOCK2: + return DockStateDataKeyEnum.find(keys).map(v->v.getClassType()); + default: + throw new CloudSDKException(CloudSDKErrorEnum.WRONG_DATA, "Unexpected value: " + type); + } + }); } } \ No newline at end of file diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/state/StateSubscribe.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/state/StateSubscribe.java index cd71824b..aa0d683d 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/state/StateSubscribe.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/state/StateSubscribe.java @@ -6,7 +6,7 @@ import com.dji.sdk.mqtt.TopicConst; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * @@ -20,10 +20,13 @@ public class StateSubscribe { @Resource private IMqttTopicService topicService; + @Resource + SDKManager sdkManager; + public static final String TOPIC = TopicConst.THING_MODEL_PRE + TopicConst.PRODUCT + "%s" + TopicConst.STATE_SUF; public void subscribe(GatewayManager gateway, boolean unsubscribeSubDevice) { - SDKManager.registerDevice(gateway); + sdkManager.registerDevice(gateway); topicService.subscribe(String.format(TOPIC, gateway.getGatewaySn())); if (unsubscribeSubDevice) { topicService.unsubscribe(String.format(TOPIC, gateway.getDroneSn())); @@ -35,7 +38,7 @@ public void subscribe(GatewayManager gateway, boolean unsubscribeSubDevice) { } public void unsubscribe(GatewayManager gateway) { - SDKManager.logoutDevice(gateway.getGatewaySn()); + sdkManager.logoutDevice(gateway.getGatewaySn()); topicService.unsubscribe(String.format(TOPIC, gateway.getGatewaySn())); if (null != gateway.getDroneSn()) { topicService.unsubscribe(String.format(TOPIC, gateway.getDroneSn())); diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/status/StatusRouter.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/status/StatusRouter.java index 396bd2ea..3750c2ed 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/status/StatusRouter.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/status/StatusRouter.java @@ -6,16 +6,15 @@ import com.dji.sdk.mqtt.ChannelName; import com.dji.sdk.mqtt.MqttGatewayPublish; import com.fasterxml.jackson.core.type.TypeReference; +import jakarta.annotation.Resource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.integration.dsl.IntegrationFlow; -import org.springframework.integration.dsl.IntegrationFlows; import org.springframework.integration.mqtt.support.MqttHeaders; import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; import org.springframework.util.CollectionUtils; -import javax.annotation.Resource; import java.io.IOException; import java.util.Objects; import java.util.Optional; @@ -36,7 +35,7 @@ public class StatusRouter { @Bean public IntegrationFlow statusRouterFlow() { - return IntegrationFlows + return IntegrationFlow .from(ChannelName.INBOUND_STATUS) .transform(Message.class, source -> { try { @@ -56,7 +55,7 @@ public IntegrationFlow statusRouterFlow() { @Bean public IntegrationFlow replySuccessStatus() { - return IntegrationFlows + return IntegrationFlow .from(ChannelName.OUTBOUND_STATUS) .handle(this::publish) .nullChannel(); diff --git a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/status/StatusSubscribe.java b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/status/StatusSubscribe.java index e48029e0..3fdae6da 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/mqtt/status/StatusSubscribe.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/mqtt/status/StatusSubscribe.java @@ -6,7 +6,7 @@ import com.dji.sdk.mqtt.TopicConst; import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import jakarta.annotation.Resource; /** * @@ -22,8 +22,11 @@ public class StatusSubscribe { @Resource private IMqttTopicService topicService; + @Resource + SDKManager sdkManager; + public void subscribe(GatewayManager gateway) { - SDKManager.registerDevice(gateway); + sdkManager.registerDevice(gateway); topicService.subscribe(String.format(TOPIC, gateway.getGatewaySn())); } @@ -32,7 +35,7 @@ public void subscribeWildcardsStatus() { } public void unsubscribe(GatewayManager gateway) { - SDKManager.logoutDevice(gateway.getGatewaySn()); + sdkManager.logoutDevice(gateway.getGatewaySn()); topicService.unsubscribe(String.format(TOPIC, gateway.getGatewaySn())); } diff --git a/cloud-sdk/src/main/java/com/dji/sdk/websocket/WebSocketMessageResponse.java b/cloud-sdk/src/main/java/com/dji/sdk/websocket/WebSocketMessageResponse.java index 816d5551..3521ff42 100644 --- a/cloud-sdk/src/main/java/com/dji/sdk/websocket/WebSocketMessageResponse.java +++ b/cloud-sdk/src/main/java/com/dji/sdk/websocket/WebSocketMessageResponse.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.*; + /** * The format of WebSocket messages that the pilot can receive. diff --git a/pom.xml b/pom.xml index 363dc0c9..58425b53 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.12 + 3.1.8 pom import @@ -37,6 +37,11 @@ + + com.google.guava + guava + 31.1-jre + org.jetbrains annotations @@ -66,6 +71,12 @@ jackson-datatype-jsr310 + + org.projectlombok + lombok + true + + diff --git a/sample/pom.xml b/sample/pom.xml index 575608d4..bfa7381f 100644 --- a/sample/pom.xml +++ b/sample/pom.xml @@ -38,9 +38,8 @@ - mysql - mysql-connector-java - ${mysql.version} + com.mysql + mysql-connector-j org.projectlombok @@ -95,10 +94,10 @@ ${aliyun-oss.version} - - javax.xml.bind - jaxb-api - + + + + diff --git a/sample/src/main/java/com/dji/sample/component/ApplicationBootInitial.java b/sample/src/main/java/com/dji/sample/component/ApplicationBootInitial.java index 16a691c3..37b345e1 100644 --- a/sample/src/main/java/com/dji/sample/component/ApplicationBootInitial.java +++ b/sample/src/main/java/com/dji/sample/component/ApplicationBootInitial.java @@ -11,6 +11,7 @@ import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; +import jakarta.annotation.Resource; import java.util.Optional; /** @@ -27,6 +28,9 @@ public class ApplicationBootInitial implements CommandLineRunner { @Autowired private IDeviceRedisService deviceRedisService; + @Resource + SDKManager sdkManager; + /** * Subscribe to the devices that exist in the redis when the program starts, * to prevent the data from being different from the pilot side due to program interruptions. @@ -44,7 +48,7 @@ public void run(String... args) throws Exception { .map(Optional::get) .filter(device -> DeviceDomainEnum.DRONE != device.getDomain()) .forEach(device -> deviceService.subDeviceOnlineSubscribeTopic( - SDKManager.registerDevice(device.getDeviceSn(), device.getChildDeviceSn(), device.getDomain(), + sdkManager.registerDevice(device.getDeviceSn(), device.getChildDeviceSn(), device.getDomain(), device.getType(), device.getSubType(), device.getThingVersion(), deviceRedisService.getDeviceOnline(device.getChildDeviceSn()).map(DeviceDTO::getThingVersion).orElse(null)))); diff --git a/sample/src/main/java/com/dji/sample/component/AuthInterceptor.java b/sample/src/main/java/com/dji/sample/component/AuthInterceptor.java index 99334666..4cd0f377 100644 --- a/sample/src/main/java/com/dji/sample/component/AuthInterceptor.java +++ b/sample/src/main/java/com/dji/sample/component/AuthInterceptor.java @@ -11,8 +11,8 @@ import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.util.Optional; @Slf4j diff --git a/sample/src/main/java/com/dji/sample/component/CorsFilter.java b/sample/src/main/java/com/dji/sample/component/CorsFilter.java index a4c245f6..af3d8261 100644 --- a/sample/src/main/java/com/dji/sample/component/CorsFilter.java +++ b/sample/src/main/java/com/dji/sample/component/CorsFilter.java @@ -2,9 +2,9 @@ import org.springframework.stereotype.Component; -import javax.servlet.*; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.*; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import static com.dji.sample.component.AuthInterceptor.PARAM_TOKEN; diff --git a/sample/src/main/java/com/dji/sample/component/oss/service/impl/AliyunOssServiceImpl.java b/sample/src/main/java/com/dji/sample/component/oss/service/impl/AliyunOssServiceImpl.java index 03d65a6e..c66e67f2 100644 --- a/sample/src/main/java/com/dji/sample/component/oss/service/impl/AliyunOssServiceImpl.java +++ b/sample/src/main/java/com/dji/sample/component/oss/service/impl/AliyunOssServiceImpl.java @@ -86,6 +86,7 @@ public Boolean deleteObject(String bucket, String objectKey) { @Override public InputStream getObject(String bucket, String objectKey) { + //bug: ossClient.getObject -> OSSObject need to close manually. otherwise will hang up main thread to wait available connection. by witcom @2023.12.08 return ossClient.getObject(bucket, objectKey).getObjectContent(); } @@ -94,6 +95,7 @@ public void putObject(String bucket, String objectKey, InputStream input) { if (ossClient.doesObjectExist(bucket, objectKey)) { throw new RuntimeException("The filename already exists."); } + //bug: PutObjectResult need to close manually. otherwise will hang up main thread to wait available connection. by witcom @2023.12.08 PutObjectResult objectResult = ossClient.putObject(new PutObjectRequest(bucket, objectKey, input, new ObjectMetadata())); log.info("Upload FlighttaskCreateFile: {}", objectResult.getETag()); } diff --git a/sample/src/main/java/com/dji/sample/component/oss/service/impl/AmazonS3ServiceImpl.java b/sample/src/main/java/com/dji/sample/component/oss/service/impl/AmazonS3ServiceImpl.java index dabc0bd2..663819ce 100644 --- a/sample/src/main/java/com/dji/sample/component/oss/service/impl/AmazonS3ServiceImpl.java +++ b/sample/src/main/java/com/dji/sample/component/oss/service/impl/AmazonS3ServiceImpl.java @@ -19,7 +19,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import javax.annotation.PostConstruct; +import jakarta.annotation.PostConstruct; import java.io.InputStream; import java.net.URL; import java.util.ArrayList; diff --git a/sample/src/main/java/com/dji/sample/component/websocket/config/AuthPrincipalHandler.java b/sample/src/main/java/com/dji/sample/component/websocket/config/AuthPrincipalHandler.java index 05fbd2d1..7d04a1f9 100644 --- a/sample/src/main/java/com/dji/sample/component/websocket/config/AuthPrincipalHandler.java +++ b/sample/src/main/java/com/dji/sample/component/websocket/config/AuthPrincipalHandler.java @@ -11,7 +11,7 @@ import org.springframework.web.socket.WebSocketHandler; import org.springframework.web.socket.server.support.DefaultHandshakeHandler; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.security.Principal; import java.util.Map; import java.util.Optional; diff --git a/sample/src/main/java/com/dji/sample/control/controller/DockController.java b/sample/src/main/java/com/dji/sample/control/controller/DockController.java index 3146d9d2..2d91e44e 100644 --- a/sample/src/main/java/com/dji/sample/control/controller/DockController.java +++ b/sample/src/main/java/com/dji/sample/control/controller/DockController.java @@ -9,7 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import javax.validation.Valid; +import jakarta.validation.Valid; /** * @author sean diff --git a/sample/src/main/java/com/dji/sample/control/controller/DrcController.java b/sample/src/main/java/com/dji/sample/control/controller/DrcController.java index f40670cd..cf7f5635 100644 --- a/sample/src/main/java/com/dji/sample/control/controller/DrcController.java +++ b/sample/src/main/java/com/dji/sample/control/controller/DrcController.java @@ -11,8 +11,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletRequest; -import javax.validation.Valid; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM; diff --git a/sample/src/main/java/com/dji/sample/control/model/param/DrcModeParam.java b/sample/src/main/java/com/dji/sample/control/model/param/DrcModeParam.java index d483da1e..ae31f58b 100644 --- a/sample/src/main/java/com/dji/sample/control/model/param/DrcModeParam.java +++ b/sample/src/main/java/com/dji/sample/control/model/param/DrcModeParam.java @@ -7,8 +7,8 @@ import lombok.NoArgsConstructor; import org.hibernate.validator.constraints.Range; -import javax.validation.Valid; -import javax.validation.constraints.NotBlank; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotBlank; /** * @author sean diff --git a/sample/src/main/java/com/dji/sample/control/model/param/DronePayloadParam.java b/sample/src/main/java/com/dji/sample/control/model/param/DronePayloadParam.java index de9aa211..ae77c9c0 100644 --- a/sample/src/main/java/com/dji/sample/control/model/param/DronePayloadParam.java +++ b/sample/src/main/java/com/dji/sample/control/model/param/DronePayloadParam.java @@ -6,8 +6,8 @@ import lombok.Data; import org.hibernate.validator.constraints.Range; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; /** * @author sean diff --git a/sample/src/main/java/com/dji/sample/control/model/param/FlyToPointParam.java b/sample/src/main/java/com/dji/sample/control/model/param/FlyToPointParam.java index 4c964233..d6ad4837 100644 --- a/sample/src/main/java/com/dji/sample/control/model/param/FlyToPointParam.java +++ b/sample/src/main/java/com/dji/sample/control/model/param/FlyToPointParam.java @@ -6,9 +6,9 @@ import lombok.NoArgsConstructor; import org.hibernate.validator.constraints.Range; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import java.util.List; /** diff --git a/sample/src/main/java/com/dji/sample/control/model/param/PayloadCommandsParam.java b/sample/src/main/java/com/dji/sample/control/model/param/PayloadCommandsParam.java index f5c4a6e6..9005a9da 100644 --- a/sample/src/main/java/com/dji/sample/control/model/param/PayloadCommandsParam.java +++ b/sample/src/main/java/com/dji/sample/control/model/param/PayloadCommandsParam.java @@ -3,8 +3,8 @@ import com.dji.sample.control.model.enums.PayloadCommandsEnum; import lombok.Data; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/sample/src/main/java/com/dji/sample/control/model/param/RemoteDebugParam.java b/sample/src/main/java/com/dji/sample/control/model/param/RemoteDebugParam.java index 8678d3ae..154f2f83 100644 --- a/sample/src/main/java/com/dji/sample/control/model/param/RemoteDebugParam.java +++ b/sample/src/main/java/com/dji/sample/control/model/param/RemoteDebugParam.java @@ -2,7 +2,7 @@ import lombok.Data; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/sample/src/main/java/com/dji/sample/control/model/param/TakeoffToPointParam.java b/sample/src/main/java/com/dji/sample/control/model/param/TakeoffToPointParam.java index d2e79fcf..056542f3 100644 --- a/sample/src/main/java/com/dji/sample/control/model/param/TakeoffToPointParam.java +++ b/sample/src/main/java/com/dji/sample/control/model/param/TakeoffToPointParam.java @@ -8,9 +8,9 @@ import lombok.Data; import org.hibernate.validator.constraints.Range; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/sample/src/main/java/com/dji/sample/control/service/impl/ControlServiceImpl.java b/sample/src/main/java/com/dji/sample/control/service/impl/ControlServiceImpl.java index 530729ec..4bd5b0f1 100644 --- a/sample/src/main/java/com/dji/sample/control/service/impl/ControlServiceImpl.java +++ b/sample/src/main/java/com/dji/sample/control/service/impl/ControlServiceImpl.java @@ -68,6 +68,9 @@ public class ControlServiceImpl implements IControlService { @Qualifier("SDKWaylineService") private AbstractWaylineService abstractWaylineService; + @Autowired + SDKManager SDKManager; + private RemoteDebugHandler checkDebugCondition(String sn, RemoteDebugParam param, RemoteDebugMethodEnum controlMethodEnum) { RemoteDebugHandler handler = Objects.nonNull(controlMethodEnum.getClazz()) ? mapper.convertValue(Objects.nonNull(param) ? param : new Object(), controlMethodEnum.getClazz()) diff --git a/sample/src/main/java/com/dji/sample/control/service/impl/DrcServiceImpl.java b/sample/src/main/java/com/dji/sample/control/service/impl/DrcServiceImpl.java index 7aa86f33..29a61eca 100644 --- a/sample/src/main/java/com/dji/sample/control/service/impl/DrcServiceImpl.java +++ b/sample/src/main/java/com/dji/sample/control/service/impl/DrcServiceImpl.java @@ -84,6 +84,9 @@ public class DrcServiceImpl implements IDrcService { @Autowired private AbstractControlService abstractControlService; + @Autowired + SDKManager SDKManager; + @Override public void setDrcModeInRedis(String dockSn, String clientId) { RedisOpsUtils.setWithExpire(RedisConst.DRC_PREFIX + dockSn, clientId, RedisConst.DRC_MODE_ALIVE_SECOND); diff --git a/sample/src/main/java/com/dji/sample/manage/controller/DeviceFirmwareController.java b/sample/src/main/java/com/dji/sample/manage/controller/DeviceFirmwareController.java index 6425bbb2..1345028c 100644 --- a/sample/src/main/java/com/dji/sample/manage/controller/DeviceFirmwareController.java +++ b/sample/src/main/java/com/dji/sample/manage/controller/DeviceFirmwareController.java @@ -15,9 +15,9 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; diff --git a/sample/src/main/java/com/dji/sample/manage/controller/DeviceLogsController.java b/sample/src/main/java/com/dji/sample/manage/controller/DeviceLogsController.java index 3e08d533..18f3874f 100644 --- a/sample/src/main/java/com/dji/sample/manage/controller/DeviceLogsController.java +++ b/sample/src/main/java/com/dji/sample/manage/controller/DeviceLogsController.java @@ -13,8 +13,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.net.URL; import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM; diff --git a/sample/src/main/java/com/dji/sample/manage/controller/LiveStreamController.java b/sample/src/main/java/com/dji/sample/manage/controller/LiveStreamController.java index 27f1a64c..71ea56b4 100644 --- a/sample/src/main/java/com/dji/sample/manage/controller/LiveStreamController.java +++ b/sample/src/main/java/com/dji/sample/manage/controller/LiveStreamController.java @@ -10,7 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.util.List; import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM; diff --git a/sample/src/main/java/com/dji/sample/manage/controller/LoginController.java b/sample/src/main/java/com/dji/sample/manage/controller/LoginController.java index 9572dbb1..e74acd4b 100644 --- a/sample/src/main/java/com/dji/sample/manage/controller/LoginController.java +++ b/sample/src/main/java/com/dji/sample/manage/controller/LoginController.java @@ -12,8 +12,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.util.Optional; import static com.dji.sample.component.AuthInterceptor.PARAM_TOKEN; diff --git a/sample/src/main/java/com/dji/sample/manage/controller/TopologyController.java b/sample/src/main/java/com/dji/sample/manage/controller/TopologyController.java index 10908d27..15d23393 100644 --- a/sample/src/main/java/com/dji/sample/manage/controller/TopologyController.java +++ b/sample/src/main/java/com/dji/sample/manage/controller/TopologyController.java @@ -8,8 +8,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RestController; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.util.List; /** diff --git a/sample/src/main/java/com/dji/sample/manage/controller/UserController.java b/sample/src/main/java/com/dji/sample/manage/controller/UserController.java index 55369483..2706f8fd 100644 --- a/sample/src/main/java/com/dji/sample/manage/controller/UserController.java +++ b/sample/src/main/java/com/dji/sample/manage/controller/UserController.java @@ -8,7 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM; diff --git a/sample/src/main/java/com/dji/sample/manage/controller/WorkspaceController.java b/sample/src/main/java/com/dji/sample/manage/controller/WorkspaceController.java index 80110ac9..d1e2b5e8 100644 --- a/sample/src/main/java/com/dji/sample/manage/controller/WorkspaceController.java +++ b/sample/src/main/java/com/dji/sample/manage/controller/WorkspaceController.java @@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.util.Optional; import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM; diff --git a/sample/src/main/java/com/dji/sample/manage/model/common/HmsJsonUtil.java b/sample/src/main/java/com/dji/sample/manage/model/common/HmsJsonUtil.java index fbfe9167..83578f0a 100644 --- a/sample/src/main/java/com/dji/sample/manage/model/common/HmsJsonUtil.java +++ b/sample/src/main/java/com/dji/sample/manage/model/common/HmsJsonUtil.java @@ -7,7 +7,7 @@ import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Component; -import javax.annotation.PostConstruct; +import jakarta.annotation.PostConstruct; import java.io.IOException; import java.io.InputStream; diff --git a/sample/src/main/java/com/dji/sample/manage/model/param/DeviceFirmwareQueryParam.java b/sample/src/main/java/com/dji/sample/manage/model/param/DeviceFirmwareQueryParam.java index ffcc8fbc..0d0963f5 100644 --- a/sample/src/main/java/com/dji/sample/manage/model/param/DeviceFirmwareQueryParam.java +++ b/sample/src/main/java/com/dji/sample/manage/model/param/DeviceFirmwareQueryParam.java @@ -6,7 +6,7 @@ import lombok.Data; import lombok.NoArgsConstructor; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/sample/src/main/java/com/dji/sample/manage/model/param/DeviceFirmwareUpdateParam.java b/sample/src/main/java/com/dji/sample/manage/model/param/DeviceFirmwareUpdateParam.java index 45c357da..f105dd63 100644 --- a/sample/src/main/java/com/dji/sample/manage/model/param/DeviceFirmwareUpdateParam.java +++ b/sample/src/main/java/com/dji/sample/manage/model/param/DeviceFirmwareUpdateParam.java @@ -2,7 +2,7 @@ import lombok.Data; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/sample/src/main/java/com/dji/sample/manage/model/param/DeviceFirmwareUploadParam.java b/sample/src/main/java/com/dji/sample/manage/model/param/DeviceFirmwareUploadParam.java index deeb67fe..c8bb330b 100644 --- a/sample/src/main/java/com/dji/sample/manage/model/param/DeviceFirmwareUploadParam.java +++ b/sample/src/main/java/com/dji/sample/manage/model/param/DeviceFirmwareUploadParam.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.util.List; /** diff --git a/sample/src/main/java/com/dji/sample/manage/service/impl/DeviceLogsServiceImpl.java b/sample/src/main/java/com/dji/sample/manage/service/impl/DeviceLogsServiceImpl.java index 3f1593fb..b0cc0bdb 100644 --- a/sample/src/main/java/com/dji/sample/manage/service/impl/DeviceLogsServiceImpl.java +++ b/sample/src/main/java/com/dji/sample/manage/service/impl/DeviceLogsServiceImpl.java @@ -85,6 +85,9 @@ public class DeviceLogsServiceImpl extends AbstractLogService implements IDevice @Autowired private AbstractLogService abstractLogService; + @Autowired + SDKManager SDKManager; + @Override public PaginationData getUploadedLogs(String deviceSn, DeviceLogsQueryParam param) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() diff --git a/sample/src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java b/sample/src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java index 0ef03867..23bc57e3 100644 --- a/sample/src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java +++ b/sample/src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java @@ -125,6 +125,9 @@ public class DeviceServiceImpl implements IDeviceService { @Autowired private AbstractFirmwareService abstractFirmwareService; + @Autowired + SDKManager SDKManager; + @Override public void subDeviceOffline(String deviceSn) { // If no information about this device exists in the cache, the drone is considered to be offline. diff --git a/sample/src/main/java/com/dji/sample/manage/service/impl/LiveStreamServiceImpl.java b/sample/src/main/java/com/dji/sample/manage/service/impl/LiveStreamServiceImpl.java index 300c88ad..09d21225 100644 --- a/sample/src/main/java/com/dji/sample/manage/service/impl/LiveStreamServiceImpl.java +++ b/sample/src/main/java/com/dji/sample/manage/service/impl/LiveStreamServiceImpl.java @@ -44,6 +44,9 @@ public class LiveStreamServiceImpl implements ILiveStreamService { @Autowired private AbstractLivestreamService abstractLivestreamService; + @Autowired + SDKManager SDKManager; + @Override public List getLiveCapacity(String workspaceId) { diff --git a/sample/src/main/java/com/dji/sample/manage/service/impl/SDKDeviceService.java b/sample/src/main/java/com/dji/sample/manage/service/impl/SDKDeviceService.java index c449c9af..8643053d 100644 --- a/sample/src/main/java/com/dji/sample/manage/service/impl/SDKDeviceService.java +++ b/sample/src/main/java/com/dji/sample/manage/service/impl/SDKDeviceService.java @@ -57,6 +57,9 @@ public class SDKDeviceService extends AbstractDeviceService { @Autowired private IDevicePayloadService devicePayloadService; + @Autowired + SDKManager SDKManager; + @Override public TopicStatusResponse updateTopoOnline(TopicStatusRequest request, MessageHeaders headers) { UpdateTopoSubDevice updateTopoSubDevice = request.getData().getSubDevices().get(0); diff --git a/sample/src/main/java/com/dji/sample/map/controller/FlightAreaController.java b/sample/src/main/java/com/dji/sample/map/controller/FlightAreaController.java index 2bda1a7e..154a6fba 100644 --- a/sample/src/main/java/com/dji/sample/map/controller/FlightAreaController.java +++ b/sample/src/main/java/com/dji/sample/map/controller/FlightAreaController.java @@ -10,8 +10,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletRequest; -import javax.validation.Valid; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; import java.util.List; import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM; diff --git a/sample/src/main/java/com/dji/sample/map/controller/WorkspaceElementController.java b/sample/src/main/java/com/dji/sample/map/controller/WorkspaceElementController.java index 4afc12da..f525f024 100644 --- a/sample/src/main/java/com/dji/sample/map/controller/WorkspaceElementController.java +++ b/sample/src/main/java/com/dji/sample/map/controller/WorkspaceElementController.java @@ -14,9 +14,9 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.validation.Valid; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; import java.util.List; import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM; diff --git a/sample/src/main/java/com/dji/sample/map/model/dto/FlightAreaContent.java b/sample/src/main/java/com/dji/sample/map/model/dto/FlightAreaContent.java index 6c93e5f8..88f48dcf 100644 --- a/sample/src/main/java/com/dji/sample/map/model/dto/FlightAreaContent.java +++ b/sample/src/main/java/com/dji/sample/map/model/dto/FlightAreaContent.java @@ -7,8 +7,8 @@ import lombok.Data; import lombok.NoArgsConstructor; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/sample/src/main/java/com/dji/sample/map/model/param/PostFlightAreaParam.java b/sample/src/main/java/com/dji/sample/map/model/param/PostFlightAreaParam.java index dbeae02e..1e2b8ca0 100644 --- a/sample/src/main/java/com/dji/sample/map/model/param/PostFlightAreaParam.java +++ b/sample/src/main/java/com/dji/sample/map/model/param/PostFlightAreaParam.java @@ -4,8 +4,8 @@ import com.dji.sdk.cloudapi.flightarea.GeofenceTypeEnum; import lombok.Data; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; /** * @author sean diff --git a/sample/src/main/java/com/dji/sample/map/model/param/SyncFlightAreaParam.java b/sample/src/main/java/com/dji/sample/map/model/param/SyncFlightAreaParam.java index c21b8fdc..3428b950 100644 --- a/sample/src/main/java/com/dji/sample/map/model/param/SyncFlightAreaParam.java +++ b/sample/src/main/java/com/dji/sample/map/model/param/SyncFlightAreaParam.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.util.List; /** diff --git a/sample/src/main/java/com/dji/sample/map/service/impl/FlightAreaServiceImpl.java b/sample/src/main/java/com/dji/sample/map/service/impl/FlightAreaServiceImpl.java index 8d210ddd..04b3d5ae 100644 --- a/sample/src/main/java/com/dji/sample/map/service/impl/FlightAreaServiceImpl.java +++ b/sample/src/main/java/com/dji/sample/map/service/impl/FlightAreaServiceImpl.java @@ -77,6 +77,9 @@ public class FlightAreaServiceImpl extends AbstractFlightAreaService implements @Autowired private ObjectMapper objectMapper; + @Autowired + SDKManager sdkManager; + @Override public Optional getFlightAreaByAreaId(String areaId) { List properties = flightAreaPropertyServices.getPropertyByElementIds(List.of(areaId)); @@ -162,7 +165,7 @@ public void syncFlightArea(String workspaceId, List deviceSns) { if (deviceOpt.isEmpty() || !workspaceId.equals(deviceOpt.get().getWorkspaceId())) { throw new RuntimeException(CommonErrorEnum.ILLEGAL_ARGUMENT.getMessage()); } - TopicServicesResponse response = abstractFlightAreaService.flightAreasUpdate(SDKManager.getDeviceSDK(deviceSn)); + TopicServicesResponse response = abstractFlightAreaService.flightAreasUpdate(sdkManager.getDeviceSDK(deviceSn)); if (!response.getData().getResult().isSuccess()) { throw new RuntimeException(response.getData().getResult().getMessage()); } diff --git a/sample/src/main/java/com/dji/sample/media/controller/FileController.java b/sample/src/main/java/com/dji/sample/media/controller/FileController.java index 39340141..49e8f2da 100644 --- a/sample/src/main/java/com/dji/sample/media/controller/FileController.java +++ b/sample/src/main/java/com/dji/sample/media/controller/FileController.java @@ -7,7 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URL; diff --git a/sample/src/main/java/com/dji/sample/media/controller/MediaController.java b/sample/src/main/java/com/dji/sample/media/controller/MediaController.java index ec21a548..eb6d0c74 100644 --- a/sample/src/main/java/com/dji/sample/media/controller/MediaController.java +++ b/sample/src/main/java/com/dji/sample/media/controller/MediaController.java @@ -8,9 +8,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RestController; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.validation.Valid; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; import java.util.List; /** diff --git a/sample/src/main/java/com/dji/sample/storage/controller/StorageController.java b/sample/src/main/java/com/dji/sample/storage/controller/StorageController.java index 1097cb1f..7dfe3b5c 100644 --- a/sample/src/main/java/com/dji/sample/storage/controller/StorageController.java +++ b/sample/src/main/java/com/dji/sample/storage/controller/StorageController.java @@ -7,8 +7,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RestController; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; /** * @author sean diff --git a/sample/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java b/sample/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java index 7b877f49..bfba1438 100644 --- a/sample/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java +++ b/sample/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java @@ -15,11 +15,11 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; import java.io.IOException; import java.net.URL; import java.sql.SQLException; diff --git a/sample/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java b/sample/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java index 5d8c2594..cdbcc08a 100644 --- a/sample/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java +++ b/sample/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java @@ -11,8 +11,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletRequest; -import javax.validation.Valid; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; import java.sql.SQLException; import java.util.Set; diff --git a/sample/src/main/java/com/dji/sample/wayline/model/param/CreateJobParam.java b/sample/src/main/java/com/dji/sample/wayline/model/param/CreateJobParam.java index f1cdeddf..c4e5433e 100644 --- a/sample/src/main/java/com/dji/sample/wayline/model/param/CreateJobParam.java +++ b/sample/src/main/java/com/dji/sample/wayline/model/param/CreateJobParam.java @@ -6,8 +6,8 @@ import lombok.Data; import org.hibernate.validator.constraints.Range; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import java.util.List; /** diff --git a/sample/src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java b/sample/src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java index 938cd806..a7589e63 100644 --- a/sample/src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java +++ b/sample/src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java @@ -62,6 +62,9 @@ public class FlightTaskServiceImpl extends AbstractWaylineService implements IFl @Autowired private ObjectMapper mapper; + @Autowired + SDKManager SDKManager; + @Autowired private IWebSocketMessageService websocketMessageService; diff --git a/src/main/java/com/dji/sdk/cloudapi/wayline/ExecutionStepEnum.java b/src/main/java/com/dji/sdk/cloudapi/wayline/ExecutionStepEnum.java new file mode 100644 index 00000000..8a4e2873 --- /dev/null +++ b/src/main/java/com/dji/sdk/cloudapi/wayline/ExecutionStepEnum.java @@ -0,0 +1,67 @@ +package com.dji.sdk.cloudapi.wayline; + +import com.dji.sdk.exception.CloudSDKException; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +import java.util.Arrays; + +/** + * @author sean + * @version 1.7 + * @date 2023/6/6 + */ +public enum ExecutionStepEnum { + + STARTING(0, 4, "MissionCenter starting, checking and resuming"), + + WAITING_STATE(5, 18, "Waiting state"), + + EXECUTING(19, 20, "Task executing"), + + RTH(21, 29, "Returning to home"), + + PULLING_LOGS(30, 39, "Pulling logs"), + + COMPLETE(40, 65534, "Interaction completed"), + + UNKNOWN(65535, 65535, "Unknown"); + + private final int min; + + private final int max; + + private final String msg; + + ExecutionStepEnum(int min, int max, String msg) { + this.min = min; + this.max = max; + this.msg = msg; + } + + @JsonValue + public int getMin() { + return min; + } + + public int getMax() { + return max; + } + + public String getMsg() { + return msg; + } + + //witcom: 这个函数跑不进来,跑了下面的函数,导致FlightTaskProgress报不上来 + @JsonCreator + public static ExecutionStepEnum find(int step) { + return Arrays.stream(values()).filter(stepEnum -> stepEnum.min <= step && stepEnum.max >= step).findAny() + .orElseThrow(() -> new CloudSDKException(ExecutionStepEnum.class, step)); + } + +// @JsonCreator +// public static ExecutionStepEnum find(String msg) { +// return Arrays.stream(values()).filter(stepEnum -> stepEnum.msg.equals(msg)).findAny() +// .orElseThrow(() -> new CloudSDKException(ExecutionStepEnum.class, msg)); +// } +}