package com.dji.sample.control.controller; import com.dji.sample.control.model.enums.DroneAuthorityEnum; import com.dji.sample.control.model.enums.RemoteDebugMethodEnum; import com.dji.sample.control.model.param.*; import com.dji.sample.control.service.IControlService; import com.dji.sdk.common.HttpResultResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; /** * @author sean * @version 1.2 * @date 2022/7/29 */ @RestController @Slf4j @RequestMapping("${url.control.prefix}${url.control.version}/devices") public class DockController { @Autowired private IControlService controlService; @PostMapping("/{sn}/jobs/{service_identifier}")//jjjjjjjjjjjj public HttpResultResponse createControlJob(@PathVariable String sn, @PathVariable("service_identifier") String serviceIdentifier, @Valid @RequestBody(required = false) RemoteDebugParam param) { return controlService.controlDockDebug(sn, RemoteDebugMethodEnum.find(serviceIdentifier), param); } @PostMapping("/jobs/fly-to-point") public HttpResultResponse flyToPoint(@RequestParam(value = "device_sn") String sn, @Valid @RequestBody FlyToPointParam param) { return controlService.flyToPoint(sn, param); } @DeleteMapping("/jobs/fly-to-point") public HttpResultResponse flyToPointStop(@RequestParam(value = "device_sn") String sn) { return controlService.flyToPointStop(sn); } @PostMapping("/jobs/takeoff-to-point") public HttpResultResponse takeoffToPoint(@RequestParam(value = "device_sn") String sn, @Valid @RequestBody TakeoffToPointParam param) { return controlService.takeoffToPoint(sn, param); } @PostMapping("/authority/flight") public HttpResultResponse seizeFlightAuthority(@RequestParam(value = "device_sn") String sn) { return controlService.seizeAuthority(sn, DroneAuthorityEnum.FLIGHT, null); } @PostMapping("/authority/payload") public HttpResultResponse seizePayloadAuthority(@RequestParam(value = "device_sn") String sn, @Valid @RequestBody DronePayloadParam param) { return controlService.seizeAuthority(sn, DroneAuthorityEnum.PAYLOAD, param); } @PostMapping("/{sn}/payload/commands") public HttpResultResponse payloadCommands(@PathVariable String sn, @Valid @RequestBody PayloadCommandsParam param) throws Exception { param.setSn(sn); return controlService.payloadCommands(param); } /** * cameraFrameZoom. * @param sn * @return */ // @PostMapping("/camera-frame/zoom") // public HttpResultResponse cameraFrameZoom(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody CameraFrameZoomParam param) { // return controlService.cameraFrameZoom(sn,param); // } /** * cameraModeSwitch. * @param sn * @return */ @PostMapping("/camera-mode/switch") public HttpResultResponse cameraModeSwitch(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody CameraModeSwitchParam param) { return controlService.cameraModeSwitch(sn,param); } /** * cameraPhotoTake. * @param sn * @return */ @PostMapping("/camera-photo/take") public HttpResultResponse cameraPhotoTake(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody CameraPhotoTakeParam param) { return controlService.cameraPhotoTake(sn,param); } /** * cameraPhotoStop. * @param sn * @return */ @PostMapping("/camera-photo/stop") public HttpResultResponse cameraPhotoStop(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody CameraPhotoStopParam param) { return controlService.cameraPhotoStop(sn,param); } /** * cameraRecordingStart. * @param sn * @return */ @PostMapping("/camera-recording/start") public HttpResultResponse cameraRecordingStart(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody CameraRecordingStartParam param) { return controlService.cameraRecordingStart(sn,param); } /** * cameraRecordingStop. * @param sn * @return */ @PostMapping("/camera-recording/stop") public HttpResultResponse cameraRecordingStop(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody CameraRecordingStopParam param) { return controlService.cameraRecordingStop(sn,param); } /** * cameraScreenDrag. * @param sn * @return */ // @PostMapping("/camera-screen/drag") // public HttpResultResponse cameraScreenDrag(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody CameraScreenDragParam param) { // return controlService.cameraScreenDrag(sn,param); // } /** * cameraFocalLengthSet. * @param sn * @return */ @PostMapping("/camera-focal-length/set") public HttpResultResponse cameraFocalLengthSet(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody CameraFocalLengthSetParam param) { return controlService.cameraFocalLengthSet(sn,param); } /** * gimbalReset. * @param sn * @return */ @PostMapping("/gimbal/reset") public HttpResultResponse gimbalReset(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody GimbalResetParam param) { return controlService.gimbalReset(sn,param); } /** * cameraScreenSplit. * @param sn * @return */ @PostMapping("/camera-screen/split") public HttpResultResponse cameraScreenSplit(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody CameraScreenSplitParam param) { return controlService.cameraScreenSplit(sn,param); } /** * photoStorageSet. * @param sn * @return */ @PostMapping("/photo-storage/set") public HttpResultResponse photoStorageSet(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody PhotoStorageSetParam param) { return controlService.photoStorageSet(sn,param); } /** * videoStorageSet. * @param sn * @return */ @PostMapping("/video-storage/set") public HttpResultResponse videoStorageSet(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody VideoStorageSetParam param) { return controlService.videoStorageSet(sn,param); } /** * cameraExposureModeSet. * @param sn * @return */ @PostMapping("/camera-exposure-mode/set") public HttpResultResponse cameraExposureModeSet(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody CameraExposureModeSetParam param) { return controlService.cameraExposureModeSet(sn,param); } /** * cameraExposureSet. * @param sn * @return */ @PostMapping("/camera-exposure/set") public HttpResultResponse cameraExposureSet(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody CameraExposureSetParam param) { return controlService.cameraExposureSet(sn,param); } /** * cameraFocusModeSet. * @param sn * @return */ @PostMapping("/camera-focus-mode/set") public HttpResultResponse cameraFocusModeSet(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody CameraFocusModeSetParam param) { return controlService.cameraFocusModeSet(sn,param); } /** * cameraFocusValueSet. * @param sn * @return */ @PostMapping("/camera-focus-value/set") public HttpResultResponse cameraFocusValueSet(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody CameraFocusValueSetParam param) { return controlService.cameraFocusValueSet(sn,param); } /** * cameraPointFocusAction. * @param sn * @return */ @PostMapping("/camera-point-focus-action") public HttpResultResponse cameraPointFocusAction(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody CameraPointFocusActionParam param) { return controlService.cameraPointFocusAction(sn,param); } /** * irMeteringModeSet. * @param sn * @return */ @PostMapping("/ir-metering-mode/set") public HttpResultResponse irMeteringModeSet(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody IrMeteringModeSetParam param) { return controlService.irMeteringModeSet(sn,param); } /** * irMeteringPointSet. * @param sn * @return */ @PostMapping("/ir-metering-point/set") public HttpResultResponse irMeteringPointSet(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody IrMeteringPointSetParam param) { return controlService.irMeteringPointSet(sn,param); } /** * irMeteringAreaSet. * @param sn * @return */ @PostMapping("/ir-metering-area/set") public HttpResultResponse irMeteringAreaSet(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody IrMeteringAreaSetParam param) { return controlService.irMeteringAreaSet(sn,param); } /** * flyToPointUpdate. * @param sn * @return */ @PostMapping("/fly-to-point/update") public HttpResultResponse flyToPointUpdate(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody FlyToPointUpdateParam param) { return controlService.flyToPointUpdate(sn,param); } /** * cameraAim. * @param sn * @return */ @PostMapping("/camera/aim") public HttpResultResponse cameraAim(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody CameraAimParam param) { return controlService.cameraAim(sn,param); } /** * cameraLookAt. * @param sn * @return */ @PostMapping("/camera/look-at") public HttpResultResponse cameraLookAt(@RequestParam(value = "device_sn") String sn,@Valid @RequestBody CameraLookAtParam param) { return controlService.cameraLookAt(sn,param); } }