RemoteControllerKey provides methods to set and get data from Remote Controller. Remote Controller has sticks, buttons, wheels, GPS, batteries and output ports for video. The mobile device can be connected to Remote Controller, and Remote Controller will send all information coming from the aircraft to the mobile device.
staticfinal DJIKeyInfo<RemoteControllerType> KeyRemoteControllerType = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"RemoteControllerType", new SingleValueConverter<>(RemoteControllerType.class,RemoteControllerTypeMsg.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
To get remote controller control mode. When calling the get method for the first time, you need to use the asynchronous method getValue to get the value.
static final DJIKeyInfo<BatteryInfo> KeyBatteryInfo = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"BatteryInfo", new DJIValueConverter<>(BatteryInfo.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("RcParamChargeRemaining")
static final DJIKeyInfo<BatteryInfo> KeySecondBatteryInfo = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"SecondBatteryInfo", new DJIValueConverter<>(BatteryInfo.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("SecondRcParamChargeRemaining")
staticfinal DJIKeyInfo<Integer> KeyStickLeftVertical = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"StickLeftVertical", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("RCStickLeftVertical")
Package:
dji.sdk.keyvalue.key
Description:
Parameter:Integer
To get the remote controller left stick vertical offset Value. The value range is [-660,660]. Move the stick to the buttom, the offset value is -660. Move the stick to the top, the offset value is 660.
staticfinal DJIKeyInfo<Integer> KeyStickLeftHorizontal = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"StickLeftHorizontal", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("RCStickLeftHorizontal")
Package:
dji.sdk.keyvalue.key
Description:
Parameter:Integer
To get the remote controller left stick horizontal offset Value. The value range is [-660,660]. Move the stick to the far left, the offset value is -660. Move the stick to the far right, the offset value is 660.
staticfinal DJIKeyInfo<Integer> KeyStickRightVertical = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"StickRightVertical", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("RCStickRightVertical")
Package:
dji.sdk.keyvalue.key
Description:
Parameter:Integer
To get the remote controller right stick vertical offset Value. The value range is [-660,660]. Move the stick to the buttom, the offset value is -660. Move the stick to the top, the offset value is 660.
staticfinal DJIKeyInfo<Integer> KeyStickRightHorizontal = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"StickRightHorizontal", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("RCStickRightHorizontal")
Package:
dji.sdk.keyvalue.key
Description:
Parameter:Integer
To get the remote controller right stick horizontal offset Value. The value range is [-660,660]. Move the stick to the far left, the offset value is -660. Move the stick to the far right, the offset value is 660.
staticfinal DJIKeyInfo<Boolean> KeyPauseButtonDown = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"PauseButtonDown", SingleValueConverter.BooleanConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("RCPauseButtonDown")
Package:
dji.sdk.keyvalue.key
Description:
Parameter:Boolean
true means emergency stop button is pressed. In Matrice 30 Series and Matrice 300 RTK, if emergency stop button is pressed, aircraft will stop intelligent flight.
staticfinal DJIKeyInfo<Integer> KeyLeftDial = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"LeftDial", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("RCLeftWheel")
Package:
dji.sdk.keyvalue.key
Description:
Parameter:Integer
To get remote controller left dial offset value. The value range is [-660,660]. The default value is 0. Turn the wheel to the far left, the value is -660. Turn the wheel to the far right, the value is 660. Left dial is usually used to control the pitch behavior of the gimbal.
staticfinal DJIKeyInfo<Integer> KeyRightDial = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"RightDial", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("RCRightWheel")
Package:
dji.sdk.keyvalue.key
Description:
Parameter:Integer
To get remote controller right dial offset value. The value range is [-660,660]. The default value is 0. Turn the wheel to the far left, the value is -660. Turn the wheel to the far right, the value is 660. Right dial is usually used to control the yaw behavior of the gimbal.
staticfinal DJIKeyInfo<Integer> KeyScrollWheel = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ScrollWheel", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("RCRightNewWheel")
Package:
dji.sdk.keyvalue.key
Description:
Parameter:Integer
To get the rolling amount of the remote controller scroll wheel. For M30 series remote controller DJI RC plus, it is used to monitor the rolling amount of the scroll wheel behind the remote controller, which is usually used to control the zoom of the camera lens.
static final DJIKeyInfo<FiveDimensionPressedStatus> KeyFiveDimensionPressedStatus = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"FiveDimensionPressedStatus", new DJIValueConverter<>(FiveDimensionPressedStatus.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("RcFiveDimensionPressedStatus")
staticfinal DJIKeyInfo<RcFirmwareInfo> KeyRcFirmwareInfo = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"RcFirmwareInfo", new DJIValueConverter<>(RcFirmwareInfo.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
Package:
dji.sdk.keyvalue.key
Description:
Get the current firmware information of the remote controller.
Note: This Key only supports DJI RC Plus remote controller and DJI RC N1 remote controller, and is used to obtain remote controller firmware information and switch firmware type.
staticfinal DJIActionKeyInfo<RcFirmwareType,EmptyMsg> KeySwitchRcFirmware = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"SwitchRcFirmware", new SingleValueConverter<>(RcFirmwareType.class,RcFirmwareMsg.class),EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
Package:
dji.sdk.keyvalue.key
Description:
Switch the remote controller firmware type. Take DJI RC Plus remote controller as an example: DJI RC Plus remote controller can be used for M30 series, M300 RTK and M350 RTK. You can call this interface to switch the firmware of different aircraft, and then call KeyRequestPairing for pairing.
staticfinal DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyRequestPairing = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"RequestPairing", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false).setInnerIdentifier("RcRequestPairing")
Package:
dji.sdk.keyvalue.key
Description:
Start the remote controller pairing operation, then the remote controller will start pairing with the aircraft. When the remote controller cannot be connected to the aircraft or the remote controller is replaced, the remote controller can be connected to the aircraft through pairing operation.
Note: DJI RC Plus remote controller and DJI RC N1 remote controller support multiple aircraft types. Please first call KeyRcFirmwareInfo to get the firmware type of the current remote controller. If the firmware type is inconsistent with the type of aircraft that needs to be paired, please call KeySwitchRcFirmware to switch the firmware of the remote controller to the type that needs to be paired before performing the pairing operation.
static final DJIKeyInfo<PairingState> KeyPairingStatus = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"PairingStatus", new SingleValueConverter<>(PairingState.class,RcPairingStateMsg.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("RcPairingState")
Set the gimbal and camera that the remote controller needs to control. After the aircraft is powered on, the remote controller defaults to controlling the main (left) gimbal and camera. You can set the remote controller to control the right gimbal and camera, or the up gimbal and camera through this key.
static final DJIActionKeyInfo<MultiControlChannel,EmptyMsg> KeyMultiControlRequestPairing = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"MultiControlRequestPairing", new SingleValueConverter<>(MultiControlChannel.class,MultiControlChannelInfo.class),EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false).setInnerIdentifier("StartModePairing")
staticfinal DJIKeyInfo<Integer> KeyMultiControlOnlineAppCount = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"MultiControlOnlineAppCount", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("MultiRcOnlineAPPCount")
Package:
dji.sdk.keyvalue.key
Description:
Parameter:Integer
get the number of currently connected App. NOTICE: The App mentioned here includes DJI's official Apps and Third-party Apps developed through DJI MSDK.
static final DJIKeyInfo<MultiControlStatusInfo> KeyMultiControlStatus = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"MultiControlStatus", new DJIValueConverter<>(MultiControlStatusInfo.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("RcMultiStatus")
To get dual controller connection status. This interface can be used to check the online status of A controller, the Apps in A controller, B controller and the Apps in B controller.
static final DJIKeyInfo<MultiControlFlightControlAuthorityOwnerInfo> KeyMultiControlFlightControlAuthorityOwner = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"MultiControlFlightControlAuthorityOwner", new DJIValueConverter<>(MultiControlFlightControlAuthorityOwnerInfo.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("MultiRCFlightControlAuthOwner")
static final DJIKeyInfo<List<MultiControlChannelInfo>> KeyMultiControlGimbalAuthorityOwner = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"MultiControlGimbalAuthorityOwner", new SingleValueConverter<>((Class)List.class,MultiRcGimbalsControlAuthOwnerMsg.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("MultiRcGimbalsControlAuthOwner")
static final DJIActionKeyInfo<List<MultiControlAuthorityType>,EmptyMsg> KeyMultiControlAuthorityObtain = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"MultiControlAuthorityObtain", new SingleValueConverter<>((Class)List.class,RCAuthorityModes.class),EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false).setInnerIdentifier("MultiRcControlAuthoritySurpass")
Grab control of flight or gimbal. If a remote controller can only control the gimbal, it can use control stocks. If a user has both aircraft flight control and gimbal control, he/she can use control sticks to control the orientation of the aircraft, and gimbal dial to control the gimbal.
static final DJIActionKeyInfo<MultiControlLockAuthorityInfo,EmptyMsg> KeyMultiControlLockAuthority = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"MultiControlLockAuthority", new DJIValueConverter<>(MultiControlLockAuthorityInfo.class),EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false).setInnerIdentifier("MultiRcControlLockRight")
static final DJIKeyInfo<MultiControlLostControlInfo> KeyMultiControlLostControlNotice = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"MultiControlLostControlNotice", new DJIValueConverter<>(MultiControlLostControlInfo.class)).canGet(false).canSet(false).canListen(true).canPerformAction(false).setIsEvent(true).setInnerIdentifier("MultiRcLostNotice")
Monitor the notification event that the remote control with flight control or gimbal control loses connection. When remote controller with flight control loses connection, remote controller without flight control can call KeyMultiControlAuthorityObtain to take over flight control, or call KeyMultiControlExecuteFailSafeActionWhenLostControl to make the aircraft immediately execute the fail safe behavior which gets with KeyFailsafeAction.
final KeyMultiControlExecuteFailSafeActionWhenLostControl
staticfinal DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyMultiControlExecuteFailSafeActionWhenLostControl = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"MultiControlExecuteFailSafeActionWhenLostControl", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false).setInnerIdentifier("MultiRcExecuteAircraftLostLogic")
Package:
dji.sdk.keyvalue.key
Description:
When remote controller with flight control loses connection, remote controller without flight control can call this interface to make the aircraft immediately execute the fail safe behavior which gets with KeyFailsafeAction.