DJI Mobile SDK Documentation

      class FlightControllerKey

      @Keep
      class FlightControllerKey extends DJIFlightControllerKey
      包:dji.sdk.keyvalue.key
      继承自:DJIFlightControllerKey
      描述:

      FlightControllerKey提供了一组方法来获取飞控数据、设置飞控参数和设置飞控行为。飞行控制器是一台机载计算机,它将来自飞手的控制信息与传感器信息相结合,用于调节每桨叶的动力,并根据需要进行飞行。此类可以获取飞行姿态、飞行器状态、飞行模式,可进行飞行控制设置、参数获取、指南针和IMU校准等功能。

      MSDK 5.0.0开始支持

      类成员:

      基础信息

      连接状态
      final KeyConnection
      static final DJIKeyInfo<Boolean> KeyConnection = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"Connection", SingleValueConverter.BooleanConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Boolean

      true表示飞控已连接。

      MSDK 5.0.0开始支持

      飞行状态
      final KeyIsFlying
      static final DJIKeyInfo<Boolean> KeyIsFlying = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"IsFlying", SingleValueConverter.BooleanConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      true表示飞行器在飞行中。

      MSDK 5.0.0开始支持

      final KeyFlightTimeInSeconds
      static final DJIKeyInfo<Integer> KeyFlightTimeInSeconds = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"FlightTimeInSeconds", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      自飞行器电机起转以来累计的飞行时间,单位:0.1秒。该数值在电池重新上电后才会清零。

      MSDK 5.0.0开始支持

      飞行器位置
      final KeyAircraftLocation3D
      static final DJIKeyInfo<LocationCoordinate3D> KeyAircraftLocation3D = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"AircraftLocation3D", new DJIValueConverter<>(LocationCoordinate3D.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: LocationCoordinate3D

      获取飞行器的位置,包括经纬度和高度。

      MSDK 5.0.0开始支持

      飞行器姿态数据
      final KeyAircraftAttitude
      static final DJIKeyInfo<Attitude> KeyAircraftAttitude = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"AircraftAttitude", new DJIValueConverter<>(Attitude.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("Attitude")
      包:dji.sdk.keyvalue.key
      描述:

      参数: Attitude

      飞行器当前姿态数据。俯仰、横滚和偏航值的范围:[-180,180]。如果其俯仰、横滚和偏航值为0,则表示飞行器将以正北方向水平悬停。

      MSDK 5.0.0开始支持

      飞行器速度
      final KeyAircraftVelocity
      static final DJIKeyInfo<Velocity3D> KeyAircraftVelocity = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"AircraftVelocity", new DJIValueConverter<>(Velocity3D.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("Velocity")
      包:dji.sdk.keyvalue.key
      描述:

      参数: Velocity3D

      飞行器当前飞行速度,使用北东地(NED)坐标系。

      MSDK 5.0.0开始支持

      起飞海拔高度
      final KeyTakeoffLocationAltitude
      static final DJIKeyInfo<Double> KeyTakeoffLocationAltitude = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"TakeoffLocationAltitude", SingleValueConverter.DoubleConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Double

      飞行器起飞时的海拔高度,单位为米。

      MSDK 5.0.0开始支持

      飞行日志
      final KeyFlightLogIndex
      static final DJIKeyInfo<Integer> KeyFlightLogIndex = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"FlightLogIndex", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Integer

      获取当前飞行日志的索引,当需要查找相应的飞行日志时非常有用。

      MSDK 5.0.0开始支持

      序列号
      final KeySerialNumber
      static final DJIKeyInfo<String> KeySerialNumber = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"SerialNumber", SingleValueConverter.StringConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: String

      获取飞控序列号。

      MSDK 5.0.0开始支持

      固件版本号
      final KeyFirmwareVersion
      static final DJIKeyInfo<String> KeyFirmwareVersion = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"FirmwareVersion", SingleValueConverter.StringConverter).canGet(true).canSet(false).canListen(false).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: String

      获取飞控固件版本。

      MSDK 5.0.0开始支持


      传感器

      final KeyGPSSatelliteCount
      static final DJIKeyInfo<Integer> KeyGPSSatelliteCount = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"GPSSatelliteCount", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("SatelliteCount")
      包:dji.sdk.keyvalue.key
      描述:

      参数: Integer

      获取GPS卫星个数。通常在高空飞行能达到12颗星以上,时段良好时能达到18~19颗。

      MSDK 5.0.0开始支持

      final KeyGPSSignalLevel
      static final DJIKeyInfo<GPSSignalLevel> KeyGPSSignalLevel = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"GPSSignalLevel", new SingleValueConverter<>(GPSSignalLevel.class,FCGPSSignalLevelMsg.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: GPSSignalLevel

      获取GPS信号等级。

      MSDK 5.0.0开始支持

      指南针
      final KeyCompassCount
      static final DJIKeyInfo<Integer> KeyCompassCount = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"CompassCount", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Integer

      获取指南针个数。

      MSDK 5.0.0开始支持

      final KeyCompassHeading
      static final DJIKeyInfo<Double> KeyCompassHeading = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"CompassHeading", SingleValueConverter.DoubleConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Double

      获取指南针朝向,单位:度。正北为0度,正东为90度,范围:[-180,180]。

      MSDK 5.0.0开始支持

      final KeyCompassHasError
      static final DJIKeyInfo<Boolean> KeyCompassHasError = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"CompassHasError", SingleValueConverter.BooleanConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Boolean

      true表示指南针数据错误。当飞行器在强干扰或磁场区域使用时,可能出现指南针数据错误。你需要调用KeyStartCompassCalibration进行指南针校准。

      MSDK 5.0.0开始支持

      final KeyStartCompassCalibration
      static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyStartCompassCalibration = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"StartCompassCalibration", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      启动指南针校准。确保飞行器附近没有磁铁或金属物体,并把飞行器置于离地1.5米左右操作。你可以通过KeyCompassCalibrationStatus获取校准状态。
      以下是指南针校准的操作流程,以M30为例:

    • 1. 调用KeyStartCompassCalibration启动指南针校准,CompassCalibrationState会变成水平校准状态HORIZONTAL,参考下图水平旋转飞行器360度进行水平校准。
    • 2. 水平校准成功后,CompassCalibrationState会变成垂直校准状态VERTICAL,参考下图垂直旋转飞行器360度进行垂直校准。
    • 3. 校准成功后,CompassCalibrationState会变成校准成功状态SUCCEEDED

    • 注意:
      请勿在飞行器电机起转后启动指南针校准。可通过KeyAreMotorsOn判断飞行器电机是否起转。


      MSDK 5.0.0开始支持
      final KeyStopCompassCalibration
      static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyStopCompassCalibration = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"StopCompassCalibration", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      停止指南针校准。

      MSDK 5.0.0开始支持

      final KeyIsCompassCalibrating
      static final DJIKeyInfo<Boolean> KeyIsCompassCalibrating = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"IsCompassCalibrating", SingleValueConverter.BooleanConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Boolean

      true表示正在进行指南针校准。

      MSDK 5.0.0开始支持

      final KeyCompassCalibrationStatus
      static final DJIKeyInfo<CompassCalibrationState> KeyCompassCalibrationStatus = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"CompassCalibrationStatus", new SingleValueConverter<>(CompassCalibrationState.class,FCCompassCalibrationStateMsg.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("CompassCalibrationState")
      包:dji.sdk.keyvalue.key
      描述:

      参数: CompassCalibrationState

      获取指南针校准状态。

      MSDK 5.0.0开始支持

      final KeyIMUCount
      static final DJIKeyInfo<Integer> KeyIMUCount = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"IMUCount", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Integer

      获取IMU个数。

      MSDK 5.0.0开始支持

      final KeyStartIMUCalibration
      static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyStartIMUCalibration = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"StartIMUCalibration", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      启动IMU校准。对于具有多个IMU的飞行器,此方法将进行所有IMU的校准。 建议在IMU校准后调用KeyRebootDevice重启设备。

      以下是IMU校准的操作流程:

    • 1. 调用KeyStartIMUCalibration启动IMU校准,通过监听KeyIMUCalibrationInfo获取IMU校准信息。IMUCalibrationState变成校准中CALIBRATING则表示成功启动IMU校准。
    • 2. 调用getOrientationsToCalibrate获取未校准的飞机方向列表。参考IMUCalibrationOrientation中的图示,依次摆放飞机进行单个飞机方向的IMU校准,在校准过程中保持飞行器静止和水平。
    • 3. 调用getOrientationCalibrationState获取单个飞机方向的IMU校准状态,当校准状态变成SUCCESSFUL再摆放下一个方向。
    • 3. 当未校准的飞机方向列表getOrientationsToCalibrate为空的时候,getOrientationCalibrationState获取到的总体校准状态变成校准成功状态SUCCESSFUL则表示IMU校准已完成。

    • 注意:
      请勿在飞行器电机起转后启动IMU校准。可通过KeyAreMotorsOn判断飞行器电机是否起转。


      MSDK 5.0.0开始支持

      final KeyIMUCalibrationInfo
      static final DJIKeyInfo<IMUCalibrationInfo> KeyIMUCalibrationInfo = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"IMUCalibrationInfo", new DJIValueConverter<>(IMUCalibrationInfo.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("IMUCalibrationHint")
      包:dji.sdk.keyvalue.key
      描述:

      参数: IMUCalibrationInfo

      获取IMU校准信息。IMU校准包含多个飞机方向的IMU校准,IMU校准信息包括IMU总体校准状态,每个飞机方向的校准状态以及未校准的飞行方向列表和已校准飞机方向列表。

      MSDK 5.1.0开始支持

      final KeyUltrasonicHeight
      static final DJIKeyInfo<Integer> KeyUltrasonicHeight = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"UltrasonicHeight", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Integer

      获取超声波测距高度。该高度为飞机起飞后,从上往下测量的距离。单位:分米,最大可测距离为25.5米。

      MSDK 5.0.0开始支持

      final KeyWindWarning
      static final DJIKeyInfo<WindWarning> KeyWindWarning = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"WindWarning", new SingleValueConverter<>(WindWarning.class,FCWindWarningMsg.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: WindWarning

      获取当前风速等级。

      MSDK 5.0.0开始支持

      final KeyWindSpeed
      static final DJIKeyInfo<Integer> KeyWindSpeed = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"WindSpeed", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Integer

      获取当前风速,单位:dm/s。

      MSDK 5.0.0开始支持

      final KeyWindDirection
      static final DJIKeyInfo<WindDirection> KeyWindDirection = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"WindDirection", new SingleValueConverter<>(WindDirection.class,FCWindDirectionStatusMsg.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: WindDirection

      获取当前风向,采用世界坐标系。

      MSDK 5.0.0开始支持


      基本设置

      final KeyMultipleFlightModeEnabled
      static final DJIKeyInfo<Boolean> KeyMultipleFlightModeEnabled = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"MultipleFlightModeEnabled", SingleValueConverter.BooleanConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Boolean

      true表示允许切换飞行器的飞行模式。用户可以通过拨动遥控器上的三段选择开关将飞行器的飞行模式KeyFlightMode设置为T三脚架、A姿态、P(N)定位、S运动模式。 如果设置为false,飞行器将一直处于P(N)定位模式,不可被更改。

      MSDK 5.0.0开始支持

      final KeyRemoteControllerFlightMode
      static final DJIKeyInfo<RemoteControllerFlightMode> KeyRemoteControllerFlightMode = new KeyRemoteControllerFlightMode().canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: RemoteControllerFlightMode

      获取遥控器档位模式。

      MSDK 5.0.0开始支持

      final KeyFlightMode
      static final DJIKeyInfo<FlightMode> KeyFlightMode = new KeyFlightMode().canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: FlightMode

      获取飞行器的飞行模式。

      MSDK 5.1.0开始支持

      final KeyIsFailSafe
      static final DJIKeyInfo<Boolean> KeyIsFailSafe = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"IsFailSafe", SingleValueConverter.BooleanConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Boolean

      true表示飞行器失控中,即将进行失控行为。

      MSDK 5.0.0开始支持

      final KeyFailsafeAction
      static final DJIKeyInfo<FailsafeAction> KeyFailsafeAction = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"FailsafeAction", new SingleValueConverter<>(FailsafeAction.class,FCFailsafeActionMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: FailsafeAction

      设置和获取失控行为。当遥控器和飞行器失去连接的时候,飞行器将按照设置的失控行为进行操作。

      MSDK 5.0.0开始支持

      final KeyLowBatteryWarningThreshold
      static final DJIKeyInfo<Integer> KeyLowBatteryWarningThreshold = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"LowBatteryWarningThreshold", SingleValueConverter.IntegerConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Integer

      设置和获取电池低电量警告的阈值。该数值为百分比,范围:[15,50]。当电池电量低于该阀值时,飞行器将进行低电量报警。

      MSDK 5.0.0开始支持

      final KeyIsLowBatteryWarning
      static final DJIKeyInfo<Boolean> KeyIsLowBatteryWarning = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"IsLowBatteryWarning", SingleValueConverter.BooleanConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Boolean

      true表示当前电池处于低电量状态。

      MSDK 5.0.0开始支持

      final KeySeriousLowBatteryWarningThreshold
      static final DJIKeyInfo<Integer> KeySeriousLowBatteryWarningThreshold = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"SeriousLowBatteryWarningThreshold", SingleValueConverter.IntegerConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Integer

      获取电池严重低电量警告的阈值。该值默认为10%,Matrice 30 Series不可设置。当电池电量低于该阀值时,飞行器将进行返航操作。

      MSDK 5.0.0开始支持

      final KeyIsSeriousLowBatteryWarning
      static final DJIKeyInfo<Boolean> KeyIsSeriousLowBatteryWarning = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"IsSeriousLowBatteryWarning", SingleValueConverter.BooleanConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Boolean

      true表示当前电池处于严重低电量状态。

      MSDK 5.0.0开始支持

      final KeyLEDsSettings
      static final DJIKeyInfo<LEDsSettings> KeyLEDsSettings = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"LEDsSettings", new DJIValueConverter<>(LEDsSettings.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: LEDsSettings

      LED相关设置。支持前臂灯、状态指示灯、夜航灯的设置。

      MSDK 5.0.0开始支持

      电机电调
      final KeyAreMotorsOn
      static final DJIKeyInfo<Boolean> KeyAreMotorsOn = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"AreMotorsOn", SingleValueConverter.BooleanConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Boolean

      true表示电机起转。

      MSDK 5.0.0开始支持

      final KeyLockMotors
      static final DJIKeyInfo<Boolean> KeyLockMotors = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"LockMotors", SingleValueConverter.BooleanConverter).canGet(false).canSet(true).canListen(false).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Boolean

      true表示锁住电机,掰杆后电机将不会转动。

      MSDK 5.0.0开始支持

      final KeyESCBeepEnabled
      static final DJIKeyInfo<Boolean> KeyESCBeepEnabled = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ESCBeepEnabled", SingleValueConverter.BooleanConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Boolean

      true表示开启电调鸣叫功能。当飞行器不慎失联,可开启此功能,通过声音辨别飞行器方位。如果当前电机已起转,请停转电机再试。

      MSDK 5.0.0开始支持

      final KeyCoordinatedTurnEnabled
      static final DJIKeyInfo<Boolean> KeyCoordinatedTurnEnabled = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"CoordinatedTurnEnabled", SingleValueConverter.BooleanConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Boolean

      true表示开启协调转弯功能。飞行器转弯时机头跟随飞行方向,没有侧滑的飞行,飞行阻力更小。

      MSDK 5.0.0开始支持

      final KeyNavigationSatelliteSystemSource
      static final DJIKeyInfo<NavigationSatelliteSystem> KeyNavigationSatelliteSystemSource = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"NavigationSatelliteSystemSource", new SingleValueConverter<>(NavigationSatelliteSystem.class,NavigationSatelliteSystemMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: NavigationSatelliteSystem

      设置使用的卫星定位系统,仅在RTK定位功能关闭下支持设置卫星定位系统,飞行器在空中无法进行修改。切换卫星定位系统后,请确认卫星信号LEVEL_3以上再起飞。如果你开启了RTK定位功能,飞控会同时使用GPS、GLONASS、Galileo和北斗卫星定位系统。

      MSDK 5.0.0开始支持


      基本操作

      final KeyStartTakeoff
      static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyStartTakeoff = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"StartTakeoff", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      启动飞行器自主起飞。当飞行器悬停在离地面1.2米(4英尺)的高度时表示起飞完成。如果电机已经开启,将无法执行此命令。

      MSDK 5.0.0开始支持

      final KeyStopTakeoff
      static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyStopTakeoff = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"StopTakeoff", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      停止飞行器自主起飞。如果在自主起飞完成之前调用此接口,飞行器将取消起飞并悬停在当前高度。如果已经自主起飞已经完成,将无法执行此命令。

      MSDK 5.0.0开始支持

      final KeyStartAutoLanding
      static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyStartAutoLanding = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"StartAutoLanding", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      启动飞行器自主降落。

      MSDK 5.0.0开始支持

      final KeyStopAutoLanding
      static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyStopAutoLanding = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"StopAutoLanding", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      停止飞行器自主降落。如果在自主降落过程中调用此接口,飞行器将会停止自主降落,并且悬停在当前位置。

      MSDK 5.0.0开始支持

      final KeyIsLandingConfirmationNeeded
      static final DJIKeyInfo<Boolean> KeyIsLandingConfirmationNeeded = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"IsLandingConfirmationNeeded", SingleValueConverter.BooleanConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Boolean

      true表示飞行器降落到离地0.5米的时候,需要发送强制降落指令KeyConfirmLanding才能继续降落着陆。

      MSDK 5.0.0开始支持

      final KeyConfirmLanding
      static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyConfirmLanding = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"ConfirmLanding", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      确认继续降落着陆。当飞行器与地面的距离小于0.7m时,飞行器将暂停着陆,等待用户确认。 可以通过KeyIsLandingConfirmationNeeded来检查是否需要确认降落。

      MSDK 5.0.0开始支持

      final KeyRebootDevice
      static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyRebootDevice = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"RebootDevice", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      重启飞行器的核心设备。建议在IMU校准后调用此方法。
      注意:
      请勿在飞行器电机起转后重启飞行器的核心设备。可通过KeyAreMotorsOn判断飞行器电机是否起转。


      MSDK 5.0.0开始支持

      final KeyHeightLimitRange
      static final DJIKeyInfo<IntMinMax> KeyHeightLimitRange = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"HeightLimitRange", new DJIValueConverter<>(IntMinMax.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: IntMinMax

      获取限高设置范围,单位:米。

      MSDK 5.0.0开始支持

      final KeyHeightLimit
      static final DJIKeyInfo<Integer> KeyHeightLimit = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"HeightLimit", SingleValueConverter.IntegerConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Integer

      设置飞行器的最大飞行高度。单位:米。可通过KeyHeightLimitRange获取设置范围。

      MSDK 5.0.0开始支持

      final KeyIsNearHeightLimit
      static final DJIKeyInfo<Boolean> KeyIsNearHeightLimit = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"IsNearHeightLimit", SingleValueConverter.BooleanConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Boolean

      true表示飞行器已达到最大飞行高度。

      MSDK 5.0.0开始支持

      final KeyDistanceLimitEnabled
      static final DJIKeyInfo<Boolean> KeyDistanceLimitEnabled = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"DistanceLimitEnabled", SingleValueConverter.BooleanConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Boolean

      true表示开启限远开关。开启此开关后,你可以通过KeyDistanceLimit设置飞行器的最大飞行距离。

      MSDK 5.0.0开始支持

      final KeyDistanceLimitRange
      static final DJIKeyInfo<IntMinMax> KeyDistanceLimitRange = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"DistanceLimitRange", new DJIValueConverter<>(IntMinMax.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: IntMinMax

      获取限远设置范围,单位:米。

      MSDK 5.0.0开始支持

      final KeyDistanceLimit
      static final DJIKeyInfo<Integer> KeyDistanceLimit = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"DistanceLimit", SingleValueConverter.IntegerConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Integer

      设置飞行器的最大飞行距离。单位:米。此距离是飞行器与返航点之间的距离。可通过KeyDistanceLimitRange获取设置范围。

      MSDK 5.0.0开始支持

      final KeyIsNearDistanceLimit
      static final DJIKeyInfo<Boolean> KeyIsNearDistanceLimit = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"IsNearDistanceLimit", SingleValueConverter.BooleanConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Boolean

      true表示飞行器已达到最大飞行距离。

      MSDK 5.0.0开始支持


      返航功能

      final KeyIsHomeLocationSet
      static final DJIKeyInfo<Boolean> KeyIsHomeLocationSet = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"IsHomeLocationSet", SingleValueConverter.BooleanConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Boolean

      true表示返航点已设置。当GPS信号良好时,飞行器会自动把当前飞行器位置设置为返航点,此时KeyIsHomeLocationSet将返回true

      MSDK 5.0.0开始支持

      final KeyHomeLocation
      static final DJIKeyInfo<LocationCoordinate2D> KeyHomeLocation = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"HomeLocation", new DJIValueConverter<>(LocationCoordinate2D.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: LocationCoordinate2D

      设置和获取当前返航点的位置,包括经纬度。当GPS信号良好时,飞行器会自动把当前飞行器位置设置为返航点,你也可以使用这个key改变返航点位置。

      MSDK 5.0.0开始支持

      final KeyGoHomeHeight
      static final DJIKeyInfo<Integer> KeyGoHomeHeight = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"GoHomeHeight", SingleValueConverter.IntegerConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: Integer

      设置和获取返航时的相对高度,单位:米。此相对高度是相对于起飞时的高度。可通过KeyGoHomeHeightRange获取返航高度设置范围。 如果飞行器水平距离返航点50米内,飞行器将忽略设置的返航高度,以飞行器当前高度返航。如果此时前视视觉系统未正常工作,飞行器将上升到预设的高度进行返航。

      MSDK 5.0.0开始支持

      final KeyGoHomeHeightRange
      static final DJIKeyInfo<IntMinMax> KeyGoHomeHeightRange = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"GoHomeHeightRange", new DJIValueConverter<>(IntMinMax.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: IntMinMax

      获取返航高度设置范围,单位:米。

      MSDK 5.0.0开始支持

      final KeyHomeLocationUsingCurrentAircraftLocation
      static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyHomeLocationUsingCurrentAircraftLocation = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"HomeLocationUsingCurrentAircraftLocation", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      将飞行器的当前位置设置为返航点位置。

      MSDK 5.0.0开始支持

      final KeyStartGoHome
      static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyStartGoHome = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"StartGoHome", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      启动智能返航。当GPS信号不好的时候,不可启动智能返航功能。 你也可以通过遥控器智能返航按键启动智能返航,返航过程用户可通过油门杆控制飞行器高度和俯仰杆控制飞行器速度以躲避障碍物。返航过程中,通过遥控器上的智能返航按键或者调用KeyStopGoHome退出智能返航后,用户可重新获得飞行器控制权。你可以通过KeyGoHomeStatus获取智能返航状态。

      MSDK 5.0.0开始支持

      final KeyStopGoHome
      static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyStopGoHome = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"StopGoHome", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      停止智能返航。

      MSDK 5.0.0开始支持

      final KeyGoHomeStatus
      static final DJIKeyInfo<GoHomeState> KeyGoHomeStatus = new KeyGoHomeStatus().canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
      包:dji.sdk.keyvalue.key
      描述:

      参数: GoHomeState

      获取智能返航状态。

      MSDK 5.0.0开始支持

      低电量返航
      final KeyLowBatteryRTHEnabled
      static final DJIKeyInfo<Boolean> KeyLowBatteryRTHEnabled = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"LowBatteryRTHEnabled", SingleValueConverter.BooleanConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("SmartBatteryRTHEnabled")
      包:dji.sdk.keyvalue.key
      描述:

      参数: Boolean

      true表示开启智能低电量返航功能。为防止因电池电量不足而出现不必要的危险,飞行器将会根据飞行的位置信息,智能地判断当前电量是否充足。若当前电量仅够完成返航过程,MSDK将提示是否需要执行返航。若用户在10秒内不作选择,则10秒后飞行器将自动进入返航。返航过程中可短按遥控器智能返航按键取消返航过程。智能低电量返航在同一次飞行过程中仅出现一次。如果用户取消低电量返航提醒并继续飞行,将可能导致飞行器返回时电量不足而迫降,造成飞行器丢失或坠毁。为了安全起见,不建议关闭此功能。

      MSDK 5.0.0开始支持

      final KeyLowBatteryRTHInfo
      static final DJIKeyInfo<LowBatteryRTHInfo> KeyLowBatteryRTHInfo = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"LowBatteryRTHInfo", new DJIValueConverter<>(LowBatteryRTHInfo.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("GoHomeAssessment")
      包:dji.sdk.keyvalue.key
      描述:

      参数: LowBatteryRTHInfo

      获取智能低电量返航相关信息。仅在KeyLowBatteryRTHEnabled开启后有效。

      MSDK 5.0.0开始支持


      安全密码

      final KeyAccessLockerAllDeviceStatus
      static final DJIKeyInfo<List<AccessLockerDeviceStatus>> KeyAccessLockerAllDeviceStatus = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"AccessLockerAllDeviceStatus", new SingleValueConverter<>((Class)List.class,AccessLockerV1AllDeviceStates.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("AccessLockerV1AllDeviceStates")
      包:dji.sdk.keyvalue.key
      描述:

      参数: List<AccessLockerDeviceStatus>

      获取存储设备的安全密码状态。可通过此接口获取飞行器上的存储设备是否支持安全密码功能,是否开启安全密码功能以及是否需要验证安全密码。
      安全密码是为了保护您的媒体数据安全。设置安全密码后,MSDK App连接飞行器后需要进行密码校验,验证通过后才可以进行拍照录像以及读写存储设备中的媒体数据。

    • getIsFeatureSupportedtrue,表示该存储设备支持安全密码功能。你可以调用KeyAccessLockerSetSecurityCode设置安全密码。
    • getIsFeatureEnabledtrue,表示该存储设备的安全密码功能已开启。你可以调用KeyAccessLockerModifySecurityCode进行安全密码修改。如果你忘记了安全密码,你可以调用KeyAccessLockerResetSecurityCode重置安全密码。
    • getIsFeatureNeedToBeVerifiedtrue,表示该存储设备需要验证安全密码。请调用KeyAccessLockerVerifySecurityCode进行安全密码验证,否则将无法进行拍照录像,并且无法读写存储设备中的媒体数据。当飞行器重启或者存储设备拔插后通常需要验证安全密码。
    • DJI不会在设备上存储用户密码,也不会回传DJI。
    • 用户忘记密码后,不支持找回密码。如您不慎遗失安全密码,只能通过格式化的方式来解锁存储设备。
    • 安全密码仅支持禅思H20系列相机及M30系列机型相机,暂不支持禅思 P1、禅思 L1以及其他第三方负载。

      MSDK 5.1.0开始支持
    • final KeyAccessLockerSetSecurityCode
      static final DJIActionKeyInfo<AccessLockerSetSecurityCodeInfo,EmptyMsg> KeyAccessLockerSetSecurityCode = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"AccessLockerSetSecurityCode", new DJIValueConverter<>(AccessLockerSetSecurityCodeInfo.class),EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false).setInnerIdentifier("AccessLockerV1SetupUserAccount")
      包:dji.sdk.keyvalue.key
      描述:

      参数: AccessLockerSetSecurityCodeInfo

      设置安全密码。可通过此接口选择设备和存储类型进行安全密码设置。

    • 设置安全密码后存储设备将被格式化,请确认媒体数据已备份。
    • 请妥善保管安全密码,遗失后将无法找回,只能通过格式化的方式来解锁存储设备。
    • 你设置的密码长度需要至少4位,建议使用数字,大写、小写字母组成密码。


    • MSDK 5.1.0开始支持

      final KeyAccessLockerVerifySecurityCode
      static final DJIActionKeyInfo<AccessLockerVerifySecurityCodeInfo,EmptyMsg> KeyAccessLockerVerifySecurityCode = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"AccessLockerVerifySecurityCode", new DJIValueConverter<>(AccessLockerVerifySecurityCodeInfo.class),EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false).setInnerIdentifier("AccessLockerV1VerifyUserAccount")
      包:dji.sdk.keyvalue.key
      描述:

      参数: AccessLockerVerifySecurityCodeInfo

      校验安全密码。可通过此接口校验安全密码,验证通过后才可以进行拍照录像以及读写存储设备中的媒体数据。

      MSDK 5.1.0开始支持

      final KeyAccessLockerModifySecurityCode
      static final DJIActionKeyInfo<AccessLockerModifySecurityCodeInfo,EmptyMsg> KeyAccessLockerModifySecurityCode = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"AccessLockerModifySecurityCode", new DJIValueConverter<>(AccessLockerModifySecurityCodeInfo.class),EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false).setInnerIdentifier("AccessLockerV1ModifyUserAccount")
      包:dji.sdk.keyvalue.key
      描述:

      参数: AccessLockerModifySecurityCodeInfo

      修改安全密码。

      MSDK 5.1.0开始支持

      final KeyAccessLockerResetSecurityCode
      static final DJIActionKeyInfo<AccessLockerResetSecurityCodeInfo,EmptyMsg> KeyAccessLockerResetSecurityCode = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"AccessLockerResetSecurityCode", new DJIValueConverter<>(AccessLockerResetSecurityCodeInfo.class),EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false).setInnerIdentifier("AccessLockerV1ResetUserAccount")
      包:dji.sdk.keyvalue.key
      描述:

      参数: AccessLockerResetSecurityCodeInfo

      重置安全密码。重置安全密码将会格式化存储设备,请确认媒体数据已备份。

      MSDK 5.1.0开始支持