DJI Mobile SDK Documentation

      class Payload

      class Payload extends BaseComponent
      Package:dji.sdk.payload
      Inherits From:BaseComponent
      Description:

      Class used to interact with the payload device mounted on DJI aircraft.
      Note: In the MSDK V4 version, the PSDK payload device cannot be used with Zenmuse L1 and Zenmuse P1 at the same time. If you need to use them at the same time, please upgrade to MSDK V5.

      Class Members:
      Pipe Lines
      method
      method getPipelines
      Pipelines getPipelines()
      Package:dji.sdk.payload
      Description:

      The pipelines to transmit data between DJI Payload device and DJI mobile SDK. This function does not support dual controllers scenarios. It's only supported by Matrice 300 RTK.

      Return:
      PipelinesThe Pipelines objects.
      Upstream Bandwidth
      method
      method getUpstreamBandwidth
      void getUpstreamBandwidth(final CommonCallbacks.CompletionCallbackWith<Float> callback)
      Package:dji.sdk.payload
      Description:

      Gets the bandwidth of the upstream (from Mobile SDK to Payload). The unit is bytes/s. The bandwidth is determined by the firmware and currently it is not larger than 500 bytes/s.

      Input Parameters:
      final CommonCallbacks.CompletionCallbackWith<Float> callbackThe execution callback with the returned value(s).
      Product Name
      method
      method getPayloadProductName
      String getPayloadProductName()
      Package:dji.sdk.payload
      Description:

      Gets the product name defined by the manufacturer of the payload device.

      Return:
      StringThe product name of the payload device.
      Check Video Streaming Channel Available
      method
      method isDJIVideoStreamingChannelAvailable
      boolean isDJIVideoStreamingChannelAvailable()
      Package:dji.sdk.payload
      Description:

      When it returns true, video stream type on PSDK is set to DJI video streaming channel. Please use VideoDataListener in DJIVideoFeeder to receive the video data. When it returns false, video stream type on PSDK is set to custom video streaming channel. Please use onVideoDataReceived to receive custom video data.

      Return:
      booleantrue if DJI video streaming channel is available.
      Widget Value
      method
      method configureWidgetValue
      void configureWidgetValue(int index, PayloadWidget.PayloadWidgetType type, int value, CommonCallbacks.CompletionCallback callback)
      Package:dji.sdk.payload
      Description:

      Set the value for a widget of the payload device.

      Input Parameters:
      int indexIndex of the widget.
      PayloadWidget.PayloadWidgetType typeType of the widget.
      int valueValue of the widget.
      CommonCallbacks.CompletionCallback callbackThe execution callback with the returned value(s).
      Get Widget
      method
      method getWidget
      PayloadWidget getWidget(int widgetIndex, PayloadWidget.PayloadWidgetType widgetType)
      Package:dji.sdk.payload
      Description:

      Gets a widget by specifying the widget type and the index.

      Input Parameters:
      int widgetIndexThe index of the widget.
      PayloadWidget.PayloadWidgetType widgetTypeThe type of the widget.
      Return:
      PayloadWidgetThe widget corresponding to the widget type and the index. null if the widgets are not ready or there is no widget corresponding to the widget type and the index.
      Get Widgets
      method
      method getWidgets
      PayloadWidget[] getWidgets()
      Package:dji.sdk.payload
      Description:

      Gets the full list of widgets on the payload device. A new instance of "NSArray" is returned when one of the widget is updated. Please use getConfigInterfaceWidgets instead.

      Return:
      PayloadWidget[]The full list of widgets. null if the widgets are not fetched yet.
      Get Main Interface Widgets
      method
      method getMainInterfaceWidgets
      PayloadWidget[] getMainInterfaceWidgets()
      Package:dji.sdk.payload
      Description:

      Gets the main interface widget list on the payload device. An empty array will be returned if the payload's data is regarded as invalid.

      Return:
      PayloadWidget[]A list of widgets. Returns nil if no widgets are fetched.
      Get Config Interface Widgets
      method
      method getConfigInterfaceWidgets
      PayloadWidget[] getConfigInterfaceWidgets()
      Package:dji.sdk.payload
      Description:

      Gets the configuration interface widget list on the payload device. An empty array will be returned if the payload's data is regarded as invalid.

      Return:
      PayloadWidget[]A list of widgets. Returns nil if no widgets are fetched.
      Send Data
      method
      method sendDataToPayload
      void sendDataToPayload(byte[] data, CommonCallbacks.CompletionCallback callback)
      Package:dji.sdk.payload
      Description:

      Sends data to payload.
      - The length of the data to send cannot exceed 32 bytes for Matrice 200 series.
      - The length of the data to send cannot exceed 128 bytes for Matrice 200 V2 series. The throughput cannot exceed the bandwidth returned by getUpstreamBandwidth.

      Input Parameters:
      byte[] dataData that will be sent to the payload device.
      CommonCallbacks.CompletionCallback callbackThe execution callback with the returned value(s).
      method getDeviceType
      PayloadDeviceType getDeviceType()
      Package:dji.sdk.payload
      Description:

      Gets the device type.

      Return:
      PayloadDeviceTypeGet an enum value of PayloadDeviceType.
      method getProductPhase
      PayloadProductPhase getProductPhase()
      Package:dji.sdk.payload
      Description:

      Gets current payload product phase.

      Return:
      PayloadProductPhaseGet the enum value of PayloadProductPhase.
      Check Feature Open
      method
      method isFeatureOpened
      boolean isFeatureOpened()
      Package:dji.sdk.payload
      Description:

      Gets the product feature open status. If the product's feature isn't fully opened, there are several possibilities.
      - Payload status is abnormal.
      - PSDK is not bound.
      - Encryption chip exception.
      - The aircraft doesn't support this Payload model.

      Return:
      booleantrue if the product is activated.
      method addWidgetValueChangedCallback
      void addWidgetValueChangedCallback(int index, PayloadWidget.PayloadWidgetType type, WidgetValueChangedCallback callback)
      Package:dji.sdk.payload
      Description:

      Set a callback for the specific widget, if the value of the widget is changed, the callback will be called.

      Input Parameters:
      int indexThe index of the widget.
      PayloadWidget.PayloadWidgetType typeAn enum value of PayloadWidgetType.
      WidgetValueChangedCallback callbackThe interface of WidgetValueChangedCallback.
      method removeWidgetValueChangedCallback
      void removeWidgetValueChangedCallback(int index, PayloadWidget.PayloadWidgetType type, WidgetValueChangedCallback callback)
      Package:dji.sdk.payload
      Description:

      Remove a callback for the widget.

      Input Parameters:
      int indexThe index of the widget.
      PayloadWidget.PayloadWidgetType typeAn enum value of PayloadWidgetType.
      WidgetValueChangedCallback callbackThe interface of WidgetValueChangedCallback.
      method removeWidgetValueChangedCallback
      void removeWidgetValueChangedCallback(WidgetValueChangedCallback callback)
      Package:dji.sdk.payload
      Description:

      Remove a callback for the widget.

      Input Parameters:
      WidgetValueChangedCallback callbackThe interface of WidgetValueChangedCallback.

      State Updates

      General
      method
      method setMessageCallback
      void setMessageCallback(HintMessageCallback callback)
      Package:dji.sdk.payload
      Description:

      Set the message callback, message is a string, the content of string is determined by firmware, it could be changed dynamically.

      Input Parameters:
      HintMessageCallback callbackThe interface of HintMessageCallback.
      method setCommandDataCallback
      void setCommandDataCallback(CommandDataCallback callback)
      Package:dji.sdk.payload
      Description:

      Set the command data callback, the command data typically sent by payload in UART/CAN channel, the max bandwidth of this channel is 3KBytes/s on M200.

      Input Parameters:
      CommandDataCallback callbackThe interface of CommandDataCallback.
      method setVideoDataReceivedCallback
      void setVideoDataReceivedCallback(VideoDataReceivedCallback callback)
      Package:dji.sdk.payload
      Description:

      Set the video data callback, the video data from the payload device. The data may be live view or playback. Only supported by Matrice 300 RTK.

      Input Parameters:
      VideoDataReceivedCallback callbackThe interface of VideoDataReceivedCallback.
      method setStreamDataCallback
      void setStreamDataCallback(StreamDataCallback callback)
      Package:dji.sdk.payload
      Description:

      Set the UDP data callback, this callback is for receiving the Non-Video data in UDP channel, the max bandwidth of this channel is 8Mbps in M200, 4Mbps in M210.

      Input Parameters:
      StreamDataCallback callbackThe interface of StreamDataCallback.


      General
      class
      Callbacks
      class
      method fetchPayloadWidgetsFile
      void fetchPayloadWidgetsFile(final PayloadWidgetDownloadListener listener)
      Package:dji.sdk.payload
      Description:

      Fetches widget configuration. Mobile SDK will fetch the configuration when it first launches. Returns nil if initial fetching failed. It is only supported by DJI SKYPORT 2.0.

      Input Parameters:
      final PayloadWidgetDownloadListener listenerThe listener of PayloadWidgetDownloadListener.
      method setPayloadChannelPriority
      void setPayloadChannelPriority(@NonNull VideoFeedPriority priority, @NonNull PhysicalSource physicalSource, @Nullable final CommonCallbacks.CompletionCallback callback)
      Package:dji.sdk.payload
      Description:

      Set the channel priority of the payload. Priority will affect the bandwidth allocation if it is not UNKNOWN, which is the default value. For example, if the data that comes from the payload device mounted on left gimbal is preferred, please set the priority to HIGH, and physicalSource is LEFT_CAM. The others should be set to MEDIUM or LOW. Only supported by Matrice 300 RTK.

      Input Parameters:
      @NonNull VideoFeedPriority priorityThe priority to be set, see VideoFeedPriority.
      @NonNull PhysicalSource physicalSourceSee PhysicalSource.
      @Nullable final CommonCallbacks.CompletionCallback callbackCallback to receive the execution result.
      method getPayloadChannelPriority
      void getPayloadChannelPriority(@NonNull PhysicalSource physicalSource,  @NonNull CommonCallbacks.CompletionCallbackWith<VideoFeedPriority> callback)
      Package:dji.sdk.payload
      Description:

      Get the channel priority of the payload. Only supported by Matrice 300 RTK.

      Input Parameters:
      @NonNull PhysicalSource physicalSourceSee PhysicalSource.
      @NonNull CommonCallbacks.CompletionCallbackWith<VideoFeedPriority> callbackCallback to receive the execution result.
      enum PayloadProductPhase
      enum PayloadProductPhase
      Package:dji.common.payload
      Description:

      Development phase has more settings than product phase, including control parameters auto-tuning, coaxiality detection, balance detection, stiffness adjustment. Please note that this phase should be used with DJI Assistant 2, which has bound with Payload SDK developer account. Product phase means that the product is in the stage ready to sell. During this stage, development settings, i.e., control parameters auto-tuning, coaxiality detection, balance detection, stiffness adjustment, should be hidden from user interface.

      Enum Members:
      DEVELOPMENTThe product is in the development phase.
      RELEASEThe product is in the release phase.
      UNKNOWNUnknown.
      Class Members:
      enum PayloadDeviceType
      enum PayloadDeviceType
      Package:dji.common.payload
      Description:

      All the possible mode of PayloadDeviceType.

      Enum Members:
      DJI_SKYPORT_1DJI Skyport 1.0.
      DJI_SKYPORT_2DJI Skyport 2.0.
      DJI_X_PORTDJI X-Port.
      UNKNOWNUnknown.
      Class Members:
      Inherited Methods:
      dji.sdk.base.BaseComponent
      method
      method setComponentListener
      void setComponentListener(ComponentListener listener)
      Package:dji.sdk.base
      Description:

      Sets the listener for the DJI component.

      Input Parameters:
      ComponentListener listenerThe callback of ComponentListener.
      method
      method getIndex
      int getIndex()
      Package:dji.sdk.base
      Description:

      Returns the component index. Index is zero based. A component will have an index greater than zero when there are multiple components of the same type on the DJI product, and one of the components already has the index 0. For instance, M210 can have two gimbal mounted cameras, and will therefore have two gimbal components with indices 0 and 1, and two camera components with indices 0 and 1. For Matrice 600, there are printed numbers on the battery boxes. The Battery component instance with index 0 corresponds to battery compartment number 1. For Inspire 2 and M200 series, Battery with index 0 corresponds to the battery on the port (left hand) side of the aircraft. For M210, M210 RTK, M300 RTK and M350 RTK, Camera and Gimbal with index 0 corresponds to the camera and gimbal on the port (left hand) side of the aircraft. Lidar with index 0 corresponds to the lidar(Zenmuse L1) on the port (left hand) side of the aircraft.

      Return:
      intAn int value of index.
      method isConnected
      boolean isConnected()
      Package:dji.sdk.base
      Description:

      true if the component is connected.

      Return:
      booleantrue if the component is connected.
      method getSerialNumber
      void getSerialNumber(@NonNull CompletionCallbackWith<String> callback)
      Package:dji.sdk.base
      Description:

      Gets the serial number of the component. Depending on the component, this serial number might not match the serial number found on the physical component.

      Input Parameters:
      @NonNull CompletionCallbackWith<String> callbackThe execution callback with the value returned.
      method getFirmwareVersion
      void getFirmwareVersion(@NonNull CompletionCallbackWith<String> callback)
      Package:dji.sdk.base
      Description:

      Returns the firmware version of the component. Each component will have a different firmware version, the combination of which will form the package firmware version getFirmwarePackageVersion found in BaseProduct.

      Input Parameters:
      @NonNull CompletionCallbackWith<String> callbackThe execution callback with the value(s) returned.