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 Matrice 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. This object is available from the DJIAircraft subclass off DJIBaseProduct.
Transformation Switch position. The Transformation Switch is around the Return To Home Button on Inspire, Inspire 1 and M100 Remote Controllers, and controls the state of the aircraft's landing gear.
Position One. For all products except Mavic Pro, this is the left most position of the flight mode switch on a remote controller from the perspective of the pilot. For example, on a Phantom 4 remote controller, Position One is labeled "A". For Mavic Pro, Spark and Mavic Air, this is the position that is furthest away from the pilot and labeled "Sport".
DJIRCFlightModeSwitchTwo
Position Two. For all products except Mavic Pro, this is the middle position of the flight mode switch on a remote controller from the perspective of the pilot. For example, on a Phantom 4 remote controller, Position Two is labeled "S". For Mavic Pro, Spark and Mavic Air, this is the position that is closest to the pilot (the P position).
DJIRCFlightModeSwitchThree
Position Three. For all products except Mavic Pro, this is the right most position of the flight mode switch on a remote controller from the perspective of the pilot. For example, on a Phantom 4 remote controller, Position Two is labeled "P". Mavic Pro, Spark or Mavic Air does not have a third position for the flight mode switch.
Current state of custom button 1 (left Back Button). For Mavic Air 2 and DJI Air 2S, There is no custom button 1, we use Fn button instead, one click on Fn button represents custom button 1. It is not supported by remote controllers for Mavic Air or Spark.
Current state of custom button 2 (right Back Button). For Mavic Air 2 and DJI Air 2S, There is no custom button 2, we use Fn button instead, double clicks on Fn button represents custom button 2.
Current state of the 5D button. The button can be moved up, down, left and right and can be pressed. The 5D button is supported by Mavic Pro and Mavic 2 remote controllers.
Result when a slave Remote Controller tries to join a master Remote Controller.
Enum Members:
DJIRCConnectToMasterResultAccepted
The slave Remote Controller's attempt to join the master Remote Controller was successful.
DJIRCConnectToMasterResultPasswordError
The slave Remote Controller's attempt to join the master Remote Controller was unsuccessful due to a password error.
DJIRCConnectToMasterResultRejected
The slave Remote Controller's attempt to join the master Remote Controller was rejected.
DJIRCConnectToMasterResultMaximumCapacity
The slave Remote Controller's attempt to join the master Remote Controller was unsuccessful because the master Remote Controller is at the maximum number of slaves it can have.
DJIRCConnectToMasterResultTimeout
The slave Remote Controller's attempt to join the master Remote Controller was unsuccessful because the request timed out.
DJIRCConnectToMasterResultUnknown
The result of the slave Remote Controller's attempt to join the master Remote Controller is unknown.
Result when a slave Remote Controller requests permission to control the gimbal.
Enum Members:
DJIRCRequestGimbalControlResultAccepted
The master Remote Controller agrees to the slave's request.
DJIRCRequestGimbalControlResultRejected
The master Remote Controller denies the slave's request. If the slave Remote Controller wants to control the gimbal, it must send a request to the master Remote Controller first. Then the master Remote Controller can decide to approve or deny the request.
Remote Controller's Remote Focus State. The focus product has one dial (focus control) that controls two separate parts of the camera: focal length and aperture. However it can only control one of these at any one time and is an absolute dial, meaning that a specific rotational position of the dial corresponds to a specific focal length or aperture. This means that whenever the dial control mode is changed, the dial first has to be reset to the new mode's previous dial position before the dial can be used to adjust the setting of the new mode. Example workflow:
YES if the focus control works. The control can be either changing the Aperture or Focal Length. If it is NO, follow the DJIRCFocusControllerDirection to rotate the Remote Focus Device until it turns to YES again.
Callback function that gets called when a slave Remote Controller makes a request to a master Remote Controller to control the gimbal using the method requestGimbalControlRightWithCallbackBlock.
Callback function that updates the Remote Focus State, only support Focus product. If the isRCRemoteFocusCheckingSupported is YES, this delegate method will be called.
Callback function that receives the button action triggered by a button click. The relationship between a button and an action is defined by DJIRCButtonConfiguration. It is only supported by Cendence.
Delegate method that receives the calibration progress of the remote controller. The remote controller will start to update the progress after the calibration is started successfully.
Defines the combination of video sources to form the secondary output video. The secondary output can display video streams from one or two input sources. When the encode mode is single: Source 1 represents video from one of the Source1Only input ports (HDMI or AV). Source 2 represents video from EXT input port (HD Gimbal Camera). When the encode mode is dual: Source 1 represents video from HDMI input port. Source 2 represents video from AV input port.
Enum Members:
DJIRCSecondaryVideoDisplayModeSource1Only
Displays video from Source 1 only. When the current encode mode is single, the secondary output will display video from HDMI or AV input. When the current encode mode is dual, the secondary output will display video from HDMI input.
DJIRCSecondaryVideoDisplayModeSource2Only
Displays video from Source 2 only. When the current encode mode is single, the secondary output will display video from HD Gimbal camera. When the current encode mode is dual, the secondary output will display video from AV input.
DJIRCSecondaryVideoDisplayModePIPSource1Main
Displays the video from Source 1 as the main subject, and the video from Source 2 in a mini window (Picture in Picture, or PIP).
DJIRCSecondaryVideoDisplayModePIPSource2Main
Displays the video from Source 2 as the main subject, and the video from Source 1 in a mini window (Picture in Picture, or PIP).
Modes to charge an iOS mobile device. Only supported by Inspire 2.
Enum Members:
DJIRCChargeMobileModeNever
The remote controller does not charge the mobile device.
DJIRCChargeMobileModeAlways
The remote controller charges the mobile device until the the mobile device is fully charged.
DJIRCChargeMobileModeIntelligent
The remote controller charges the mobile device in an intelligent mode: The remote controller starts charging when the mobile device's battery is lowered then 20% and stops charging when the mobile device's battery is above 50%. It is only supported by Inspire 2.
The overall state of the remote controller's calibration.
Enum Members:
DJIRCCalibrationOverallStateRecordingCenter
The calibration is started and the remote controller is recording the center position of components. In this phase, user should not move the components.
The remote controller has recorded the center position of components and is recording the physical limits. In this phase, user should move components (sticks and wheels) all the way to the physical limits in any direction.
DJIRCCalibrationOverallStateTimeout
The calibration took too long to finish.
DJIRCCalibrationOverallStateFailed
The calibration failed. Use error to check the reason.
Actions that can be assigned to a customizable button. Some of the actions are reserved and the firmware will execute the corresponding actions even when the application is not connected. Some of the actions are defined by the mobile applications. The application is responsible for implementing the non firmware actions. The definitions used in DJI Go are provided. It is usually recommended to follow DJI Go's definitions for compability so if DJI Go is used at the same time as the SDK application the actions will be expected in both applications.
Enum Members:
DJIRCButtonActionCustom0
Toggle the camera setting view. The action has to be implemented by the application itself.
DJIRCButtonActionResetGimbal
Resets the gimbal attitude. The pitch and the yaw will point to the origin. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom3
Switch the live view and the map view. The action has to be implemented by the application itself.
DJIRCButtonActionCustom4
Clear the flight path in the map view. The action has to be implemented by the application itself.
DJIRCButtonActionCustom5
Toggle the battery setting view. The action has to be implemented by the application itself.
DJIRCButtonActionCentralExposureMetering
Trigger central exposure metering. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom8
Toggles the AE Lock setting. The action has to be implemented by the application itself.
DJIRCButtonActionCustom9
Toggle the LEDs on the four arms. The action has to be implemented by the application itself.
DJIRCButtonActionResetFPVGimbal
Reset FPV gimbal attitude to the center, the gimbal will rotate 45 degrees in pitch axis up and down when the action is trigger. It is supported by the firmware of Matrice 200 series and Matrice 200 V2 series. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom13
Expand the live view from the FPV camera. The action has to be implemented by the application itself.
DJIRCButtonActionQuickSpin
Trigger a Quick Spin. It is supported by the firmware of Inspire 2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom16
Toggle the playback view. The action has to be implemented by the application itself.
DJIRCButtonActionCenterFocus
Triggers focusing at the center of the live view. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom23
Request gimbal control (for the slave remote controller). The action has to be implemented by the application itself.
DJIRCButtonActionToggleGimbalMode
Toggle DJIGimbalModeYawFollow and DJIGimbalModeFree for gimbal. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom25
Toggle the customizable button setting view. The action has to be implemented by the application itself.
DJIRCButtonActionToggleFocus
Toggle AF and MF for camera. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom27
Dismiss the warning tips. The action has to be implemented by the application itself.
DJIRCButtonActionCustom28
Toggle the automatic movement of the landing gear. The action has to be implemented by the application itself.
DJIRCButtonActionCustom29
Toggle the warning list view. The action has to be implemented by the application itself.
DJIRCButtonActionSwitchFrequency
Switch frequency bands of the remote controller. It is supported by the firmware of Matrice 200 series. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom31
Set the home location of the aircraft to the current location of the aircraft. The action has to be implemented by the application itself.
DJIRCButtonActionCustom32
Set the home location of the aircraft to the current location of the remote controller. The action has to be implemented by the application itself.
DJIRCButtonActionFocus
Trigger the camera focus. It is supported by the firmware of Matrice 200 series and Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom41
Toggle the composition mode for the Spotlight. The action has to be implemented by the application itself.
DJIRCButtonActionCustom43
Toggle the peak focus. The action has to be implemented by the application itself.
DJIRCButtonActionCustom44
Toggle the display of grid. The action has to be implemented by the application itself.
DJIRCButtonActionCustom45
Toggle the display of histogram. The action has to be implemented by the application itself.
DJIRCButtonActionCustom46
Switch the white balance settings. The action has to be implemented by the application itself.
DJIRCButtonActionCustom47
Toggle the over-exposure warning. The action has to be implemented by the application itself.
DJIRCButtonActionCustom52
Reset the gimbal yaw to align with the aircraft heading. The action has to be implemented by the application itself.
DJIRCButtonActionToggleLandingGear
Retract or deploy the landing gear. It is supported by the firmware of Inspire 2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom59
Toggle the radar map. The action has to be implemented by the application itself.
DJIRCButtonActionCustom60
Toggle the downward vision sensors. The action has to be implemented by the application itself.
DJIRCButtonActionCustom61
Toggle the forward obstacle avoidance. The action has to be implemented by the application itself.
DJIRCButtonActionCustom62
Switch the video source of the secondary video feeder between fpv and camera. The action has to be implemented by the application itself.
DJIRCButtonActionCustom63
Toggle the full screen mode. The action has to be implemented by the application itself.
DJIRCButtonActionZoomOut
Zoom out. It is only supported by Z30 camera. It is supported by the firmware of Matrice 200 V2 series. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionZoomIn
Zoom in. It is only supported by Z30 camera. It is supported by the firmware of Matrice 200 V2 series. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom102
Custom action with value 102. This value is reserved for SDK applications.
DJIRCButtonActionToggleDisplayMode
Toggle the DJICameraDisplayMode. It is only supported by XT2 camera. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom104
Custom action with value 104. This value is reserved for SDK applications.
DJIRCButtonActionCustom105
Custom action with value 105. This value is reserved for SDK applications.
DJIRCButtonActionCustom106
Custom action with value 106. This value is reserved for SDK applications.
DJIRCButtonActionCustom107
Custom action with value 107. This value is reserved for SDK applications.
DJIRCButtonActionCustom108
Custom action with value 108. This value is reserved for SDK applications.
DJIRCButtonActionCustom109
Custom action with value 109. This value is reserved for SDK applications.
DJIRCButtonActionNotDefined
Not defined. It is used to present that no action is bound to a button.
DJIRCButtonActionCustom150
Triggers the widget of the payload device in the index of 0. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom151
Triggers the widget of the payload device in the index of 1. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom152
Triggers the widget of the payload device in the index of 2. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom153
Triggers the widget of the payload device in the index of 3. It is supported by the firmware of Matrice 200 V2 series. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom154
Triggers the widget of the payload device in the index of 4. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom155
Triggers the widget of the payload device in the index of 5. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom156
Triggers the widget of the payload device in the index of 6. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom157
Triggers the widget of the payload device in the index of 7. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom158
Triggers the widget of the payload device in the index of 8. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom159
Triggers the widget of the payload device in the index of 9. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom160
Triggers the widget of the payload device in the index of 10. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom161
Triggers the widget of the payload device in the index of 11. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom162
Triggers the widget of the payload device in the index of 12. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom163
Triggers the widget of the payload device in the index of 13. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
DJIRCButtonActionCustom164
Triggers the widget of the payload device in the index of 14. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
Types of the device that the remote controller can pair with. It is only used when the remote controller supports multi-device pairing. Only Supported by Phantom 4 RTK.
Enum Members:
DJIRCPairingDeviceAircraft
The device to be paired with is an aircraft.
DJIRCPairingDeviceRTKBaseStation
The device to be paired with is an RTK base station.
The state (e.g. unpaired, paired, connected, etc.) of a device that may connected to the remote controller. It is only used when the remote controller supports multi-device pairing. Only supported by DJI Phantom 4 RTK.
Enum Members:
DJIRCMultiDeviceStateUnpaired
The remote controller is unpaired with the device. This state is for both aircraft and base station.
DJIRCMultiDeviceStatePairing
The remote controller is pairing with the device. This state is only for aircraft.
DJIRCMultiDeviceStatePaired
The remote controller is paired. This state is only for aircraft.
DJIRCMultiDeviceStateDisconnected
The remote controller is paired with the device but the connection between the device and the remote controller is broken. The remote controller already remembers the device and the connection will receover automatically when it is possible. This state is only for base station. Only Supported by Phantom 4 RTK.
DJIRCMultiDeviceStateConnected
The remote controller is paired with the device and it is connected to the device. This state is only for base station.
Joy stick mode on the remote controller. It is only used when the remote controller doesn't have a mode switch. Only Supported by Mavic Mini, DJI Mini SE.
Enum Members:
DJIRCSoftSwitchJoyStickMode_S
Set the joy stick to sport mode. Only Supported by Mavic Mini, DJI Mini SE.
DJIRCSoftSwitchJoyStickMode_P
Set the joy stick to position mode. Only Supported by Mavic Mini, DJI Mini SE.
DJIRCSoftSwitchJoyStickMode_T
Set the joy stick to tripod mode. Only Supported by Mavic Mini, DJI Mini SE.
Sets the joy stick mode on the remote controller. It is only used when the remote controller doesn't have a mode switch. Only Supported by Mavic Mini, DJI Mini SE.
Gets the joy stick mode on the remote controller. It is only used when the remote controller doesn't have a mode switch. Only Supported by Mavic Mini, DJI Mini SE.
The display name of the remote controller for Lightbridge 2 wireless module. The module is used by stand-alone Lightbridge 2, A3, N3 and Matrice 600 series.
Enters pairing mode, in which the Remote Controller starts pairing with the aircraft. This method is used when the Remote Controller no longer recognizes which aircraft it is paired with.
Starts pairing a target with the specific type (aircraft or RTK base station). This paring method is for Phantom 4 RTK only. To use RTK feature with a base station, the Phantom 4 RTK remote controller need to pair both the base station and the aircraft at the same time. CAUTION: pairing an RTK base station will unpair the paired aircraft. Therefore, to use the base station properly, the user needs to pair the base station first, and the aircraft after. It is only supported when isMultiDevicePairingSupported returns YES.
Stops the multi-device pairing. It is used after the pairing is started and before the remote controller is paired to a device successfully. It is not necessary to call this method if the remote controller is paired to a device successfully. Only Supported by Phantom 4 RTK.
Enables the RTK channel on the remote controller. When RTK air system is using the base station as the reference station, the remote controller should enable the RTK channel and reserve some bandwidth for data transmission between the base station and the air system. CAUTION: toggling RTK channel will reset the airlink between the remote controller and the aircraft. The airlink may take 3 seconds to recover. DO NOT enable/disable the channel when the aircraft is flying. If the base station is reconnected, you need to call this interface to enabled the RTK channel again. Only Supported by Phantom 4 RTK.
Input Parameters:
BOOL enabled
YES to enable the RTK channel on the remote controller.
Set the mapping of custom style. It will change the current mapping style to DJIRCAircraftMappingStyleCustom. The setting will only take effect when the remote controller is in master mode.
Sets which of the gimbal directions the top left dial (Gimbal Dial) on the Remote Controller will control. The three options (pitch, roll, and yaw) are outlined in the enum named DJIRCGimbalAxis.
Gets gimbal rotation speed of the top left wheel (Gimbal Dial) on the Remote Controller. The valid range is [0, 100].
Input Parameters:
NSUInteger coefficient
The gimbal control speed coefficient of the top left wheel on the Remote Controller. When it is zero, gimbal control by the top left wheel is disabled.
Sets custom button's (Back Button's) tags, which can be used by the user to record user settings for a particular Remote Controller. Unlike all other buttons, switches and sticks on the Remote Controller, the custom buttons only send state to the Mobile Device and not the aircraft.
Set C1 button enable binding DJI Go app state. If it's enabled, when the user presses the C1 button, an alertView will pop up and ask if you want to open the DJI Go app. This feature only supports MFI certificated Remote Controller. @attention This feature will affect the user of DJI Go app, we suggest you to call this interface to enable the C1 binding feature when your application enter background. Otherwise, the C1 button will be unbound with DJI Go app forever.
Enables invoking shooting photo interface when the shutter button is pressed. Mavic 2 series remote controller's shutter button will not work physically when connecting to Mobile SDK. This setting will be stored in software application localized storage paired with the RC SN key, which means, if the application is killed, it will be set to enabled by default when the application is relaunched. It is only supported by Mavic 2 series.
Input Parameters:
BOOL enabled
YES to enable invoking shooting photo interface when the shutter button is pressed.
Enables invoking video record interface when the record button is pressed. Mavic 2 series remote controller's record button will not work physically when connecting to Mobile SDK. This setting will be stored in software application localized storage paired with the RC SN key. Only supported by Mavic 2 series.
Input Parameters:
BOOL enabled
YES to enable invoking video record interface when the record button is pressed.
YES to switch camera flat mode between photo and video when the photoAndVideoToggleButton button is pressed. NO when photoAndVideoToggleButton button is pressed, we will not bind any event. You can monitor the button and handle custom events by yourself. This setting will be stored in software application localized storage paired with the RC SN key, which means. Only supported by Mavic Air 2, DJI Air 2S.
Input Parameters:
BOOL enabled
YES to switch camera flat mode between photo and video when the photoAndVideoToggleButton button is pressed.
Gets whether switching camera flat mode between photo and video is enabled when the photoAndVideoToggleButton button is pressed. It is only supported by Mavic Air 2.
YES to enable invoking shoot photo or record interface when the record button is pressed depend on the photoAndVideoToggleButton button state. NO when photoAndVideoToggleButton button is pressed, we will not bind any event. You can monitor the button and handle custom events by yourself. This setting will be stored in software application localized storage paired with the RC SN key. Only supported by Mavic AIr 2, DJI Air 2S.
Input Parameters:
BOOL enabled
YES to enable invoking shoot photo or record interface when the record button is pressed depend on the photoAndVideoToggleButton button state.
Gets if shoot photo or video record interface is involved when the photoAndVideoToggleButton button is pressed. It is only supported by Mavic Air 2, DJI Air 2S.
Sets the charge mode of a connected iOS device. Note: Android devices are always charging when connected to the remote controller. It is only supported by Inspire 2, M200 series, Cendence and Mavic 2 series.
Gets the mode to charge the connected iOS device. Note that Android devices are always charging when connected to the remote controller. It is only supported by Inspire 2, M200 series, Cendence, and Mavic 2 series.
Query method to check if the Remote Controller supports master/slave mode. Master-slave mode is supported by the Inspire 1, Inspire 1 Pro, Matrice 100, Lightbridge 2 (including Matrice 600, Matrice 600 Pro, A3 and N3) and Inspire 2. Inspire 2 is using a new set of interfaces to control the master and slave connection. - Similar to other products, Inspire 2's remote controller also use set/get DJIRCMode to change the mode. - A slave remote controller can use getMastersWithCompletion and connectToMasterWithID:authorizationCode:withCompletion to join a master remote controller. - A master remote controller can use setMasterAuthorizationCode:withCompletion to change the authentication code.
Sets the Remote Controller's mode. See the DJIRCMode enum for all possible Remote Controller modes. The master and slave modes are only supported for the Inspire 1, Inspire 1 Pro, M100, Lightbridge 2 (including Matrice 600, Matrice 600 Pro, A3 and N3) and Inspire 2. It's not supported by Matrice 300 RTK.
Gets the Remote Controller's mode. It is supported by the Inspire 1, Inspire 1 Pro, Matrice 100, Lightbridge 2 (including Matrice 600, Matrice 600 Pro, A3 and N3) and Inspire 2.
Gets the Remote Controller's master and slave connection state. It is supported by the Inspire 1, Inspire 1 Pro, Matrice 100, Lightbridge 2 (including Matrice 600, Matrice 600 Pro, A3 and N3) and Inspire 2.
Input Parameters:
BOOL isConnected
Yes if the master and slave remote controller are connected.
Block that receives the information of available master remote controllers. updateBlock will be called repeated with 1 second interval once master searching is started successfully. It will stop when the searching is stopped either by the remote controller itself or by calling stopMasterSearchingWithCompletion.
Returns the state of the master Remote Controller search. The search is initiated by the Mobile Device, but performed by the Remote Controller. Therefore, if the Mobile Device's application crashes while a search is ongoing, this method can be used to let the new instance of the application understand the Remote Controller state.
Used by a slave Remote Controller to join a master Remote Controller. If the master Remote Controller accepts the request, the master Remote Controller will control the aircraft, and the slave Remote Controller will control the gimbal and/or be able to view the downlink video.
Sets the authorization code of a master remote controller. The slave remote controller needs to know the authorization code in order to join the master. A valid input is a string with 6 digits. The default value is "888888". It can only be called when the remote controller is in master mode.
Joins the master remote controller with the specific ID. If the remote controller has joined the same master before, the authorization code is not required until the master remote controller changes its authorization code. In this case, code can be nil. It can only be called when the remote controller is in slave mode.
Input Parameters:
NSString *_Nonnull masterID
Master remote controller with the specific ID to join.
NSString *_Nullable code
Authorization code of the master remote controller.
Requests the gimbal control from the other remote controller. Different from requestLegacyGimbalControlWithCompletion, the gimbal control permission is transferred to the remote controller without the reply from the master remote controller. The master remote controller can attain the gimbal control back by calling the same method. It is only supported by Inspire 2, M200 series and Cendence.
When a slave Remote Controller requests a master Remote Controller to control the gimbal, this method is used by a master Remote Controller to respond to the slave Remote Controller's request.
Input Parameters:
BOOL response
<code>YES</code> if the master Remote Controller agrees to give the slave Remote Controller the right to control the gimbal.
Called by the slave Remote Controller to request gimbal control from the master Remote Controller. It is only supported by Inspire 1 and DJI Lightbridge 2.
YES if the remote controller supports customizable buttons. With the customizable buttons, the user can define the action bound to a button. When the button is clicked, the corresponding action can be received from the delegate method remoteController:didUpdateButtonAction.
Only Cendence supports customizable buttons. This is distinct from remote
controllers with buttons C1 and C2 that support custom tags and a binding to DJI Go.
Gets the names of the customizable button profile groups. The configurations of the customizable buttons are organized as groups. The maximum number of groups is 5 and each group contains 3 profiles. It is only valid when isCustomizableButtonSupported returns YES.
Input Parameters:
NSArray<NSString *> *_Nullable groups
The names of the customizable button profile groups.
Adds a group of customizable button profiles. Three default profiles will be created for the newly added group. The default profile can accessed through defaultButtonActions. It is only valid when isCustomizableButtonSupported returns YES.
Removes a group from the customizable button profiles. There must be at least one group, therefore, the removal of the last group will fail. It is only valid when isCustomizableButtonSupported returns YES.
Selects the customizable button profile group. The profile with 0 configIndex in the group will be applied. It is only valid when isCustomizableButtonSupported returns YES.
Selects the customizable button profile with the specific index in the selected profile group. It is only valid when isCustomizableButtonSupported returns YES.
Input Parameters:
uint8_t profileIndex
The index of the profile to select. The valid range is [0, 2].
Customizes the button configuration. The configuration will be applied to the remote controller immediately and will be stored into the selected profile of the selected profile group. It is only valid when isCustomizableButtonSupported returns YES. Supported by the Cendence remote controller.
Gets the button configuration being applied to the remote controller. It is only valid when isCustomizableButtonSupported returns YES. Supported by the Cendence remote controller.
Resets the selected button configuration to the default settings. The default configuration will be applied to the remote controller and will be stored into the selected index of the activated user. It is only valid when isCustomizableButtonSupported returns YES.
Customizes the action of a button. The new setting will be applied to the remote controller and will be stored into the selected profile index of the selected profile group. It is only valid when isCustomizableButtonSupported returns YES.
Directs commands of the physical buttons on the remote controller (rotating gimbal, shoot photo, record video, etc.) to the specific gimbal, when there are multiple gimbals connected. If there is only one gimbal connected, this setting is reset to the remaining gimbal. Enabling setAttitudeSynchronizationEnabled:withCompletion will reset this setting to index 0 and when setAttitudeSynchronizationEnabled:withCompletion is enabled, index can only be set to 0. It is only supported by M210, M210 RTK and Matrice 300 RTK.
Input Parameters:
NSUInteger index
Index of the gimbal to receive the remote controller commands.
The index of the gimbal that the remote controller is controlling. Commands of the physical buttons (rotating gimbal, shoot photo, record video, etc.) will be directed to the specific gimbal. If there is only one gimbal connected, this setting is reset to the remaining gimbal's index. Enabling setAttitudeSynchronizationEnabled:withCompletion will reset the value to 0. For product that supports only one gimbal, the value is always 0.
Input Parameters:
NSUInteger index
Get the index of the gimbal that the remote controller is controlling.
Gets the hardware components (sticks or dials) on the remote controller that requires calibration. After starting the calibration, user should move the components returned by this method to their physical limits to complete the calibration. It is only supported by Phantom 4 RTK.
Input Parameters:
NSArray<NSNumber *> * components
The hardware components requiring calibration. Each element in the array is a value of DJIRCCalibrationComponent.
Starts the calibration for the remote controller. Before starting the calibration, all the hardware components requiring calibration (see getCalibrationComponentsWithCompletion) should be returned to their midpoints. The calibration progress for each component can be received from remoteController:didUpdateCalibrationProgress. It is only supported by Phantom 4 RTK.
Stops the calibration for the remote controller. CAUTION: stopping the calibration before each hardware component returns its physical limits at least once may cause error in the remote controller. Resolve the error by restarting the calibration. It is only supported by Phantom 4 RTK.
Return whether secondary video output supported. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.
Enable secondary video output on Remote Controller. The remote controller outputs video to the Mobile Device by default. This will enable a secondary video stream to one of the Remote Controller's physical HDMI and SDI ports. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.
Gets whether secondary video output on Remote Controller is enabled. The Remote Controller outputs video to the Mobile Device by default, but a secondary video can be routed to its HDMI or SDI port. Use setSecondaryVideoOutputEnabled:withCompletion to enable or disable, and setSecondaryVideoOutputPort:withCompletion to choose the port. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.
Sets secondary video output port on Remote Controller. HDMI or SDI are possible. Only one port can be active at once. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.
Gets the secondary video output port on Remote Controller. HDMI or SDI are possible. Only one port can be active at once. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.
Sets the secondary video output Picture in Picture (PIP) display mode. The remote controller module can connect to both an FPV camera (through the HDMI and AV ports) and a camera mounted on the HD Gimbal (through the Gimbal port). The output video can then be a combination of the two video sources. Either a single video source can be displayed, or one can be displayed within the other (as a Picture in Picture, or PIP). If the mode is set incorrectly, then no output video will be displayed. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.
Gets the secondary video output Picture in Picture (PIP) display mode. The air link module can connect to both an FPV camera (through the HDMI and AV ports) and a camera mounted on the HD Gimbal (through the Gimbal port). The output video can then be a combination of the two video sources. Either a single video source can be displayed, or one can be displayed within the other (as a Picture in Picture, or PIP). It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.
Enables and disables On Screen Display (OSD) overlay on the secondary video. OSD is flight data like altitude, attitude etc. And can be overlayed on the PIP video. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.
Sets the OSD units to either metric or imperial. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.
Sets the Remote Controller HDMI video port output video format. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.
- (void)getSecondaryVideoOutputFormatForHDMItWithCompletion:(void (^_Nonnull)(DJIRCSecondaryVideoFormat format, NSError *_Nullable error))completion
Header:
DJIRemoteController.h
Description:
Gets the Remote Controller HDMI video port output video format. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.
Sets the Remote Controller SDI video port output video format. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.
- (void)getSecondaryVideoOutputFormatForSDIWithCompletion:(void (^_Nonnull)(DJIRCSecondaryVideoFormat format, NSError *_Nullable error))completion
Header:
DJIRemoteController.h
Description:
Gets the Remote Controller SDI video port output video format. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.
Sets the PIP (Picture In Picture) position relative to the top left corner of the main subject video feed. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.
Gets the PIP (Picture In Picture) position relative to the top left corner of the main subject video feed. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.
Enables the setting to output video to both the mobile device and the HDMI port on the remote controller simultaneously. When it is disabled and the remote controller is connected to a HDMI display, the mobile device will not receive the live view. It is only supported by Inspire 1 and M100.
Determines whether the setting to output video to both the mobile device and the HDMI port on the remote controller simultaneously is enabled or not. When it is disabled and the remote controller is connected to a HDMI display, the mobile device will not receive the live view. It is only supported by Inspire 1 and M100.