DJI Mobile SDK Documentation

      class NSError

      @interface NSError (DJISDK)
      Header:NSError+DJISDK.h
      Description:

      NSError's DJISDK category. It contains methods to create custom NSErrors.

      Class Members:
      Get DJISDKError
      class method
      class method DJISDKErrorForCode
      + (_Nullable instancetype)DJISDKErrorForCode:(NSInteger)errorCode
      Header:NSError+DJISDK.h
      Description:

      Get DJISDKError.

      Input Parameters:
      NSInteger errorCodeerrorCode for DJISDKError.
      Return:
      _Nullable instancetypeAn NSError object initialized with errorCode. If the errorCode was 0, returns nil.
      Get DJISDKCameraError
      class method
      class method DJISDKCameraErrorForCode
      + (_Nullable instancetype)DJISDKCameraErrorForCode:(NSInteger)errorCode
      Header:NSError+DJISDK.h
      Description:

      Get DJISDKCameraError.

      Input Parameters:
      NSInteger errorCodeerrorCode for DJISDKCameraError.
      Return:
      _Nullable instancetypeAn NSError object initialized with errorCode. If the errorCode was 0, returns nil.
      Get DJISDKFlightControllerError
      class method
      class method DJISDKFlightControllerErrorForCode
      + (_Nullable instancetype)DJISDKFlightControllerErrorForCode:(NSInteger)errorCode
      Header:NSError+DJISDK.h
      Description:

      Get DJISDKFlightControllerError.

      Input Parameters:
      NSInteger errorCodeerrorCode for DJISDKFlightControllerError.
      Return:
      _Nullable instancetypeAn NSError object initialized with errorCode. If the errorCode was 0, returns nil.
      Get DJISDKMissionError
      class method
      class method DJISDKMissionErrorForCode
      + (_Nullable instancetype)DJISDKMissionErrorForCode:(NSInteger)errorCode
      Header:NSError+DJISDK.h
      Description:

      Get DJISDKMissionError.

      Input Parameters:
      NSInteger errorCodeerrorCode for DJISDKMissionError.
      Return:
      _Nullable instancetypeAn NSError object initialized with errorCode. If the errorCode was 0, returns nil.
      Get DJISDKRegistrationError
      class method
      class method DJISDKRegistrationErrorForCode
      + (_Nullable instancetype)DJISDKRegistrationErrorForCode:(DJISDKRegistrationError)errorCode
      Header:NSError+DJISDK.h
      Description:

      Get DJISDKRegistrationError.

      Input Parameters:
      DJISDKRegistrationError errorCodeerrorCode for DJISDKRegistrationError.
      Return:
      _Nullable instancetypeAn NSError object initialized with errorCode. If the errorCode was 0, returns nil.
      Get DJISDKFlySafeError
      class method
      class method DJISDKFlySafeErrorForCode
      + (_Nullable instancetype)DJISDKFlySafeErrorForCode:(DJISDKFlySafeError)errorCode
      Header:NSError+DJISDK.h
      Description:

      Get DJISDKFlySafeError.

      Input Parameters:
      DJISDKFlySafeError errorCodeerrorCode for DJISDKFlySafeError.
      Return:
      _Nullable instancetypeAn NSError object initialized with errorCode. If the errorCode was 0, returns nil.
      Get DJIFlightHubError
      class method
      class method DJISDKFlightHubErrorForCode
      + (_Nullable instancetype)DJISDKFlightHubErrorForCode:(DJISDKFlightHubError)errorCode
      Header:NSError+DJISDK.h
      Description:

      Returns the specific error in the DJISDKFlightHubError according to the error code.

      Input Parameters:
      DJISDKFlightHubError errorCodeerrorCode for DJISDKFlightHubError.
      Return:
      _Nullable instancetypeAn NSError object initialized with errorCode. If the errorCode was 0, returns nil.
      class method DJIRTKNetworkServiceErrorForCode
      + (_Nullable instancetype)DJIRTKNetworkServiceErrorForCode:(DJIRTKNetworkServiceError)errorCode
      Header:NSError+DJISDK.h
      Description:

      Get DJIRTKNetworkServiceError.

      Input Parameters:
      DJIRTKNetworkServiceError errorCodeerrorCode for DJIRTKNetworkServiceError.
      Return:
      _Nullable instancetypeAn NSError object initialized with errorCode. If the errorCode was 0, returns nil.
      Get AggregationError
      class method
      class method DJIAccessoryAggregationErrorForCode
      + (_Nullable instancetype)DJIAccessoryAggregationErrorForCode:(DJIAccessoryAggregationError)errorCode
      Header:NSError+DJISDK.h
      Description:

      Get DJIAccessoryAggregationError.

      Input Parameters:
      DJIAccessoryAggregationError errorCodeerrorCode for DJIAccessoryAggregationError.
      Return:
      _Nullable instancetypeAn NSError object initialized with errorCode. If the errorCode was 0, returns nil.
      Get DJIAccessLockerError
      class method
      class method DJIAccessLockerErrorForCode
      + (_Nullable instancetype)DJIAccessLockerErrorForCode:(DJIAccessLockerError)errorCode
      Header:NSError+DJISDK.h
      Description:

      Get DJIAccessoryAggregationError.

      Input Parameters:
      DJIAccessLockerError errorCodeerrorCode for DJIAccessoryAggregationError.
      Return:
      _Nullable instancetypeAn NSError object initialized with errorCode. If the errorCode was 0, returns nil.
      Get DJISDKError with Params
      class method
      class method DJISDKErrorForCode:domain:desc
      + (_Nullable instancetype)DJISDKErrorForCode:(NSInteger)errorCode domain:(NSString *_Nonnull)errorDomain desc:(const NSString *_Nonnull)desc
      Header:NSError+DJISDK.h
      Description:

      Get DJISDKError.

      Input Parameters:
      NSInteger errorCodeError code for DJISDKError.
      NSString *_Nonnull errorDomainDomain for DJISDKError.
      const NSString *_Nonnull descDescription for DJISDKError.
      Return:
      _Nullable instancetypeAn NSError object initialized with errorCode, errorDomain and desc.
      extern DJISDKErrorDomain
      FOUNDATION_EXPORT NSString * _Nonnull const DJISDKErrorDomain
      Header:NSError+DJISDK.h
      Description:

      SDK common error domain.

      extern DJISDKCameraErrorDomain
      FOUNDATION_EXPORT NSString *_Nonnull const DJISDKCameraErrorDomain
      Header:NSError+DJISDK.h
      Description:

      SDK camera error domain.

      extern DJISDKMissionErrorDomain
      FOUNDATION_EXPORT NSString *_Nonnull const DJISDKMissionErrorDomain
      Header:NSError+DJISDK.h
      Description:

      SDK mission error domain.

      extern DJISDKBatteryErrorDomain
      FOUNDATION_EXPORT NSString *_Nonnull const DJISDKBatteryErrorDomain
      Header:NSError+DJISDK.h
      Description:

      SDK battery error domain.

      extern DJISDKGimbalErrorDomain
      FOUNDATION_EXPORT NSString *_Nonnull const DJISDKGimbalErrorDomain
      Header:NSError+DJISDK.h
      Description:

      SDK gimbal error domain.

      extern DJISDKFlightControllerErrorDomain
      FOUNDATION_EXPORT NSString *_Nonnull const DJISDKFlightControllerErrorDomain
      Header:NSError+DJISDK.h
      Description:

      SDK flight controller domain.

      extern DJISDKRemoteControllerErrorDomain
      FOUNDATION_EXPORT NSString *_Nonnull const DJISDKRemoteControllerErrorDomain
      Header:NSError+DJISDK.h
      Description:

      SDK remote controller domain.

      extern DJISDKRegistrationErrorDomain
      FOUNDATION_EXPORT NSString *_Nonnull const DJISDKRegistrationErrorDomain
      Header:NSError+DJISDK.h
      Description:

      SDK registration error domain.

      extern DJISDKFlySafeErrorDomain
      FOUNDATION_EXPORT NSString *_Nonnull const DJISDKFlySafeErrorDomain
      Header:NSError+DJISDK.h
      Description:

      SDK GEO error domain.

      extern DJISDKFlightHubErrorDomain
      FOUNDATION_EXPORT NSString *_Nonnull const DJISDKFlightHubErrorDomain
      Header:NSError+DJISDK.h
      Description:

      SDK FlightHub error domain.

      extern DJITakeOffActionErrorDomain
      FOUNDATION_EXPORT NSString *_Nonnull const DJITakeOffActionErrorDomain
      Header:NSError+DJISDK.h
      Description:

      The error domain used to describe errors produced by the DJITakeOffAction object.

      extern DJIRTKNetworkServiceErrorDomain
      FOUNDATION_EXPORT NSString *_Nonnull const DJIRTKNetworkServiceErrorDomain
      Header:NSError+DJISDK.h
      Description:

      The error domain used to describe errors produced by the DJIRTKNetworkServiceProvider.

      extern DJIAccessoryAggregationErrorDomain
      FOUNDATION_EXPORT NSString *_Nonnull const DJIAccessoryAggregationErrorDomain
      Header:NSError+DJISDK.h
      Description:

      The error domain used to describe errors produced by the DJIAccessoryAggregation object.

      extern DJIAccessLockerErrorDomain
      FOUNDATION_EXPORT NSString *_Nonnull const DJIAccessLockerErrorDomain
      Header:NSError+DJISDK.h
      Description:

      The error domain used to describe errors produced by the DJIAccessLocker object.

      enum DJISDKFlySafeError
      typedef NS_ENUM(NSInteger, DJISDKFlySafeError)
      Header:NSError+DJISDK.h
      Description:

      DJI SDK GEO Error.

      Enum Members:
      DJISDKFlySafeErrorNotLoggedInUser is not logged in.
      DJISDKFlySafeErrorInvalidSimulatedLocationThis enum value is deprecated. The simulated aircraft location is not valid. During the simulation, a location is valid if it is within 50km of (37.460484, -122.115312).
      DJISDKFlySafeErrorTokenOutOfDateThe Account login is out of date, Need login again.
      DJISDKFlySafeErrorOperationCancelledThe operation is cancelled.
      DJISDKFlySafeErrorAircraftLocationNotAvailableAircraft's location is not available.
      DJISDKFlySafeErrorAircraftSerialNumberNotAvailableAircraft's serial number is not available.
      DJISDKFlySafeErrorInvalidTokenThe token is invalid.
      DJISDKFlySafeErrorNotAuthorizedUser is not authorized.
      DJISDKFlySafeErrorInvalidServerDataData returned by server is invalid.
      DJISDKFlySafeErrorInitializationNotFinishedThe system is still initializing.
      DJISDKFlySafeErrorNotSupportGEOAircraft's location does not support GEO.
      DJISDKFlySafeErrorAreaNotEligibleUnlockThis area is not eligible for unlocking.
      enum DJISDKFlightHubError
      typedef NS_ENUM(NSInteger, DJISDKFlightHubError)
      Header:NSError+DJISDK.h
      Description:

      DJI SDK FlightHub Error.

      Enum Members:
      DJISDKFlightHubErrorSignatureInvalidServer rejected the request because the signature is invalid.
      DJISDKFlightHubErrorNoRightToAccessServer rejected the request because the user does not have the permission.
      DJISDKFlightHubErrorParametersInvalidInvalid parameter(s).
      DJISDKFlightHubErrorNoAuthorizationInformationFoundNo authorization information found.
      DJISDKFlightHubErrorUserNotFoundInUserCenterThe account information is not found.
      DJISDKFlightHubErrorAuthorizationExpiredAuthorization information has expired. Please authorize again.
      DJISDKFlightHubErrorUserNotFoundInFlightHubUser not found in DJI FlightHub system.
      DJISDKFlightHubErrorServicePackageExpiredThe service package has been expired.
      DJISDKFlightHubErrorServicePackageLimitationReachedThe service package has reached the limit of device numbers.
      DJISDKFlightHubErrorUserHasNoSDKPermissionForServicePackageThe service package does not have permission to access SDK service.
      DJISDKFlightHubErrorNoTeamFoundNo team found.
      DJISDKFlightHubErrorNoAircraftFoundNo aircraft found.
      DJISDKFlightHubErrorAircraftAlreadyBoundInTeamChosenThe aircraft has already been bound in the chosen team.
      DJISDKFlightHubErrorNoRecordFoundNo record found.
      DJISDKFlightHubErrorNotLoggedInNo user is logged in.
      DJISDKFlightHubErrorAircraftSerialNumberNotAvailableAircraft's serial number is not available.
      DJISDKFlightHubErrorBoundDeviceLimitationReachedBound device number has reached the limit of your service package.
      DJISDKFlightHubErrorNoHardwareInfoAuthorizationSDK does not have authorization to access hardware information.
      DJISDKFlightHubErrorAircraftAlreadyBoundInTeamChosenInOtherTeamThe aircraft has already been bound in the other team. Please unbind it first.
      enum DJITakeOffActionError
      typedef NS_ENUM(NSInteger, DJITakeOffActionError)
      Header:NSError+DJISDK.h
      Description:

      Error codes for errors specific to DJITakeOffActionErrorDomain.

      Enum Members:
      DJITakeOffActionErrorMotorsAlreadyOnMotors should be off before Take-off action is executed.
      DJITakeOffActionErrorUnknownUnknown.
      enum DJIRTKNetworkServiceError
      typedef NS_ENUM(NSInteger, DJIRTKNetworkServiceError)
      Header:NSError+DJISDK.h
      Description:

      Errors related to RTK network services.

      Enum Members:
      DJIRTKNetworkServiceErrorAuthenticationFailureThe authentication failed when trying to access to the server.
      DJIRTKNetworkServiceErrorInvalidSettingsNetwork settings are not configured yet or invalid.
      DJIRTKNetworkServiceErrorAlreadyStartedThe service is already started. Stop it first to re-start the service.
      DJIRTKNetworkServiceErrorInvalidGPSDataThe GPS location of the aircraft is invalid. The RTK network service requires the location of the air system.
      DJIRTKNetworkServiceErrorIncorrectReferenceStationSourcePlease choose correct reference station srouce.
      DJIRTKNetworkServiceErrorAccountNotLoginOrExpiredNo logged in account or the login session has expired.
      DJIRTKNetworkServiceErrorAccountUnactivatedAccount not activated, please contact DJI Support. Use activateNetworkServiceWithPlanType:completion to activate your account.
      DJIRTKNetworkServiceErrorInvalidRequestInvalid request for the RTK service. Please check if the network RTK service is purchased or activated. After purchasing, within 3 minutes, you might also get this error.
      DJIRTKNetworkServiceErrorServerNotReachableUnable to connect to server.
      DJIRTKNetworkServiceErrorAccountErrorUnknown account error, please contact DJI Support.
      DJIRTKNetworkServiceErrorMissingHelperFrameworkPlease add the "DJINetworkRTKHelper.framework" to the project by using Cocoapods (https://cocoapods.org/pods/DJINetworkRTKHelper) to use the network RTK.
      enum DJIAccessoryAggregationError
      typedef NS_ENUM(NSInteger, DJIAccessoryAggregationError)
      Header:NSError+DJISDK.h
      Description:

      Errors related to accessories on the aircraft (e.g. spotlights, speakers).

      Enum Members:
      DJIAccessoryAggregationErrorNotConnectedThe accessory is not connected. Also update the implementation.
      DJIAccessoryAggregationErrorFileNameLengthInvalidThe file name exceeds the maximum length (20 characters).
      DJIAccessoryAggregationErrorFileNameDuplicatedThe file name is already taken in the aircraft. Choose a different file name.
      DJIAccessoryAggregationErrorFileNameEmptyA file name cannot be empty.
      DJIAccessoryAggregationErrorFileNotExistThe file does not exist in the aircraft.
      DJIAccessoryAggregationErrorFileCreatedAn error occurs when creating the file.
      DJIAccessoryAggregationErrorFileIndexUnavailableThere is no more file index available for the file.
      DJIAccessoryAggregationErrorRenameFileError occurs when renaming the file.
      DJIAccessoryAggregationErrorDataTransmissionDisconnectionThe connection of the speaker is broken and data transmission cannot start.
      DJIAccessoryAggregationErrorWrongDataTransmissionStateThe data transimission operation cannot be executed in the current state.
      DJIAccessoryAggregationErrorDataCorruptionData validation failed. Data is corrupted during the transmission.
      DJIAccessoryAggregationErrorCancelledByUserThe ongoing data transmission is cancelled.
      DJIAccessoryAggregationErrorInterruptedByTimeoutThe ongoing data transmission is interrupted by timeout error.
      DJIAccessoryAggregationErrorStorageFullThe storage is full.
      enum DJIAccessLockerError
      typedef NS_ENUM(NSInteger, DJIAccessLockerError)
      Header:NSError+DJISDK.h
      Description:

      Errors related to the access locker.

      Enum Members:
      DJIAccessLockerErrorInvalidStateThe command is not valid in current state.
      DJIAccessLockerErrorFirmwareWriteWrite failure when updating data in the firmware.
      DJIAccessLockerErrorFirmwareReadRead failure when accessing data in the firmware.
      DJIAccessLockerErrorSecurityCodeIncorrectThe Security Code is incorrect.
      DJIAccessLockerErrorNotSetUpThe user account is not set up for the security feature yet.
      DJIAccessLockerErrorAlreadyUnlockedThe aircraft is already unlocked.
      DJIAccessLockerErrorSecurityCodeIncorrectFiveTimesAttempt with wrong Security Code more than 5 times. The aircraft is disable and try again in 1 minute.
      DJIAccessLockerErrorSecurityCodeIncorrectTwentyTimesAttempt with wrong Security Code more than 20 times. The aircraft is disable and try again in 24 hours.
      DJIAccessLockerErrorUsernameNotExistThe username does not exist.
      DJIAccessLockerErrorSecurityCodeFormatInvalidThe new security code is not valid. A valid security code should contain only numbers and letters and its length is not less than 4 characters and not longer than 8 characters.
      enum DJISDKMissionError
      typedef NS_ENUM (NSInteger, DJISDKMissionError)
      Header:NSError+DJISDK.h
      Description:

      DJI SDK Mission Error.

      Enum Members:
      DJISDKWaypointMissionParameterErrorMaxFlightSpeedMax Flight speed value provided is invalid.
      DJISDKWaypointMissionParameterErrorAutoFlightSpeedAuto flight speed value provided is invalid.
      DJISDKWaypointMissionParameterErrorRepeatTimeRepeat time value provided is invalid.
      DJISDKWaypointMissionParameterErrorWaypointCountWaypoint count is invalid.
      DJISDKWaypointMissionAbsentErrorWaypoint mission is absent from the operator (upload failed somehow).
      DJISDKWaypointParameterErrorCoordinateWaypoint coordinate provided is invalid.
      DJISDKWaypointParameterErrorAltitudeWaypoint altitude provided is invalid.
      DJISDKWaypointParameterErrorHeadingWaypoint heading provided is invalid.
      DJISDKWaypointParameterErrorActionRepeatTimeWaypoint repeat time provided is invalid.
      DJISDKWaypointParameterErrorActionTimeoutWaypoint action timeout provided is invalid.
      DJISDKWaypointParameterErrorCornerRadiusWaypoint corner radius provided is invalid.
      DJISDKWaypointParameterErrorGimbalPitchWaypoint gimbal pitch provided is invalid.
      DJISDKWaypointParameterErrorSpeedWaypoint speed provided is invalid.
      DJISDKWaypointParameterErrorShootPhotoDistanceWaypoint shoot photo distance provided is invalid.
      DJISDKWaypointParameterErrorStayActionParamWaypoint stay action param provided is invalid.
      DJISDKWaypointParameterErrorRotateGimbalActionParamWaypoint rotate gimbal action param provided is invalid.
      DJISDKWaypointParameterErrorRotateAircraftActionParamWaypoint rotate aircraft action param provided is invalid.
      DJISDKWaypointParameterErrorIndeciesAreDiscontinuousWaypoint indecies are discontinuous.
      DJISDKWaypointParameterErrorIndexOutOfRangeWaypoint index out of range.
      DJISDKWaypointParameterErrorInvalidDataSizeWaypoint data size is invalid. It is for internal usage.
      DJISDKWaypointParameterErrorTakeoffFailureCausedByAttitudeThe aircraft cannot take off because of improper aircraft's attitude.
      DJISDKWaypointParameterErrorInvalidIntervalShootParamThe time interval or the distance interval is invalid.
      DJISDKWaypointGetInterruptionFailureForCompleteMissionThe waypoint mission interruption is not available because the last mission completed successfully.
      DJISDKWaypointGetInterruptionFailureWithoutReachingFirstWaypointThe waypoint mission interruption is not available because the aircraft didn't reach the first waypoint in the last mission.
      DJISDKHotpointErrorSystemAbnormalSystem error, please try again. If the error continues, restart the aircraft.
      DJISDKHotpointErrorTargetAreaIsTooSmallFrame selection subject too small.
      DJISDKHotpointErrorInsufficientFeaturesInTargetAreaFrame selection subject texture not obvious.
      DJISDKHotpointErrorLostTargetWhileWatchingTracking subject lost while watching.
      DJISDKHotpointErrorLostTargetWhileExecutingTracking subject lost while executing.
      DJISDKHotpointErrorReprojectionFailedWhileExecutingFailed to estimate, please try again.
      DJISDKHotpointErrorTargetTooCloseFrame subject too close.
      DJISDKHotpointErrorTargetSizeChangedTarget size changed, please try again. If the error persists, restart the aircraft.
      DJISDKHotpointErrorGPSAbnormalGPS signal weak. Please try again in an open area.
      DJISDKHotpointErrorHotpointInvalidHotpoint parameter do not meet requirements.
      DJISDKHotpointErrorWatchTargetFailedGimbal reached movement limit, subjecting failed. Please try again.
      DJISDKHotpointErrorEstimateTimeoutEstimate timeout, mission exit.
      DJISDKHotpointErrorEstimateResultInvalidFailed to estimate subject location.
      DJISDKHotpointErrorExitByUserButtonCurrent mission exit by user button.
      DJISDKHotpointErrorRadiusLimitThe aircraft reach the distance limit. Please operate the aircraft within the distance limit.
      DJISDKHotpointErrorAlitudeLimitThe aircraft reach the altitude limit. Please operate the aircraft within the Altitude limit.
      DJISDKHotpointErrorControlFailedIntelligent Hotpoint mission execute failed, the description is the fail reason.
      DJISDKHotpointErrorLostConnectionWithRemoteControllerLost connection with remoteController.
      DJISDKHotpointErrorObstacleEncounteredWhileEstimatingObstacles encountered while estimating, current mission quitted.
      DJISDKHotpointErrorObstacleEncounteredWhileSurroundingObstacles encountered while surrounding, current mission suspended.
      DJISDKHotpointErrorTargetIsTooFarawayTarget is too faraway, the aircraft needs to continue to measure distance.
      DJISDKHotpointErrorAltitudeTooLowAircraft's altitude is too low to execute hotpoint mission.
      DJISDKMissionErrorMultiModeDisabledThe mission cannot start when multi-mode is disabled.
      DJISDKMissionErrorModeErrorCannot execute in the current mode. For products and flight controller firmware versions that support 'F' mode (e.g. Phantom 3 Professional, Inspire 1, A3 with flight controller firmware version lower than 3.2.10.0, etc), please make sure the remote controller's mode switch is in 'F' mode. For the others, please make sure the remote controller's mode switch is in 'P' mode.
      DJISDKMissionErrorGPSSignalWeakThe GPS signal of the aircraft is weak.
      DJISDKMissionErrorAircraftLowBatteryLow battery level warning.
      DJISDKMissionErrorAircraftNotInTheAirThe aircraft is not in the air.
      DJISDKMissionErrorAircraftAltitudeTooHighThe aircraft's altitude is too high.
      DJISDKMissionErrorAircraftAltitudeTooLowThe aircraft's altitude is too low.
      DJISDKMissionErrorAircraftTakingOffAircraft is taking off.
      DJISDKMissionErrorAircraftLandingAircraft is landing.
      DJISDKMissionErrorAircraftGoingHomeAircraft is going home.
      DJISDKMissionErrorAircraftStartingEngineAircraft is starting engine.
      DJISDKMissionErrorAircraftHomePointNotRecordedThe home point of the aircraft is not recorded.
      DJISDKMissionErrorAircraftLostFollowMeTargetAircraft lost the follow target.
      DJISDKMissionErrorAircraftInNoviceModeAircraft is in novice mode.
      DJISDKMissionErrorAircraftInNoFlyZoneAircraft is in a no fly zone.
      DJISDKMissionErrorReachFlightLimitationThe aircraft has reached the flight limitation.
      DJISDKMissionErrorAircraftRunningMissionThe aircraft is running a mission.
      DJISDKMissionErrorAircraftNoRunningMissionAircraft is not running a mission.
      DJISDKMissionErrorAircraftNoMissionNo aircraft mission.
      DJISDKMissionErrorAircraftNearHomePointAircraft is too close to the home point.
      DJISDKMissionErrorAircraftFarAwayMissionAircraft is too far away from the mission.
      DJISDKMissionErrorMissionParametersInvalidThe parameters of the mission are invalid.
      DJISDKMissionErrorMissionTotalDistanceTooLargeMission's total distance is too large.
      DJISDKMissionErrorMissionNeedTooMuchTimeMission needs too much time to execute.
      DJISDKMissionErrorMissionResumeFailedMission resume failed.
      DJISDKMissionErrorCommandCanNotExecuteCommand can not be executed. This is sometimes because commands are sent too frequently.
      DJISDKMissionErrorAircraftAlreadyInCommandStateAircraft already in command state. Repeating the same command results in this error.
      DJISDKMissionErrorMissionNotReadyMission not prepared.
      DJISDKMissionErrorCustomMissionStepCannotPauseCustom mission step can not be paused.
      DJISDKMissionErrorCustomMissionStepsNotInitializedCustom mission is not initialized with the mission steps. The Steps array is empty.
      DJISDKMissionErrorCustomMissionStepInitializingCurrent mission step is initializing.
      DJISDKMissionErrorTrackingTargetLostThe tracking target is lost.
      DJISDKMissionErrorNoVideoFeedNo live video feed is captured for the ActiveTrack Mission.
      DJISDKMissionErrorVideoFrameRateTooLowThe frame rate of the live video feed is too low.
      DJISDKMissionErrorVisionSystemNotAuthorizedThe vision system cannot get the authorization to control the aircraft.
      DJISDKMissionErrorVisionSystemErrorThe vision system encounters system error.
      DJISDKMissionErrorCannotBypassObstacleThe aircraft cannot bypass the obstacle.
      DJISDKMissionErrorStoppedByUserMission was stopped by the user.
      DJISDKMissionErrorVisionSystemNeedsCalibrationThe vision system requires calibration.
      DJISDKMissionErrorVisionSensorOverexposedThe vision sensors are overexposed.
      DJISDKMissionErrorVisionSensorUnderexposedThe vision sensors are underexposed.
      DJISDKMissionErrorVisionDataAbnormalThe data from the vision system is abnormal.
      DJISDKMissionErrorFeaturePointCannotMatchThe feature points found by both vision sensors cannot match.
      DJISDKMissionErrorTrackingRectTooSmallThe tracking rectangle is too small.
      DJISDKMissionErrorTrackingRectTooLargeThe tracking rectangle is too large.
      DJISDKMissionErrorTrackingTargetNotEnoughFeaturesThe tracking target doesn't have enough features to lock onto.
      DJISDKMissionErrorTrackingTargetTooCloseThe Tracking target is too close to the aircraft.
      DJISDKMissionErrorTrackingTargetTooFarThe tracking target is too far away from the aircraft.
      DJISDKMissionErrorTrackingTargetTooHighThe tracking target is too high.
      DJISDKMissionErrorTrackingTargetShakingThe tracking target is shaking too much.
      DJISDKMissionErrorTrackingTargetLowConfidenceThe ActiveTrack mission is too unsure the tracking object and confirmation is required.
      DJISDKMissionErrorTrackingPausedByUserMission is paused by user.
      DJISDKMissionErrorGimbalPitchTooLowGimbal pitch is too low.
      DJISDKMissionErrorGimbalPitchTooLargeGimbal pitch is too large.
      DJISDKMissionErrorTrackingObstacleDetectedEncounter an obstacle.
      DJISDKMissionErrorTapFlyDirectionInvalidTapFly direction invalid.
      DJISDKMissionErrorVisionSystemNotAvailableThe front vision system is not available.
      DJISDKMissionErrorInitializationFailedThe initialization of the mission failed.
      DJISDKMissionErrorCannotPauseOrResumeMission can not pause or resume.
      DJISDKMissionErrorReachAltitudeLowerBoundThe aircraft reaches the altitude lower bound of the TapFly Mission.
      DJISDKMissionErrorRTKSignalWeakRTK's signal is weak.
      DJISDKMissionErrorLandingGearDeployedAircraft's landing gear is deployed.
      enum DJISDKFlightControllerError
      typedef NS_ENUM (NSInteger, DJISDKFlightControllerError)
      Header:NSError+DJISDK.h
      Description:

      DJI SDK Flight Controller Error.

      Enum Members:
      DJISDKFlightControllerErrorModeErrorMode error.
      DJISDKFlightControllerErrorNearHomePointAircraft too close to the home point.
      DJISDKFlightControllerErrorRunningMissionAircraft currently running a mission.
      DJISDKFlightControllerErrorRunningVirtualStickAircraft currently running virtual stick.
      DJISDKFlightControllerErrorAircraftNotInTheAirAircraft not in the air.
      DJISDKFlightControllerErrorFlightLimitedAircraft flight limited.
      DJISDKFlightControllerErrorGPSSignalWeakGPS level is not high enough to allow flight controller to obtain accurate location.
      DJISDKFlightControllerErrorLowBatteryAircraft low battery.
      DJISDKFlightControllerErrorHomePointNotRecordedAircraft home point not recorded.
      DJISDKFlightControllerErrorTakingOffAircraft taking off.
      DJISDKFlightControllerErrorLandingAircraft landing.
      DJISDKFlightControllerErrorGoingHomeAircraft going home.
      DJISDKFlightControllerErrorStartingEngineAircraft starting engine.
      DJISDKFlightControllerErrorInNoFlyZoneAircraft in a no fly zone.
      DJISDKFlightControllerErrorMotorsStartedCommand can not be executed because the motors started.
      DJISDKFlightControllerErrorGimbalNotRemovedAircraft could not enter transport mode, since the gimbal is still connected.
      DJISDKFlightControllerErrorCannotTurnOffMotorsWhileAircraftFlyingThe aircraft is flying. For safety consideration, the motors could not be shut down.
      DJISDKFlightControllerErrorHomePointTooFarThe new home point is too far.
      DJISDKFlightControllerErrorGoHomeAltitudeTooLowThe new home altitude is too low. (Lower than 20m).
      DJISDKFlightControllerErrorGoHomeAltitudeTooHighThe new home altitude is too high. (higher than 500m).
      DJISDKFlightControllerErrorRemoteControllerModeErrorThe remote controller's mode switch is not in correct mode.
      DJISDKFlightControllerErrorVirtualStickControlModeErrorThe virtual stick control mode is not available.
      DJISDKFlightControllerErrorAircraftNotAutoLandingThe aircraft is not at auto landing state.
      DJISDKFlightControllerErrorAircraftNotGoingHomeThe aircraft is not at go home state.
      DJISDKFlightControllerErrorRTKCannotStartRTK cannot start properly. Please reboot.
      DJISDKFlightControllerErrorRTKConnectionBrokenConnection between base station and mobile station is broken.
      DJISDKFlightControllerErrorRTKBSAntennaErrorRTK base station antenna error. Check if the antenna is connected to the correct port.
      DJISDKFlightControllerErrorRTKBSCoordinatesResetRTK base station's coordinate resets.
      DJISDKFlightControllerErrorIllegalBatteryIllegal battery.
      DJISDKFlightControllerErrorInTripodModeAircraft is in tripod mode.
      DJISDKFlightControllerErrorBSParamterNumberNotMatchBase station paramters have paramter number not match.
      DJISDKFlightControllerErrorBSParamterLengthNotMatchBase station paramters have paramter length not match.
      DJISDKFlightControllerErrorBSParamterReadOnlyBase station paramters have paramter read only.
      DJISDKFlightControllerErrorBSParamterUnknownErrorBase station paramters have paramter unknown error.
      DJISDKFlightControllerErrorBaseStationNotActivatedThe base station isn't activated.
      DJISDKFlightControllerErrorBaseStationIsMovedThe base station is moved. Land the aircraft to re-establish the connection to the ground station.
      DJISDKFlightControllerErrorBaseStationFellThe base station fell. Land the aircraft to re-establish the connection to the base station.
      DJISDKFlightControllerErrorGravityCenterCalibrationNotFlyingThe aircraft cannot start the gravity center calibration because it is not flying.
      DJISDKFlightControllerErrorGravityCenterCalibrationCanNotWorkInSimulatorThe aircraft cannot start the gravity center calibration because the simulator starts.
      DJISDKFlightControllerErrorGravityCenterCalibrationIsRunningThe aircraft cannot start the gravity center calibration before the previous calibration finishes.
      DJISDKFlightControllerErrorGravityCenterCalibrationNotHoveringThe aircraft cannot start the gravity center calibration because it is not hovering.
      DJISDKFlightControllerErrorGravityCenterCalibrationStoppedByUserThe gravity center calibration is stopped by the user.
      DJISDKFlightControllerErrorGravityCenterCalibrationFailedInBigWindThe gravity center calibration is interrupted because the wind is too strong.
      enum DJISDKCameraError
      typedef NS_ENUM (NSInteger, DJISDKCameraError)
      Header:NSError+DJISDK.h
      Description:

      DJI SDK Camera Error.

      Enum Members:
      DJISDKCameraErrorFirmwareDoesNotSupportCommandNot supported command or command not support in this firmware.
      DJISDKCameraErrorMemoryAllocationFailedCamera memory allocation failed error.
      DJISDKCameraErrorCommandCurrentlyNotEnabledCamera busy or command could not execute in current state.
      DJISDKCameraErrorTimeNotSyncedCamera time not synced.
      DJISDKCameraErrorSDCardNotInsertedNo SD card.
      DJISDKCameraErrorSDCardFullSD card full.
      DJISDKCameraErrorSDCardErrorSD card error.
      DJISDKCameraErrorSensorErrorCamera sensor error.
      DJISDKCameraErrorSystemErrorCamera system error.
      DJISDKCameraErrorMediaTypeErrorThe command is not supported by the media file type.
      DJISDKCameraErrorNoSuchMediaFileThe media file is not found in SD card.
      DJISDKCameraErrorMediaCommandAbortedThe command is aborted unexpectedly.
      DJISDKCameraErrorMediaFileDataCorruptedData is corrupted during the file transmission.
      DJISDKCameraErrorInvalidMediaCommandThe media command is invalid.
      DJISDKCameraErrorNoPermissionThere is no permission to access the media file.
      DJISDKCameraErrorPlaybackDownloadInterruptionThe download process of DJIPlaybackManager is interrupted.
      DJISDKCameraErrorPlaybackNoDownloadingFilesThere is no downloading files to stop.
      DJISDKCameraErrorSSDErrorCamera has no SSD.
      DJISDKCameraErrorSSDFullThe Camera's SSD is full.
      DJISDKCameraErrorSSDNotInsertedError accessing the SSD.
      DJISDKCameraErrorMediaFileResetMedia file is reset. The operation cannot be executed.
      DJISDKCameraErrorCurrentModeNotSupportedNot supported in current mode, please change to RECORD_VIDEO mode.
      enum DJISDKError
      typedef NS_ENUM (NSInteger, DJISDKError)
      Header:NSError+DJISDK.h
      Description:

      DJI SDK Error.

      Enum Members:
      DJISDKErrorSDKFeatureNotSupportedFeature not supported error.
      DJISDKErrorApplicationNotActivatedApplication not activated error.
      DJISDKErrorSDKLevelNotPermittedSDKLevel not permitted error.
      DJISDKErrorTimeoutTimeout error.
      DJISDKErrorSystemBusySystem busy error.
      DJISDKErrorInvalidParametersParameters invalid error.
      DJISDKErrorParameterGetFailedGet parameter failed error.
      DJISDKErrorParameterSetFailedSetting parameters operation failed.
      DJISDKErrorCommandExecutionFailedCommand execute failed error.
      DJISDKErrorSendDataFailedSend data failed error.
      DJISDKErrorConnectionToSDKFailedConnection to SDK failed error.
      DJISDKErrorServerDataNotReadyServer data not ready.
      DJISDKErrorProductUnknownProduct unknown.
      DJISDKErrorProductNotSupportProduct not support.
      DJISDKErrorDeviceNotFoundDevice not found.
      DJISDKErrorNotSupportedByFirmwareThe command is not supported by the current firmware version.
      DJISDKErrorReceivedDataInvalidThe received data is invalid.
      DJISDKErrorNoReceivedDataNo data is received.
      DJISDKErrorBluetoothOffThe Bluetooth is off. Turn it on in iOS settings menu.
      DJISDKErrorOperationCancelledOperation is cancelled.
      DJISDKErrorInternetNetworkIsNotReachableThe Internet is not reachable.
      DJISDKErrorLDMIsNotSupportedLocal Data Mode (LDM) is not supported in your context.
      DJISDKErrorNoExistingArchiveLogsThere are no existing archived logs.
      DJISDKErrorBeyondMaximumAllowedSizeThe pack to send is more than the maximum allowed size.
      DJISDKErrorReachChannelBandwidthThe current transmission rate already reached the channel's bandwidth. Re-send data later.
      DJISDKErrorCanNotExecuteThe operation can't be executed in current state.
      DJISDKErrorNotDefinedNot defined error.
      enum DJISDKRegistrationError
      typedef NS_ENUM (NSInteger, DJISDKRegistrationError)
      Header:NSError+DJISDK.h
      Description:

      The Error of SDK Registration.

      Enum Members:
      DJISDKRegistrationErrorCouldNotConnectToInternetThe application is not able to connect to the Internet the first time it tries to register the API Key.
      DJISDKRegistrationErrorInvalidAppKeyThe application key you provided is incorrect.
      DJISDKRegistrationErrorHTTPTimeoutThe network you are trying to reach is busy, or the server is unreachable.
      DJISDKRegistrationErrorDeviceDoesNotMatchThe attempt to copy metadata from another registered device to a device that is currently connected is not permitted. For example, if a developer has two devices and the application is activated with the app key on one of the devices and if the other device is plugged in and tries to register the application, this error will occur.
      DJISDKRegistrationErrorBundleIdDoesNotMatchThe bundle identifier of your application does not match the bundle identifier you registered on the developer website when you applied to obtain an application key.
      DJISDKRegistrationErrorAppKeyProhibitedThe application key is prohibited. This occurs when an application key that has already been released by DJI is revoked. Please contact DJI for assistance.
      DJISDKRegistrationErrorMaxActivationCountReachedThere is a maximum number of devices one application key can be used to activate. The maximum number of devices is given when an application is registered on the DJI developer website. This error will occur if the maximum number of activations has been reached.
      DJISDKRegistrationErrorAppKeyInvalidPlatformErrorThis error occurs when an application key was given for a specific platform and is trying to be used to activate an application for another platform. For instance, if an application key was given for an iOS application and is used to activate an Android application, this error will occur.
      DJISDKRegistrationErrorAppKeyDoesNotExistThe application key does not exist. Please make sure the application key you are entering is correct.
      DJISDKRegistrationErrorAppKeyLevelNotPermittedThere are two levels for the SDK framework, level 1 and level 2. If an application key was given under one level and is trying to be used to active an application using another level SDK framework, this error will occur.
      DJISDKRegistrationErrorServerParseFailureThere is a server error. Please contact DJI for assistance.
      DJISDKRegistrationErrorServerWriteErrorThere is a server error. Please contact DJI for assistance.
      DJISDKRegistrationErrorServerDataAbnormalThere is a server error. Please contact DJI for assistance.
      DJISDKRegistrationErrorInvalidMetaDataThe activation data received from server is invalid. Please reconnect to the internet and try again.
      DJISDKRegistrationErrorEmptyAppKeyNo application key was provided.
      DJISDKRegistrationErrorOverMaxActivationsCountApplications under basic develop account could only have the maximum of 20 unique activations. Visit DJI developer center to upgrade the membership.
      DJISDKRegistrationErrorAppKeyNotEnrolledByBetaSDKThe application is not enrolled in the Beta Program. Use an app key under the Beta Program instead.
      DJISDKRegistrationErrorInvalidAppKeyForBetaVersionThe app key is invalid for this beta version.
      DJISDKRegistrationErrorUnknownAn unknown error occurred when the application was trying to register. Please contact DJI for assistance.
      class