package com.dji.sdk.cloudapi.wayline; import com.dji.sdk.annotations.CloudSDKVersion; import com.dji.sdk.cloudapi.device.ExitWaylineWhenRcLostEnum; import com.dji.sdk.common.BaseModel; 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; /** * @author sean * @version 1.7 * @date 2023/6/6 */ public class FlighttaskPrepareRequest extends BaseModel { /** * Task ID */ @NotNull @Pattern(regexp = "^[^<>:\"/|?*._\\\\]+$") private String flightId; /** * Time to execute * Millisecond timestamp of task execution time. Optional field. * When the `task_type` is 0 or 1, it is required. When the `task_type` is 2, it is not required. */ @Min(123456789012L) private Long executeTime; /** * Task type * The execution time of immediate task and timed task are defined by `execute_time`. * The conditional task supports the task readiness condition defined by `ready_conditions`. * The task can be executed if conditions are satisfied within a specified period. * Immediate task has the highest priority. Timed task and conditional task have the same priority. */ @NotNull private TaskTypeEnum taskType; /** * Wayline type */ // @NotNull private WaylineTypeEnum waylineType; /** * Wayline file object */ @NotNull @Valid private FlighttaskFile file; /** * Task readiness condition */ @Valid private ReadyConditions readyConditions; /** * Task executable condition */ @Valid private ExecutableConditions executableConditions; /** * Wayline breakpoint information */ @Valid private FlighttaskBreakPoint breakPoint; /** * Height for RTH */ @NotNull @Min(20) @Max(1500) private Integer rthAltitude; /** * Remote controller out of control action * Out of control action: the current fixed transmitted value is 0, meaning Return-to-Home (RTH). * Note that this enumeration value definition is inconsistent with the flight control and dock definitions, * and a conversion exists at the dock end. */ @NotNull private OutOfControlActionEnum outOfControlAction; /** * wayline out of control action * consistent with the KMZ file */ @NotNull private ExitWaylineWhenRcLostEnum exitWaylineWhenRcLost; @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0) private RthModeEnum rthMode = RthModeEnum.PRESET_HEIGHT; @Valid @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_0) private SimulateMission simulateMission; @NotNull @CloudSDKVersion(since = CloudSDKVersionEnum.V1_0_1, include = GatewayTypeEnum.DOCK2) private WaylinePrecisionTypeEnum waylinePrecisionType; public FlighttaskPrepareRequest() {} @Override public String toString() { return "FlighttaskPrepareRequest{" + "flightId='" + flightId + '\'' + ", executeTime=" + executeTime + ", taskType=" + taskType + ", waylineType=" + waylineType + ", file=" + file + ", readyConditions=" + readyConditions + ", executableConditions=" + executableConditions + ", breakPoint=" + breakPoint + ", rthAltitude=" + rthAltitude + ", outOfControlAction=" + outOfControlAction + ", exitWaylineWhenRcLost=" + exitWaylineWhenRcLost + ", rthMode=" + rthMode + ", simulateMission=" + simulateMission + ", waylinePrecisionType=" + waylinePrecisionType + '}'; } public String getFlightId() { return flightId; } public FlighttaskPrepareRequest setFlightId(String flightId) { this.flightId = flightId; return this; } public Long getExecuteTime() { return executeTime; } public FlighttaskPrepareRequest setExecuteTime(Long executeTime) { this.executeTime = executeTime; return this; } public TaskTypeEnum getTaskType() { return taskType; } public FlighttaskPrepareRequest setTaskType(TaskTypeEnum taskType) { this.taskType = taskType; return this; } public WaylineTypeEnum getWaylineType() { return waylineType; } public FlighttaskPrepareRequest setWaylineType(WaylineTypeEnum waylineType) { this.waylineType = waylineType; return this; } public FlighttaskFile getFile() { return file; } public FlighttaskPrepareRequest setFile(FlighttaskFile file) { this.file = file; return this; } public ReadyConditions getReadyConditions() { return readyConditions; } public FlighttaskPrepareRequest setReadyConditions(ReadyConditions readyConditions) { this.readyConditions = readyConditions; return this; } public ExecutableConditions getExecutableConditions() { return executableConditions; } public FlighttaskPrepareRequest setExecutableConditions(ExecutableConditions executableConditions) { this.executableConditions = executableConditions; return this; } public FlighttaskBreakPoint getBreakPoint() { return breakPoint; } public FlighttaskPrepareRequest setBreakPoint(FlighttaskBreakPoint breakPoint) { this.breakPoint = breakPoint; return this; } public Integer getRthAltitude() { return rthAltitude; } public FlighttaskPrepareRequest setRthAltitude(Integer rthAltitude) { this.rthAltitude = rthAltitude; return this; } public OutOfControlActionEnum getOutOfControlAction() { return outOfControlAction; } public FlighttaskPrepareRequest setOutOfControlAction(OutOfControlActionEnum outOfControlAction) { this.outOfControlAction = outOfControlAction; return this; } public ExitWaylineWhenRcLostEnum getExitWaylineWhenRcLost() { return exitWaylineWhenRcLost; } public FlighttaskPrepareRequest setExitWaylineWhenRcLost(ExitWaylineWhenRcLostEnum exitWaylineWhenRcLost) { this.exitWaylineWhenRcLost = exitWaylineWhenRcLost; return this; } public RthModeEnum getRthMode() { return rthMode; } public FlighttaskPrepareRequest setRthMode(RthModeEnum rthMode) { this.rthMode = rthMode; return this; } public SimulateMission getSimulateMission() { return simulateMission; } public FlighttaskPrepareRequest setSimulateMission(SimulateMission simulateMission) { this.simulateMission = simulateMission; return this; } public WaylinePrecisionTypeEnum getWaylinePrecisionType() { return waylinePrecisionType; } public FlighttaskPrepareRequest setWaylinePrecisionType(WaylinePrecisionTypeEnum waylinePrecisionType) { this.waylinePrecisionType = waylinePrecisionType; return this; } }