Classes

The following classes are available globally.

  • This class provides the real-time status of an executing ActiveTrack Mission.

    See more

    Declaration

    Objective-C

    @interface DJIActiveTrackMissionStatus : DJIMissionProgressStatus
  • ActiveTrack Mission allows an aircraft to track a moving subject using the vision system and without a GPS tracker on the subject. To use an ActiveTrack mission: - prepareMission with the rectangle that best represents the target to track - startMission to initiate tracking of the object and begin the state updates (DJIMissionProgressStatus) - At this point, the aircraft will track the target while hovering in place. - Give confirmation that the tracked target is correct with acceptConfirmationWithCompletion and the aircraft will begin flying relative to the target. - If the tracking algorithm looses sufficient confidence in tracking the target, then the aircraft will stop flying relative to the object and either notify the user (through execution state) that the target is lost or it needs another confirmation that the target is correct. - If the mission is paused, the aircraft will hover in place, but continue tracking the target by adjusting gimbal pitch and aircraft yaw. - If mission is resumed, confirmation of tracking rectangle will need to be sent through to start flying relative to target. - Mission can be canceled with stopMission at any time, or with rejectConfirmationWithCompletion if confirmation of tracking rectangle is being asked. - The main camera is used to track the target, so gimbal cannot be adjusted during an ActiveTrack mission. - During the mission the aircraft can be manually flown with pitch, roll and throttle. Yaw and gimbal are automatically controlled to continue tracking the target. - If the mission is executing, and after confirmation of the tracking rectangle has been sent, the aircraft can be manually controlled horizontally similar to a DJIFlightOrientationModeHomeLock where the home is the tracked target. If aircraft is manually controlled upward, the aircraft will lift and retreat, and if it is controlled downward, it will go down and get closer to the target.

    See more

    Declaration

    Objective-C

    @interface DJIActiveTrackMission : DJIMission
  • The class contains different wireless links between the aircraft, the remote controller and the mobile device. To determine whether the current device supports WiFi and Lightbridge features, call isWifiLinkSupported or isLBAirLinkSupported.

    With the Osmo the mobile device communicates directly via wifi.

    See more

    Declaration

    Objective-C

    @interface DJIAirLink : DJIBaseComponent
  • This class represents the power spectral density of a frequency slice. Only supported by Mavic Pro.

    See more

    Declaration

    Objective-C

    @interface DJIOcuSyncFrequencyInterference : NSObject
  • This class contains the components of an aircraft.

    See more

    Declaration

    Objective-C

    @interface DJIAircraft : DJIBaseProduct
  • This class represents an aircraft yaw rotation step for a custom mission. By creating an object of this class and adding it to a custom mission, an aircraft yaw rotation action will be performed during the custom mission execution.

    See more

    Declaration

    Objective-C

    @interface DJIAircraftYawStep : DJIMissionStep
  • The Phantom 3 Standard and 4K products have two wireless links between the remote controller and aircraft. These include a WiFi link for video and app data, and a control link for telemetry and remote controller button/stick commands. This control link is called the auxiliary control link, which distinguishes it from other products having only a WiFi link (such as Osmo).

    See more

    Declaration

    Objective-C

    @interface DJIAuxLink : NSObject
  • Abstract class for components in a DJI Product. A component can be a camera, gimbal, remote controller, etc. A DJI product consists of several components.

    See more

    Declaration

    Objective-C

    @interface DJIBaseComponent : NSObject
  • This class manages the battery’s information and real-time status of the connected product.

    See more

    Declaration

    Objective-C

    @interface DJIBattery : DJIBaseComponent
  • DJIBatteryState is used to keep track of the real-time state of the battery. It is supported by both smart and non-smart batteries. However for non-smart batteries, only some of the properties are valid: - When the connected product is A3 and N3, only currentVoltage and cellVoltageLevel are valid. - When the connected product is A2, only currentVoltage is valid.

    See more

    Declaration

    Objective-C

    @interface DJIBatteryState : NSObject
  • The DJIBatteryWarningInformation is used to keep a record of any unusual status for the battery in the past 30 discharges. For all the properties below, monitor these values frequently to ensure the battery’s state is normal. If any of the properties below indicate there is an issue with the battery, we reccomend notifying the user.

    NOTE: No automatic action will be taken if any of the properties below return YES, which is why it is imperative the user is notified of the issue.

    These states are not supported by Osmo.

    See more

    Declaration

    Objective-C

    @interface DJIBatteryWarningInformation : NSObject
  • Class that contains battery cell voltage data.

    See more

    Declaration

    Objective-C

    @interface DJIBatteryCell : NSObject
  • Provides an overview of a battery - used when multiple batteries are deployed on one product.

    See more

    Declaration

    Objective-C

    @interface DJIBatteryOverview : NSObject
  • Provides a real time summary of the aggregated battery system. Only supported by Matrice 600, Matrice 600 Pro and Inspire 2.

    See more

    Declaration

    Objective-C

    @interface DJIBatteryAggregationState : NSObject
  • Some DJI products can be controlled using the Mobile SDK on the mobile device over a Bluetooth wireless connection. This class contains methods to search for, connect to and disconnect from such products.

    See more

    Declaration

    Objective-C

    @interface DJIBluetoothProductConnector : NSObject
  • This class contains the media manager and playback manager to manage the Camera’s media content. It provides methods to change camera settings and perform camera actions.

    See more

    Declaration

    Objective-C

    @interface DJICamera : DJIBaseComponent
  • This class contains information about the lens’ current state, including lens type, focus status, focus mode, focus assistant state, and Auto Focus (AF) switch state.

    Supported only by X5 camera, X5R camera and X5S camera.

    See more

    Declaration

    Objective-C

    @interface DJICameraLensState : NSObject
  • Some of the camera’s parameters have dynamic ranges. The DJICameraParameters interface allows you to query the valid range for a parameter. Type-casting is required to get the corresponding enumerator value for each range element.

    See more

    Declaration

    Objective-C

    @interface DJICameraParameters : NSObject
  • This class provides the current state of the Playback manager, which includes the numbers of thumbnail and media files, video duration, video play progress, and file download state.

    See more

    Declaration

    Objective-C

    @interface DJICameraPlaybackState : NSObject
  • This class provides the SD card’s general information and current status.

    See more

    Declaration

    Objective-C

    @interface DJICameraSDCardState : NSObject
  • This class contains the information about camera’s Solid State Drive (SSD) information, including state, whether it is connected, its capacity, video size and rate, etc.

    Supported only by the X5R camera an X5S camera.

    See more

    Declaration

    Objective-C

    @interface DJICameraSSDState : NSObject
  • This class provides general information and current status of the camera.

    See more

    Declaration

    Objective-C

    @interface DJICameraSystemState : NSObject
  • This class contains important status for the compass of the product, and provides methods to calibrate the compass. Products with multiple compasses (like the Phantom 4) will have their compass state fused into one compass class for simplicity.

    See more

    Declaration

    Objective-C

    @interface DJICompass : NSObject
  • This class contains the real-time status of the executing custom mission.

    See more

    Declaration

    Objective-C

    @interface DJICustomMissionStatus : DJIMissionProgressStatus
  • In a custom mission, you can create multiple kinds of mission steps to control the aircraft to execute a series of complex tasks. Mission steps will be stored in a queue to execute, there is no limit to the number of mission steps in each custom mission. By using Custom Mission, you can achieve your desired functionality easier and more efficiently.

    The DJICustomMission class is a subclass of DJIMission. You can use it to create a custom mission that is made up of a sequence of mission steps. A custom mission is a mechanism designed by the Mobile SDK to simplify the development process. Missions (e.g. a waypoint mission) and operations of components are represented as mission steps. The developer can use the SDK to accomplish complex tasks by simply creating and organizing steps.

    After the custom mission is uploaded and started, the sequence of the mission steps will be executed.

    See

    DJIMissionStep
    See more

    Declaration

    Objective-C

    @interface DJICustomMission : DJIMission
  • This class contains components of the flight controller and provides methods to send different commands to the flight controller.

    See more

    Declaration

    Objective-C

    @interface DJIFlightController : DJIBaseComponent
  • This class contains the flight status of the aircraft related to the flight limitation, and provides methods to configure the flight limitation.

    See more

    Declaration

    Objective-C

    @interface DJIFlightLimitation : NSObject
  • This data structure class contains the geospatial information for the fly zone.

    See more

    Declaration

    Objective-C

    @interface DJIFlyZoneInformation : NSObject
  • This class manages the Geospatial Environment Online (GEO) system which provides warning, enhanced warning, authorization and restricted fly zone information. Warning zones have no flight restrictions. Enhanced warning, authorization and restricted fly zones do not allow flight by default. Enhanced warning zones can be unlocked once the user is logged into their DJI account. Authorization zones can be unlocked once the user is logged into their DJI account, and that account has been authorized to unlock authorization zones. Restricted zones cannot be unlocked using the GEO system.

    Use of the geographic information provided DJIFlyZoneManager is restricted. Refer to the DJI Developer Policy.

    See more

    Declaration

    Objective-C

    @interface DJIFlyZoneManager : NSObject
  • This class provides the real-time status of the executing follow-me mission.

    See more

    Declaration

    Objective-C

    @interface DJIFollowMeMissionStatus : DJIMissionProgressStatus
  • The class represents a follow me mission. In a follow me mission, the aircraft is programmed to track and maintain a constant distant relative to some object, such as a person or a moving vehicle. You can use it to make the aircraft follow a GPS device, such as a remote controller with a GPS signal or a mobile device.

    It is not supported by Mavic Pro when using WiFi connection.

    See more

    Declaration

    Objective-C

    @interface DJIFollowMeMission : DJIMission
  • This class represents a follow-me step for a custom mission. By creating an object of this class and adding it to a custom mission, a follow-me action will be performed during the custom mission. - see: DJIFollowMeMission

    See more

    Declaration

    Objective-C

    @interface DJIFollowMeStep : DJIMissionStep
  • This class provides multiple methods to control the gimbal. These include setting the gimbal work mode, rotating the gimbal with angle, starting the gimbal auto calibration, etc.

    See more

    Declaration

    Objective-C

    @interface DJIGimbal : DJIBaseComponent
  • The current advanced settings of the gimbal. These include settings for SmoothTrack and the Controller. Only supported by Osmo.

    See more

    Declaration

    Objective-C

    @interface DJIGimbalAdvancedSettingsState : NSObject
  • This class provides the current state of the gimbal.

    See more

    Declaration

    Objective-C

    @interface DJIGimbalState : NSObject
  • Class for smart go home status.

    See more

    Declaration

    Objective-C

    @interface DJIGoHomeStatus : NSObject
  • This class represents a go-home step for a custom mission. By creating an object of this class and adding it to a custom mission, a go-home action will be performed during the custom mission execution.

    See more

    Declaration

    Objective-C

    @interface DJIGoHomeStep : DJIMissionStep
  • This class represents a go-to step for a custom mission. By creating an object of this class and adding it to a custom mission, the aircraft will go to the specified location during the custom mission execution.

    See more

    Declaration

    Objective-C

    @interface DJIGoToStep : DJIMissionStep
  • This class contains the components of a handheld device.

    See more

    Declaration

    Objective-C

    @interface DJIHandheld : DJIBaseProduct
  • This class contains interfaces to control a handheld device. You can make the handheld device enter sleep mode, awake from sleep mode or shut it down.

    See more

    Declaration

    Objective-C

    @interface DJIHandheldController : DJIBaseComponent
  • Handheld controller’s current hardware state. Used by Osmo Mobile only.

    See more

    Declaration

    Objective-C

    @interface DJIHandheldControllerHardwareState : NSObject
  • Pattern used to control a single color (red, green or blue) of the handheld controller’s LED.

    See more

    Declaration

    Objective-C

    @interface DJIHandheldControllerLEDColorPattern : NSObject
  • Command used to control different colors (red, green and blue) of the handheld controller’s LED.

    See more

    Declaration

    Objective-C

    @interface DJIHandheldControllerLEDCommand : NSObject
  • This class provides the real-time status of the executing hot-point mission.

    See more

    Declaration

    Objective-C

    @interface DJIHotPointMissionStatus : DJIMissionProgressStatus
  • The class represents a hotpoint mission, which can be executed by the mission manager. In a hot point mission, the aircraft will repeatedly fly circles of a constant radius around a specified point called a Hot Point. The user can control the aircraft to fly around the hotpoint with a specific radius and altitude. During execution, the user can also use the physical remote controller to modify its radius and speed.

    It is not supported by Mavic Pro when using WiFi connection.

    See more

    Declaration

    Objective-C

    @interface DJIHotPointMission : DJIMission
  • This class represents a hot-point step for a custom mission. By creating an object of this class and adding it to a custom mission, a hot-point action will be performed during the custom mission execution. - see: DJIHotpointMission

    See more

    Declaration

    Objective-C

    @interface DJIHotpointStep : DJIMissionStep
  • This class is used to lead the user through an IMU calibration for products that require calibration at multiple orientations. An example workflow is: 1. Direct the user to orient the aircraft in one of the uncalibrated orientations in orientationsToCalibrate. 2. Monitor status until DJIIMUMultiOrientationCalibrationStatusCalibrating turns to DJIIMUMultiOrientationCalibrationStatusDone. 3. Repeat until orientationsToCalibrate is empty.

    See more

    Declaration

    Objective-C

    @interface DJIIMUMultiOrientationCalibrationHint : NSObject
  • This class contains current state of the DJI Inertial Measurement Unit(IMU) State.

    See more

    Declaration

    Objective-C

    @interface DJIIMUState : NSObject
  • This class contains components of the Intelligent Flight Assistant and provides methods to change the settings of Intelligent Flight Assistant.

    See more

    Declaration

    Objective-C

    @interface DJIIntelligentFlightAssistant : NSObject
  • This class contains methods to change settings of the Lightbridge Air Link.

    See more

    Declaration

    Objective-C

    @interface DJILBAirLink : NSObject
  • This class contains the state of the landing gear. It also provides methods to control the landing gear.

    See more

    Declaration

    Objective-C

    @interface DJILandingGear : NSObject
  • This class contains information about a multi-media file on the SD card. It also provides methods to retrieve the data in the file.

    See more

    Declaration

    Objective-C

    @interface DJIMedia : NSObject
  • The media manager is used to interact with the file system on the SD card. By using the media manager, the user can get the metadata for all the multimedia files, and has access to each individual multimedia file.

    See more

    Declaration

    Objective-C

    @interface DJIMediaManager : NSObject
  • DJIMissionProgressStatus is an abstract class representing the progress of an executing mission.

    See more

    Declaration

    Objective-C

    @interface DJIMissionProgressStatus : NSObject
  • This class is an abstract class representing a mission that can be executed by the mission manager.

    See more

    Declaration

    Objective-C

    @interface DJIMission : NSObject
  • This class manages the execution cycle for a mission. To execute a mission, you must normally first invoke prepareMission:withProgress:withCompletion to prepare the mission. Then call startMissionExecutionWithCompletion: to start the prepared mission. You can also pause, resume or stop an executing mission if the mission supports the operation.

    See more

    Declaration

    Objective-C

    @interface DJIMissionManager : NSObject
  • Abstract class for all mission steps. A mission step represents an operation related to one kind of mission or a component. You can create a custom mission with multiple steps to accomplish complex tasks.

    Warning

    The execution of a custom mission depends on the combination and order of mission steps. The user must check the relationships between steps and organize the steps in a reasonable order.

    See

    DJICustomMission

    Declaration

    Objective-C

    @interface DJIMissionStep : NSOperation
  • A simulated remote controller on the mobile device to control the aircraft when the physical remote controller is absent. The mobile remote controller only supports Mode 2 control style and flight mode P.

    It is supported by Mavic Pro using WiFi.

    See more

    Declaration

    Objective-C

    @interface DJIMobileRemoteController : DJIBaseComponent

  • This class contains methods to change OcuSync link settings.

    See more

    Declaration

    Objective-C

    @interface DJIOcuSyncLink : NSObject
  • This class provides the real-time status of an executing panorama mission.

    See more

    Declaration

    Objective-C

    @interface DJIPanoramaMissionStatus : DJIMissionProgressStatus
  • During a Panorama Mission, the user can rotate the camera 360 or 180 degrees to take several photos, and then download the photos to render a panorama. In full circle mode, 8 photos are taken. In half circle mode, 5 photos are taken. Commands cannot be sent to the camera until the mission is finished. The Panorama Mission does not support the image stitching feature, so the images must be stitched manually. All the images will be stored on the SD card.

    Panorama Mission is only supported by Osmo with X3 camera and Z3 camera.

    See more

    Declaration

    Objective-C

    @interface DJIPanoramaMission : DJIMission
  • DJIParamCapabilityMinMax adds the maximum and minimum possible values of the parameter to the base class property of whether the parameter is supported by the component or product.

    See more

    Declaration

    Objective-C

    @interface DJIParamCapabilityMinMax : DJIParamCapability
  • The playback manager is used to interact with the playback system of the camera. By using the playback manager, the user can control the playback system.

    See more

    Declaration

    Objective-C

    @interface DJIPlaybackManager : NSObject
  • Single RTK receiver information. Each receiver is connected to a single antenna.

    See more

    Declaration

    Objective-C

    @interface DJIRTKReceiverInfo : NSObject
  • This class holds the state of the RTK system including position, positioning solution and receiver information.

    See more

    Declaration

    Objective-C

    @interface DJIRTKState : NSObject
  • Real Time Kinematic

    See more

    Declaration

    Objective-C

    @interface DJIRTK : NSObject
  • This class represents a step related to video-recording for a custom mission. By creating an object of this class and adding it into a custom mission, the user can record video during the custom mission execution.

    See more

    Declaration

    Objective-C

    @interface DJIRecordVideoStep : DJIMissionStep
  • This class represents the remote controller of the aircraft. It provides * methods to change the settings of the physical remote controller. For some * products (e.g. Inspire 1 and Matric 100), the class provides methods to * manager the slave/master mode of the remote controllers. * * A remote controller is a device that can have a GPS, battery, radio, buttons, * sticks, wheels, and output ports for video. The mobile device is connected * to the remote controller, which is always sending out information about what * everything is doing. The normal remote controller is called the master. A * slave wirelessly connects to the master remote controller at 5 GHz, and the * aircraft can also download information to the slave. The slave can send * gimbal control commands to the master. This configuration allows one person * to fly the aircraft while another person controls the gimbal.

    See more

    Declaration

    Objective-C

    @interface DJIRemoteController : DJIBaseComponent
  • This class contains the information for a remote controller.

    See more

    Declaration

    Objective-C

    @interface DJIRCInfo : NSObject

  • State of the remote controller related to the master and slave mode. Only supported by Inspire 2.

    See more

    Declaration

    Objective-C

    @interface DJIRCMasterSlaveState : NSObject
  • This class provides methods for you to get information about the current log level. It also contains methods to configure the logger.

    See more

    Declaration

    Objective-C

    @interface DJIRemoteLogger : NSObject
  • This class contains methods to register the app, start or stop connections with the product, and use the DJI Bridge app and Remote Logger tools, etc. After registration, the user can access the connected product through DJISDKManager. Then the user can start to control the components of the product.

    See more

    Declaration

    Objective-C

    @interface DJISDKManager : NSObject
  • This class represents a step related to photo-shooting for a custom mission. By creating an object of this class and adding it to a custom mission, the user can shoot photos during the custom mission execution.

    See more

    Declaration

    Objective-C

    @interface DJIShootPhotoStep : DJIMissionStep
  • This class contains signal status for a channel.

    See more

    Declaration

    Objective-C

    @interface DJISignalInformation : NSObject
  • DJI aircraft can be put into simulation mode using this class. Developers can start and stop the simulation, as well as monitor basic aircraft attitude and location information.

    See more

    Declaration

    Objective-C

    @interface DJISimulator : NSObject
  • Aircraft’s state during the simulation.

    See more

    Declaration

    Objective-C

    @interface DJISimulatorState : NSObject
  • This class represents a take-off step for a custom mission. By creating an object of this class and adding it to a custom mission, a take-off action will be performed during the custom mission execution.

    Declaration

    Objective-C

    @interface DJITakeoffStep : DJIMissionStep
  • This class provides the real-time status of an executing TapFly Mission.

    See more

    Declaration

    Objective-C

    @interface DJITapFlyMissionStatus : DJIMissionProgressStatus
  • A TapFly Mission is initialized with a position target from the live video stream. The 3D direction of the coordinate is calculated, and the aircraft will proceed to fly in that direction. The aircraft can automatically avoid obstacles when the scene is sufficiently illuminated (more than 300 lux but less than 10,000 lux). The aircraft will stop flying in the direction if it reaches its radius limitation, the mission is stopped, the user pulls back on the pitch stick or if it comes to an obstacle it cannot bypass. The Remote Controller yaw stick can be used to adjust the heading of the aircraft during mission execution, which also adjusts the direction of flight to the new yaw. Using any other stick controls will cancel the mission.

    See more

    Declaration

    Objective-C

    @interface DJITapFlyMission : DJIMission
  • The vision system can see in front of the aircraft with a 60 degree horizontal field of view (FOV) and 55-degree vertical FOV. The horizontal FOV is split into four equal sectors, and this class gives the distance and warning level for one sector.

    See more

    Declaration

    Objective-C

    @interface DJIVisionDetectionSector : NSObject
  • This class gives state information about the product’s vision sensors used for obstacle detection. The two types of sensors used are dual camera sensors operating in the visible spectrum (dual-camera sensor) and infrared time of flight (TOF) sensors. Note, Inspire 2’s upward facing infrared TOF sensor is not returned in this state. It is accessed through DJIVisionControlState.

    See more

    Declaration

    Objective-C

    @interface DJIVisionDetectionState : NSObject
  • This class gives the aircraft’s state controlled by the intelligent flight assistant.

    See more

    Declaration

    Objective-C

    @interface DJIVisionControlState : NSObject
  • This class represents a waypoint action for DJIWaypoint. It determines what action is performed when the aircraft reaches the corresponding waypoint.

    See more

    Declaration

    Objective-C

    @interface DJIWaypointAction : NSObject
  • The class represents a target point in the waypoint mission. For a waypoint mission, a flight route consists of multiple DJIWaypoint objects. The user can also define the actions to perform for each DJIWaypoint.

    See more

    Declaration

    Objective-C

    @interface DJIWaypoint : NSObject
  • This class provides the real-time status of an executing waypoint mission.

    See more

    Declaration

    Objective-C

    @interface DJIWaypointMissionStatus : DJIMissionProgressStatus
  • In the waypoint mission, the aircraft will travel between waypoints, execute actions at waypoints, and adjust heading and altitude between waypoints. Waypoints are physical locations to which the aircraft will fly. Creating a series of waypoints, in effect, will program a flight route for the aircraft to follow. Actions can also be added to waypoints, which will be carried out when the aircraft reaches the waypoint.

    The aircraft travels between waypoints automatically at a base speed. However, the user can change the speed by using the pitch joystick. If the stick is pushed up, the speed will increase. If the stick is pushed down, the speed will slow down. The stick can be pushed down to stop the aircraft and further pushed to start making the aircraft travel back along the path it came. When the aircraft is traveling through waypoints in the reverse order, it will not execute waypoint actions at each waypoint. If the stick is released, the aircraft will again travel through the waypoints in the original order, and continue to execute waypoint actions (even if executed previously).

    If the aircraft is pulled back along the waypoint mission all the way to the first waypoint, then it will hover in place until the stick is released enough for it to again progress through the mission from start to finish.

    It is not supported by Mavic Pro when using WiFi connection.

    See more

    Declaration

    Objective-C

    @interface DJIWaypointMission : DJIMission
  • This class represents a waypoint step for a custom mission. By creating an object of this class and adding it into a custom mission, a waypoint action will be performed during the custom mission.

    Warning

    Data related to a waypoint mission will be uploaded to the aircraft right before the execution of each waypoint mission step. The uploading process may take minutes depending on the number of waypoints and the connection status.

    See

    DJIWaypointMission

    See more

    Declaration

    Objective-C

    @interface DJIWaypointStep : DJIMissionStep
  • This class provides methods to change the setting of the product’s WiFi. You can also reboot the WiFi adapter inside product in order to make the new setting take effect.

    See more

    Declaration

    Objective-C

    @interface DJIWiFiLink : NSObject
  • Abstract class for all DJI Products.

    See more

    Declaration

    Objective-C

    @interface DJIBaseProduct : NSObject
  • DJIParamCapability represents the capability of a parameter of a component or product. DJIParamCapability can be sub-classed to include additional information on the parameter. DJIParamCapabilityMinMax includes the maximum and minimum possible values of the parameter.

    See more

    Declaration

    Objective-C

    @interface DJIParamCapability : NSObject