Browse Source

新建航线任务参数添加 返回任务名称

S0025136190 1 year ago
parent
commit
c3c43ebae2

+ 23 - 14
Backend/cloud-sdk/src/main/java/com/dji/sdk/cloudapi/wayline/FlighttaskProgressExt.java

@@ -18,24 +18,18 @@ public class FlighttaskProgressExt {
 
     private String trackId;
 
-    private ProgressExtBreakPoint breakPoint;
-
-    /**
-     * Wayline mission state
-     */
-    @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0)
-    private WaylineMissionStateEnum waylineMissionState;
+    private String jobName;
 
-    /**
-     * This includes the transitional phase of entering the flight path.
-     * For example, 0 indicates that the spacecraft is entering or already executing the first route.
-     */
-    @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0)
-    private Integer waylineId;
+    public String getJobName() {
+        return jobName;
+    }
 
-    public FlighttaskProgressExt() {
+    public void setJobName(String jobName) {
+        this.jobName = jobName;
     }
 
+    private ProgressExtBreakPoint breakPoint;
+
     @Override
     public String toString() {
         return "FlighttaskProgressExt{" +
@@ -43,12 +37,27 @@ public class FlighttaskProgressExt {
                 ", mediaCount=" + mediaCount +
                 ", flightId='" + flightId + '\'' +
                 ", trackId='" + trackId + '\'' +
+                ", jobName='" + jobName + '\'' +
                 ", breakPoint=" + breakPoint +
                 ", waylineMissionState=" + waylineMissionState +
                 ", waylineId=" + waylineId +
                 '}';
     }
 
+    /**
+     * Wayline mission state
+     */
+    @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0)
+    private WaylineMissionStateEnum waylineMissionState;
+
+    /**
+     * This includes the transitional phase of entering the flight path.
+     * For example, 0 indicates that the spacecraft is entering or already executing the first route.
+     */
+    @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0)
+    private Integer waylineId;
+
+
     public Integer getCurrentWaypointIndex() {
         return currentWaypointIndex;
     }

+ 3 - 0
Backend/sample/src/main/java/com/dji/sample/wayline/model/dto/WaylineJobDTO.java

@@ -1,5 +1,6 @@
 package com.dji.sample.wayline.model.dto;
 
+import com.dji.sdk.cloudapi.device.ExitWaylineWhenRcLostEnum;
 import com.dji.sdk.cloudapi.wayline.*;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
@@ -74,4 +75,6 @@ public class WaylineJobDTO {
     private FlighttaskBreakPoint breakPoint;
 
     private String errorText;
+
+    private ExitWaylineWhenRcLostEnum exitWaylineWhenRcLost;
 }

+ 3 - 0
Backend/sample/src/main/java/com/dji/sample/wayline/model/entity/WaylineJobEntity.java

@@ -88,4 +88,7 @@ public class WaylineJobEntity implements Serializable {
 
     @TableField("wayline_precision_type")
     private Integer waylinePrecisionType;
+
+    @TableField("exit_wayline_when_rc_lost")
+    private Integer exitWaylineWhenRcLost;
 }

+ 5 - 1
Backend/sample/src/main/java/com/dji/sample/wayline/model/param/CreateJobParam.java

@@ -1,7 +1,9 @@
 package com.dji.sample.wayline.model.param;
 
+import com.dji.sdk.cloudapi.device.ExitWaylineWhenRcLostEnum;
 import com.dji.sdk.cloudapi.wayline.OutOfControlActionEnum;
 import com.dji.sdk.cloudapi.wayline.TaskTypeEnum;
+import com.dji.sdk.cloudapi.wayline.WaylinePrecisionTypeEnum;
 import com.dji.sdk.cloudapi.wayline.WaylineTypeEnum;
 import lombok.Data;
 import org.hibernate.validator.constraints.Range;
@@ -52,5 +54,7 @@ public class CreateJobParam {
 
     private String breakpointContinuation;
 
-    private Integer waylinePrecisionType;
+    private WaylinePrecisionTypeEnum waylinePrecisionType;
+
+    private ExitWaylineWhenRcLostEnum exitWaylineWhenRcLost;
 }

+ 4 - 1
Backend/sample/src/main/java/com/dji/sample/wayline/service/impl/SDKWaylineService.java

@@ -135,7 +135,10 @@ public class SDKWaylineService extends AbstractWaylineService {
             waylineRedisService.delRunningWaylineJob(response.getGateway());
             waylineRedisService.delPausedWaylineJob(response.getBid());
         }
-
+        Optional<WaylineJobDTO> dto = waylineJobService.getJobByJobId(deviceOpt.get().getWorkspaceId(),response.getBid());
+        if(dto.isPresent()) {
+            eventsReceiver.getOutput().getExt().setJobName(dto.get().getJobName());
+        }
         webSocketMessageService.sendBatch(deviceOpt.get().getWorkspaceId(), UserTypeEnum.WEB.getVal(),
                 BizCodeEnum.FLIGHT_TASK_PROGRESS.getCode(), eventsReceiver);
 

+ 6 - 5
Backend/sample/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java

@@ -20,10 +20,7 @@ import com.dji.sample.wayline.model.param.CreateJobParam;
 import com.dji.sample.wayline.service.IWaylineFileService;
 import com.dji.sample.wayline.service.IWaylineJobService;
 import com.dji.sample.wayline.service.IWaylineRedisService;
-import com.dji.sdk.cloudapi.device.DockModeCodeEnum;
-import com.dji.sdk.cloudapi.device.DroneModeCodeEnum;
-import com.dji.sdk.cloudapi.device.OsdDock;
-import com.dji.sdk.cloudapi.device.OsdDockDrone;
+import com.dji.sdk.cloudapi.device.*;
 import com.dji.sdk.cloudapi.wayline.*;
 import com.dji.sdk.common.Pagination;
 import com.dji.sdk.common.PaginationData;
@@ -102,7 +99,8 @@ public class WaylineJobServiceImpl implements IWaylineJobService {
                 .rthAltitude(param.getRthAltitude())
                 .mediaCount(0)
                 .breakpointContinuation(param.getBreakpointContinuation())
-                .waylinePrecisionType(param.getWaylinePrecisionType())
+                .waylinePrecisionType(param.getWaylinePrecisionType().getType())
+                .exitWaylineWhenRcLost(param.getExitWaylineWhenRcLost().getAction())
                 .build();
 
         return insertWaylineJob(jobEntity);
@@ -274,6 +272,9 @@ public class WaylineJobServiceImpl implements IWaylineJobService {
                 .breakpointContinuation(Objects.nonNull(entity.getBreakpointContinuation()) ? Boolean.parseBoolean(entity.getBreakpointContinuation()):null)
                 .waylinePrecisionType(entity.getWaylinePrecisionType())
                 .mediaCount(entity.getMediaCount());
+        if (Objects.nonNull(entity.getExitWaylineWhenRcLost())) {
+            builder.exitWaylineWhenRcLost(ExitWaylineWhenRcLostEnum.find(entity.getExitWaylineWhenRcLost()));
+        }
 
         if (Objects.nonNull(entity.getEndTime())) {
             builder.endTime(LocalDateTime.ofInstant(Instant.ofEpochMilli(entity.getEndTime()), ZoneId.systemDefault()));