DJI Mobile SDK Documentation

      class DJILens

      @interface DJILens : DJIBaseComponent
      Header:DJILens.h
      Inherits From:DJIBaseComponent
      Description:

      The class is used to manage all lens feature. It is only supported by Zenmuse H20 Series and Mavic 2 Enterprise Advanced.

      Class Members:
      Lens Type
      property
      property lensType
      @property (nonatomic, readonly) DJILensType lensType
      Header:DJILens.h
      Description:

      Gets the type of the current lens.

      See Also:

      DJILensType

      Camera Index
      property
      property cameraIndex
      @property (nonatomic, readonly) NSUInteger cameraIndex
      Header:DJILens.h
      Description:

      The index of the camera to which the lens belongs.

      Display Name
      property
      property displayName
      @property (nonatomic, readonly) NSString *_Nonnull displayName
      Header:DJILens.h
      Description:

      Gets the name of the current lens.

      Capabilities
      property
      property capabilities
      @property (nonatomic, readonly) DJICameraCapabilities *capabilities
      Header:DJILens.h
      Description:

      Lens capabilities. Supported by Zenmuse H20 Series.

      See Also:

      DJICameraCapabilities

      State Updates

      General
      property
      property delegate
      @property (nonatomic, weak) id<DJILensDelegate> delegate
      Header:DJILens.h
      Description:

      Delegate that receives the information sent by the lens.

      See Also:

      DJILensDelegate


      Video

      method setVideoStandard:withCompletion
      - (void)setVideoStandard:(DJICameraVideoStandard)videoStandard withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the lens' analog video standard. Setting the video standard to PAL or NTSC will limit the available resolutions and frame rates to those compatible with the chosen video standard.

      Input Parameters:
      DJICameraVideoStandard videoStandardVideo standard value to be set for the lens.
      DJICompletionBlock completionRemote execution result error block.
      method getVideoStandardWithCompletion
      - (void)getVideoStandardWithCompletion:(void (^_Nonnull)(DJICameraVideoStandard videoStandard, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the lens' video standard value.

      Input Parameters:
      DJICameraVideoStandard videoStandardThe value of the DJICameraVideoStandard Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraVideoStandard videoStandard, NSError *_Nullable error) completionRemote execution result error block.
      Video Resolution And Frame Rate
      method
      method setVideoResolutionAndFrameRate:withCompletion
      - (void)setVideoResolutionAndFrameRate:(DJICameraVideoResolutionAndFrameRate *)resolutionAndFrameRate
      withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the video resolution and frame rate of the current lens. @warning The supported resolutions and frame rates for the two different analog television standards PAL and NTSC are below:
      NTSC:
      Resolution_4096x2160, FrameRate_24fps
      Resolution_3840x2160, FrameRate_30fps
      Resolution_3840x2160, FrameRate_24fps
      Resolution_2704X1520, FrameRate_30fps
      Resolution_2704X1520, FrameRate_24fps
      Resolution_1920x1080, FrameRate_120fps (Slow Motion)
      Resolution_1920x1080, FrameRate_60fps
      Resolution_1920x1080, FrameRate_48fps
      Resolution_1920x1080, FrameRate_30fps
      Resolution_1920x1080, FrameRate_24fps
      Resolution_1280x720, FrameRate_60fps
      Resolution_1280x720, FrameRate_48fps
      Resolution_1280x720, FrameRate_30fps
      Resolution_1280x720, FrameRate_24fps
      PAL:
      Resolution_4096x2160, FrameRate_25fps
      Resolution_4096x2160, FrameRate_24fps
      Resolution_3840x2160, FrameRate_25fps
      Resolution_3840x2160, FrameRate_24fps
      Resolution_2704X1520, FrameRate_25fps
      Resolution_2704X1520, FrameRate_24fps
      Resolution_1920x1080, FrameRate_120fps (Slow Motion)
      Resolution_1920x1080, FrameRate_50fps
      Resolution_1920x1080, FrameRate_48fps
      Resolution_1920x1080, FrameRate_25fps
      Resolution_1920x1080, FrameRate_24fps
      Resolution_1280x720, FrameRate_50fps
      Resolution_1280x720, FrameRate_48fps
      Resolution_1280x720, FrameRate_25fps
      Resolution_1280x720, FrameRate_24fps

      Input Parameters:
      DJICameraVideoResolutionAndFrameRate * resolutionAndFrameRateResolution to be set for the video.
      DJICompletionBlock completionRemote execution result error block.
      method getVideoResolutionAndFrameRateWithCompletion
      - (void)getVideoResolutionAndFrameRateWithCompletion:(void (^_Nonnull)(DJICameraVideoResolutionAndFrameRate *_Nullable resolutionAndFrameRate,
      NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the video resolution and frame rate values of the current lens.

      Input Parameters:
      DJICameraVideoResolutionAndFrameRate *_Nullable resolutionAndFrameRateThe value of the DJICameraVideoResolutionAndFrameRate Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraVideoResolutionAndFrameRate *_Nullable resolutionAndFrameRate, NSError *_Nullable error) completionCompletion block to receive the result.
      Video File Format
      method
      method setVideoFileFormat:withCompletion
      - (void)setVideoFileFormat:(DJICameraVideoFileFormat)format withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the video file format of the current lens. The default value is DJICameraVideoFileFormatMOV.

      Input Parameters:
      DJICameraVideoFileFormat formatVideo file format to be set for videos.
      DJICompletionBlock completionRemote execution result error block.
      method getVideoFileFormatWithCompletion
      - (void)getVideoFileFormatWithCompletion:(void (^_Nonnull)(DJICameraVideoFileFormat format, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the video file format of the current lens.

      Input Parameters:
      DJICameraVideoFileFormat formatThe value of the DJICameraVideoFileFormat Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraVideoFileFormat format, NSError *_Nullable error) completionCompletion block to return the current video file format.


      Photo

      Photo Aspect Ratio
      method
      method setPhotoAspectRatio:withCompletion
      - (void)setPhotoAspectRatio:(DJICameraPhotoAspectRatio)aspectRatio withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the aspect ratio for photos of the current lens. See DJICameraPhotoAspectRatio to view all possible ratios.

      Input Parameters:
      DJICameraPhotoAspectRatio aspectRatioAspect ratio for photos to be taken by camera.
      DJICompletionBlock completionRemote execution result error block.
      method getPhotoAspectRatioWithCompletion
      - (void)getPhotoAspectRatioWithCompletion:(void (^_Nonnull)(DJICameraPhotoAspectRatio aspectRatio, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the aspect ratio for photos of the current lens.

      Input Parameters:
      DJICameraPhotoAspectRatio aspectRatioThe value of the DJICameraPhotoAspectRatio Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraPhotoAspectRatio aspectRatio, NSError *_Nullable error) completionRemote execution result callback block.
      Photo File Format
      method
      method setPhotoFileFormat:withCompletion
      - (void)setPhotoFileFormat:(DJICameraPhotoFileFormat)format withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the photo file format of the current lens. See DJICameraPhotoFileFormat to view all possible photo formats to which the lens can be set. Not supported by Zenmuse H20 Series.

      Input Parameters:
      DJICameraPhotoFileFormat formatPhoto file format used when the camera takes a photo.
      DJICompletionBlock completionCompletion block.
      method getPhotoFileFormatWithCompletion
      - (void)getPhotoFileFormatWithCompletion:(void (^_Nonnull)(DJICameraPhotoFileFormat format, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the photo file format of the current lens.

      Input Parameters:
      DJICameraPhotoFileFormat formatThe value of the DJICameraPhotoFileFormat Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraPhotoFileFormat format, NSError *_Nullable error) completionCompletion block to receive the result.


      Exposure Settings

      method setExposureMode:withCompletion
      - (void)setExposureMode:(DJICameraExposureMode)mode withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the exposure mode of the current lens. Check DJICameraExposureMode to view all possible camera exposure modes. Please note that in different exposure mode, it will have different values for the same setting.

      Input Parameters:
      DJICameraExposureMode modeCamera exposure mode to set.
      DJICompletionBlock completionRemote execution result error block.
      method getExposureModeWithCompletion
      - (void)getExposureModeWithCompletion:(void (^_Nonnull)(DJICameraExposureMode mode, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the exposure mode of the current lens.

      Input Parameters:
      DJICameraExposureMode modeThe value of the DJICameraExposureMode of the Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraExposureMode mode, NSError *_Nullable error) completionCompletion block to receive the result.
      method setISO:withCompletion
      - (void)setISO:(DJICameraISO)iso withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the ISO value of the current lens. See DJICameraISO to view all possible ISO settings for the lens.

      Input Parameters:
      DJICameraISO isoISO value to be set.
      DJICompletionBlock completionCompletion block.
      method getISOWithCompletion
      - (void)getISOWithCompletion:(void (^_Nonnull)(DJICameraISO iso, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the ISO value of the current lens.

      Input Parameters:
      DJICameraISO isoThe value of the DJICameraISO Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraISO iso, NSError *_Nullable error) completionCompletion block to receive the result.
      method setShutterSpeed:withCompletion
      - (void)setShutterSpeed:(DJICameraShutterSpeed)shutterSpeed withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the shutter speed of the current lens. To see all available "shutterSpeed" value settings, see DJICameraShutterSpeed. The shutter speed should not be set slower than the video frame rate when the camera's mode is DJICameraModeRecordVideo. For example, if the video frame rate is 30fps, the shutterSpeed must be <= 1/30. Precondition: The shutter speed can be set only when the lens exposure mode is Shutter mode or Manual mode.

      Input Parameters:
      DJICameraShutterSpeed shutterSpeedShutter speed value to be set for the lens. For all available values shutterSpeed can be set to, please check DJICameraShutterSpeed. <br> The shutter speed should not be set slower than the video frame rate when the camera's mode is DJICameraModeRecordVideo. For example, if the video frame rate = 30fps, then the shutterSpeed must be <= 1/30.
      DJICompletionBlock completionRemote execution result error block.
      method getShutterSpeedWithCompletion
      - (void)getShutterSpeedWithCompletion:(void (^_Nonnull)(DJICameraShutterSpeed shutterSpeed, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the shutter speed of the current lens.

      Input Parameters:
      DJICameraShutterSpeed shutterSpeedThe value of the DJICameraShutterSpeed Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraShutterSpeed shutterSpeed, NSError *_Nullable error) completionCompletion block to receive the result.
      Check Metering Support
      method
      method isMeteringSupported
      - (BOOL)isMeteringSupported
      Header:DJILens.h
      Description:

      Determine if the current lens supports Metering.

      Return:
      BOOLA boolean value.
      method setMeteringMode:withCompletion
      - (void)setMeteringMode:(DJICameraMeteringMode)mode withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the exposure metering of the current lens. See DJICameraMeteringMode to view all possible exposure metering settings for the lens.

      Input Parameters:
      DJICameraMeteringMode modeExposure metering to be set. Check the enum DJICameraMeteringMode to find all possible exposure metering the camera can be set to.
      DJICompletionBlock completionCompletion block.
      method getMeteringModeWithCompletion
      - (void)getMeteringModeWithCompletion:(void (^_Nonnull)(DJICameraMeteringMode mode, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the exposure metering of the current lens.

      Input Parameters:
      DJICameraMeteringMode modeThe value of the DJICameraMeteringMode Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraMeteringMode mode, NSError *_Nullable error) completionCompletion block to receive the result.
      method setSpotMeteringTargetRowIndex:columnIndex:withCompletion
      - (void)setSpotMeteringTargetRowIndex:(uint8_t)rowIndex columnIndex:(uint8_t)columnIndex withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the spot metering area index of the current lens. The lens image is divided into 225 spots defined by 15 columns and 15 rows. The row index range is [0,14], where the values increase top to bottom across the image. The column index range is [0, 14], where the values increase left to right. In order to make the method work, The camera exposure mode should be Program, Shutter or Aperture, the exposure metering mode must be DJICameraMeteringModeSpot, and setAELock:withCompletion must be NO.

      Input Parameters:
      uint8_t rowIndexSpot metering row index to be set. The value should falls in [0, 14], where the values increase top to bottom across the image.
      uint8_t columnIndexSpot metering column index to be set. The value should falls in [0, 14], where the values increase left to right.
      DJICompletionBlock completionRemote execution result error block.
      Spot Metering Target
      method
      method getSpotMeteringTargetWithCompletion
      - (void)getSpotMeteringTargetWithCompletion:(void (^_Nonnull)(uint8_t rowIndex, uint8_t columnIndex, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the spot metering area row index and column index of the current lens. In order to make the method work, The lens exposure mode should be DJICameraExposureModeProgram, DJICameraExposureModeShutterPriority or DJICameraExposureModeAperturePriority, the exposure metering mode must be DJICameraMeteringModeSpot, and getAELockWithCompletion must be NO.

      Input Parameters:
      uint8_t rowIndexThe rowIndex value.
      uint8_t columnIndexThe colIndex value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(uint8_t rowIndex, uint8_t columnIndex, NSError *_Nullable error) completionCompletion block to receive the result.
      Exposure Compensation
      method
      method setExposureCompensation:withCompletion
      - (void)setExposureCompensation:(DJICameraExposureCompensation)compensation withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the exposure compensation of the current lens. See DJICameraExposureCompensation to view all possible exposure compensations to which the camera can be set. In order to use this function, set the lens exposure mode to shutter, program or aperture.

      Input Parameters:
      DJICameraExposureCompensation compensationExposure compensation value to be set for the camera.
      DJICompletionBlock completionCompletion block.
      method getExposureCompensationWithCompletion
      - (void)getExposureCompensationWithCompletion:(void (^_Nonnull)(DJICameraExposureCompensation compensation, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the exposure compensation of the current lens.

      Input Parameters:
      DJICameraExposureCompensation compensationThe value of the DJICameraExposureCompensation Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraExposureCompensation compensation, NSError *_Nullable error) completionCompletion block to receive the result.
      method setAELock:withCompletion
      - (void)setAELock:(BOOL)isLocked withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Locks or unlocks the lens' AE (auto exposure). Post condition: If the AE lock is enabled, the spot metering area cannot be set.

      Input Parameters:
      BOOL isLockedYES if the camera AE is locked, NO if it is unlocked.
      DJICompletionBlock completionThe execution callback with the returned execution result.
      method getAELockWithCompletion
      - (void)getAELockWithCompletion:(void (^_Nonnull)(BOOL isLocked, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Determines if the lens' AE (auto exposure) is locked.

      Input Parameters:
      BOOL isLockedThe isLocked value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(BOOL isLocked, NSError *_Nullable error) completionCompletion block to receive the result.
      Auto AE Unlock Enabled
      method
      method setAutoAEUnlockEnabled:withCompletion
      - (void)setAutoAEUnlockEnabled:(BOOL)enabled withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Enables/disables auto-unlocking of AE lock after shooting a photo. If it is enabled, the Auto Exposure will unlock after each shot. If disabled, Auto Exposure will change when calling setAELock:withCompletion.

      Input Parameters:
      BOOL enabledYES if the camera AE will automatically unlock.
      DJICompletionBlock completionCompletion block that receives the setter result.
      method getAutoAEUnlockEnabledWithCompletion
      - (void)getAutoAEUnlockEnabledWithCompletion:(void (^_Nonnull)(BOOL enabled, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Determines whether auto-unlocking of AE lock is enabled.

      Input Parameters:
      BOOL enabledThe enabled value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(BOOL enabled, NSError *_Nullable error) completionCompletion block to receive the result.


      White Balance

      Set White Balance
      method
      method setWhiteBalance:withCompletion
      - (void)setWhiteBalance:(DJICameraWhiteBalance *)whiteBalance withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the white balance of the current lens. When the white balance is a preset value (values except DJICameraWhiteBalancePresetCustom), the colorTemperature argument does not take effect. When the white balance is DJICameraWhiteBalancePresetCustom, the colorTemperature value is used instead. See Also: DJICameraWhiteBalancePreset to view all possible white balance setting options for the camera.

      Input Parameters:
      DJICameraWhiteBalance * whiteBalanceWhite balance value to be set.
      DJICompletionBlock completionCompletion block.
      Get White Balance
      method
      method getWhiteBalanceWithCompletion
      - (void)getWhiteBalanceWithCompletion:(void (^_Nonnull)(DJICameraWhiteBalance *_Nullable whiteBalance, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the white balance and color temperature of the current lens.

      Input Parameters:
      DJICameraWhiteBalance *_Nullable whiteBalanceThe DJICameraWhiteBalance object.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraWhiteBalance *_Nullable whiteBalance, NSError *_Nullable error) completionCompletion block to receive the result.


      Other Settings

      Set Sharpness
      method
      method setSharpness:withCompletion
      - (void)setSharpness:(int8_t)sharpness withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the sharpness of the current lens. The default value is 0.

      Input Parameters:
      int8_t sharpnessSharpness value to be set in the range of [-3, 3].
      DJICompletionBlock completionAsynchronous execution result.
      Get Sharpness
      method
      method getSharpnessWithCompletion
      - (void)getSharpnessWithCompletion:(void (^_Nonnull)(int8_t sharpness, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the sharpness of the current lens.

      Input Parameters:
      int8_t sharpnessThe value of the sharpness with range [-3, 3].
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(int8_t sharpness, NSError *_Nullable error) completionCompletion block to receive the result.
      Set Contrast
      method
      method setContrast:withCompletion
      - (void)setContrast:(int8_t)contrast withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the contrast of the current lens. The default saturation value is 0.

      Input Parameters:
      int8_t contrastContrast value to be set in the range of [-3, 3].
      DJICompletionBlock completionCompletion block.
      Get Contrast
      method
      method getContrastWithCompletion
      - (void)getContrastWithCompletion:(void (^_Nonnull)(int8_t contrast, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the contrast of the current lens.

      Input Parameters:
      int8_t contrastThe value of the contrast with range [-3, 3].
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(int8_t contrast, NSError *_Nullable error) completionCompletion block to receive the result.
      Set Saturation
      method
      method setSaturation:withCompletion
      - (void)setSaturation:(int8_t)saturation withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the saturation of the current lens. The default saturation value is 0.

      Input Parameters:
      int8_t saturationSaturation value to be set in the range of [-3, 3]. The default value of the saturation value is 0.
      DJICompletionBlock completionRemote execution result error block.
      Get Saturation
      method
      method getSaturationWithCompletion
      - (void)getSaturationWithCompletion:(void (^_Nonnull)(int8_t saturation, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the saturation of the current lens.

      Input Parameters:
      int8_t saturationThe saturation value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(int8_t saturation, NSError *_Nullable error) completionCompletion block to receive the result.
      method setColor:withCompletion
      - (void)setColor:(DJICameraColor)color withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the color of the current lens. The default value is DJICameraColorNone. For a list of all possible camera colors, see DJICameraColor.

      Input Parameters:
      DJICameraColor colorCamera color to be applied to the camera.
      DJICompletionBlock completionRemote execution result error block.
      Get Color
      method
      method getColorWithCompletion
      - (void)getColorWithCompletion:(void (^_Nonnull)(DJICameraColor color, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the color of the current lens.

      Input Parameters:
      DJICameraColor colorCamera color to be applied to the camera.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraColor color, NSError *_Nullable error) completionCompletion block to receive the result.
      Set IR Filter Enabled
      method
      method setIRFilterEnabled:withCompletion
      - (void)setIRFilterEnabled:(BOOL)enabled withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Enables/disables the IR filter (infared filter). Disabling the IR filter can enhance the image in low light environments. Enabling the IR filter can reduce the color distortion caused by the infared light. Supported by the zoom lens of Zenmuse H20 Series.

      Input Parameters:
      BOOL enabledYES to enable IR-Cut filter.
      DJICompletionBlock completionCompletion block that receives the setter result.
      Get IR Filter Enabled
      method
      method getIRFilterEnabledWithCompletion
      - (void)getIRFilterEnabledWithCompletion:(void (^_Nonnull)(BOOL enabled, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Determines whether IR filter (infared filter) is enabled. Disabling the IR filter can enhance the image in low light environments. Enabling the IR filter can reduce the color distortion caused by the infared light. Supported by the zoom lens of Zenmuse H20 Series.

      Input Parameters:
      BOOL enabledYES if IR-Cut filter is enabled.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(BOOL enabled, NSError *_Nullable error) completionCompletion block to receive the result.


      Digital Zoom

      Check Digital Zoom Support
      method
      method isDigitalZoomSupported
      - (BOOL)isDigitalZoomSupported
      Header:DJILens.h
      Description:

      Determine if the current device supports digital zoom scale. Not supported by Zenmuse H20 Series.

      Return:
      BOOLA boolean value.
      Digital Zoom Factor
      method
      method setDigitalZoomFactor:withCompletion
      - (void)setDigitalZoomFactor:(float)factor withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the digital zoom factor of the current lens. Not supported by Zenmuse H20 Series.

      Input Parameters:
      float factorThe valid range is from 1.0 to 2.0.
      DJICompletionBlock completionThe completion block with the returned execution result.
      method getDigitalZoomFactorWithCompletion
      - (void)getDigitalZoomFactorWithCompletion:(void (^_Nonnull)(float factor, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets current digital zoom factor of the current lens. Not supported by Zenmuse H20 Series.

      Input Parameters:
      float factorThe scale value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(float factor, NSError *_Nullable error) completionCompletion block to receive the result.


      Optical Zoom

      Check Digital Zoom Support
      method
      method isOpticalZoomSupported
      -(BOOL)isOpticalZoomSupported
      Header:DJILens.h
      Description:

      Determine if the current lens supports optical zoom. Not supported by Zenmuse H20 Series.

      Return:
      BOOLYES if lens supports optical zoom.
      Get Optical Zoom Spec
      method
      method getOpticalZoomSpecWithCompletion
      -(void)getOpticalZoomSpecWithCompletion:(void(^_Nonnull)(DJICameraOpticalZoomSpec spec, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the specification of the current lens. Not supported by Zenmuse H20 Series.

      Input Parameters:
      DJICameraOpticalZoomSpec specThe value of the DJICameraOpticalZoomSpec Struct.
      NSError *_Nullable errorError retrieving the value.
      void(^_Nonnull)(DJICameraOpticalZoomSpec spec, NSError *_Nullable error) completionCompletion block to receive the result.
      Set Optical Zoom Focal Length
      method
      method setOpticalZoomFocalLength:withCompletion
      -(void)setOpticalZoomFocalLength:(NSUInteger)focalLength withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets focal length of the current lens. Not supported by Zenmuse H20 Series.

      Input Parameters:
      NSUInteger focalLengthFocal length of zoom lens. Valid range is [minFocalLength, maxFocalLength] and must be a multiple of focalLengthStep.
      DJICompletionBlock completionThe completion block with the returned execution result.
      Get Optical Zoom Focal Length
      method
      method getOpticalZoomFocalLengthWithCompletion
      -(void)getOpticalZoomFocalLengthWithCompletion:(void (^_Nonnull)(NSUInteger focalLength, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the optical zoom focal length of the current lens in units of 0.1mm. Not supported by Zenmuse H20 Series.

      Input Parameters:
      NSUInteger focalLengthThe focalLength value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSUInteger focalLength, NSError *_Nullable error) completionCompletion block to receive the result.
      Get Optical Zoom Factor
      method
      method getOpticalZoomFactorWithCompletion
      -(void)getOpticalZoomFactorWithCompletion:(void (^_Nonnull)(float factor, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets current optical zoom factor with range [1, 30]. Not supported by Zenmuse H20 Series.

      Input Parameters:
      float factorThe zoom factor value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(float factor, NSError *_Nullable error) completionCompletion block to receive the result.
      Start Continuous Optical Zoom In Direction
      method
      method startContinuousOpticalZoomInDirection:withSpeed:withCompletion
      -(void)startContinuousOpticalZoomInDirection:(DJICameraZoomDirection)direction
      withSpeed:(DJICameraZoomSpeed)speed
      withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Start changing the focal length of the lens in specified direction with specified speed. Focal length change (zooming) will halt when maximum or minimum focal lengths are reached, or stopContinuousOpticalZoomWithCompletion is called. Supported by the zoom lens of Zenmuse H20 Series and Mavic 2 Enterprise Advanced.

      Input Parameters:
      DJICameraZoomDirection directionDirection to zoom.
      DJICameraZoomSpeed speedZoom speed.
      DJICompletionBlock completionThe execution callback with the returned execution result.
      Stop Continuous Optical Zoom
      method
      method stopContinuousOpticalZoomWithCompletion
      -(void)stopContinuousOpticalZoomWithCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Called to stop focal length changing, when it currently is from calling startContinuousOpticalZoomInDirection:withSpeed:withCompletion. Supported by the zoom lens of Zenmuse H20 Series and Mavic 2 Enterprise Advanced.

      Input Parameters:
      DJICompletionBlock completionThe execution callback with the returned execution result.


      Hybrid Zoom

      Check Hybrid Zoom Support
      method
      method isHybridZoomSupported
      -(BOOL)isHybridZoomSupported
      Header:DJILens.h
      Description:

      Hybrid zoom is combining optical and digital zoom. Lens will automatically switch over to digital zoom when optical zoom range is exceeded. Check if lens supports hybrid zoom. Supported by the zoom lens of Zenmuse H20 Series.

      Return:
      BOOLYES if camera supports hybrid zoom.
      Hybrid Zoom Spec
      method
      method getHybridZoomSpecWithCompletion
      -(void)getHybridZoomSpecWithCompletion:(void(^_Nonnull)(DJICameraHybridZoomSpec spec, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Hybrid zoom is combining optical and digital zoom. Lens will automatically switch over to digital zoom when optical zoom range is exceeded. Gets the specification of the zoom lens. Supported by the zoom lens of Zenmuse H20 Series.

      Input Parameters:
      DJICameraHybridZoomSpec specThe value of the DJICameraHybridZoomSpec Struct.
      NSError *_Nullable errorError retrieving the value.
      void(^_Nonnull)(DJICameraHybridZoomSpec spec, NSError *_Nullable error) completionCompletion block to receive the result.
      Hybrid Zoom Focal Length
      method
      method setHybridZoomFocalLength:withCompletion
      -(void)setHybridZoomFocalLength:(NSUInteger)focalLength withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Hybrid zoom is combining optical and digital zoom. Lens will automatically switch over to digital zoom when optical zoom range is exceeded. Sets focal length of the zoom lens. Supported by the zoom lens of Zenmuse H20 Series.

      Input Parameters:
      NSUInteger focalLengthFocal length of zoom lens. Valid range is [minHybridFocalLength, maxHybridFocalLength] and must be a multiple of focalLengthStep.
      DJICompletionBlock completionThe completion block with the returned execution result.
      method getHybridZoomFocalLengthWithCompletion
      -(void)getHybridZoomFocalLengthWithCompletion:(void(^_Nonnull)(NSUInteger focalLength, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Hybrid zoom is combining optical and digital zoom. Lens will automatically switch over to digital zoom when optical zoom range is exceeded. Gets zoom lens focal length in units of 0.1mm. Supported by the zoom lens of Zenmuse H20 Series.

      Input Parameters:
      NSUInteger focalLengthFocal length of zoom lens.
      NSError *_Nullable errorError retrieving the value.
      void(^_Nonnull)(NSUInteger focalLength, NSError *_Nullable error) completionCompletion block to receive the result.


      Tap Zoom

      Check Tap Zoom Support
      method
      method isTapZoomSupported
      -(BOOL)isTapZoomSupported
      Header:DJILens.h
      Description:

      Determines if the current lens supports TapZoom feature.

      Return:
      BOOLYES if camera supports tap zoom.
      Tap Zoom Enabled
      method
      method setTapZoomEnabled:withCompletion
      -(void)setTapZoomEnabled:(BOOL)enabled withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Enable/disable TapZoom. tapZoomAtTarget:withCompletion can only be called when TapZoom is enabled. Supported by Mavic 2 Enterprise Advanced, the zoom lens and the wide lens of Zenmuse H20 Series.

      Input Parameters:
      BOOL enabledYES to enable TapZoom feature.
      DJICompletionBlock completionCompletion block that receives the setter result.
      method getTapZoomEnabledWithCompletion
      -(void)getTapZoomEnabledWithCompletion:(void (^_Nonnull)(BOOL enabled, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Determines if TapZoom is enabled.

      Input Parameters:
      BOOL enabledThe enabled value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(BOOL enabled, NSError *_Nullable error) completionCompletion block to receive the result.
      Tap Zoom Multiplier
      method
      method setTapZoomMultiplier:withCompletion
      -(void)setTapZoomMultiplier:(uint8_t)multiplier withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      TapZoom uses a multiplier to change the zoom scale when called. The final zoom scale for a TapZoom will be: Current Zoom Scale x Multiplier. The multiplier range is [1,5]. A multiplier of 1 will not change the zoom. When the multiplier is 1, the zoom scale will not change during TapZoom. Supported by the zoom lens and the wide lens of Zenmuse H20 Series. The tap zoom multiplier of Zenmuse H20 Series must be 1.

      Input Parameters:
      uint8_t multiplierMultiplier of TapZoom.
      DJICompletionBlock completionCompletion block that receives the setter result.
      method getTapZoomMultiplierWithCompletion
      -(void)getTapZoomMultiplierWithCompletion:(void (^_Nonnull)(uint8_t step, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the multiplier for TapZoom. Supported by the zoom lens and the wide lens of Zenmuse H20 Series. The tap zoom multiplier of Zenmuse H20 Series must be 1.

      Input Parameters:
      uint8_t stepThe step value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(uint8_t step, NSError *_Nullable error) completionCompletion block that receives the setter result.
      Tap Zoom Target
      method
      method tapZoomAtTarget:withCompletion
      -(void)tapZoomAtTarget:(CGPoint)target withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      TapZoom at the target. It can be called only when TapZoom is enabled. When a new target is set, the gimbal will rotate and locate the target in the center of the screen. At the same time, the camera will zoom by multiplying the TapZoom multiplier. Supported by Mavic 2 Enterprise Advanced, the zoom lens and the wide lens of Zenmuse H20 Series. It will only work when the tap zoom multiplier of Zenmuse H20 Series is 1.

      Input Parameters:
      CGPoint targetThe target to zoom. The range for x and y is from 0.0 to 1.0. The point [0.0, 0.0] represents the top-left corner of the screen.
      DJICompletionBlock completionCompletion block that receives the execution result.


      Advanced Camera Settings

      Check Adjustable Aperture Supported
      method
      method isAdjustableApertureSupported
      - (BOOL)isAdjustableApertureSupported
      Header:DJILens.h
      Description:

      Gets whether the lens supports an adjustable aperture. Currently adjustable aperture is supported only by the zoom lens of Zenmuse H20 Series.

      Return:
      BOOLA boolean value.
      method setAperture:withCompletion
      - (void)setAperture:(DJICameraAperture)aperture withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the aperture value of the current lens. This feature is available only when isAdjustableApertureSupported returns YES. Precondition: The exposure mode DJICameraExposureMode must be in DJICameraExposureModeManual or DJICameraExposureModeAperturePriority.
      Supported only by the zoom lens of Zenmuse H20 Series and Mavic 2 Enterprise Advanced.

      Input Parameters:
      DJICameraAperture apertureThe aperture to set. See DJICameraFocusMode.
      DJICompletionBlock completionThe execution callback with the returned execution result.
      method getApertureWithCompletion
      - (void)getApertureWithCompletion:(void (^_Nonnull)(DJICameraAperture aperture, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the aperture of the current lens. This feature is available only when isAdjustableApertureSupported returns YES.

      Input Parameters:
      DJICameraAperture apertureThe value of the DJICameraAperture Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraAperture aperture, NSError *_Nullable error) completionCompletion block to receive the result.
      Check Adjustable Focal Point Support
      method
      method isAdjustableFocalPointSupported
      - (BOOL)isAdjustableFocalPointSupported
      Header:DJILens.h
      Description:

      Determines whether the lens supports an adjustable focal point. Currently, the adjustable focal point is supported by the zoom lens of Zenmuse H20 Series.

      Return:
      BOOLA boolean value.
      method setFocusMode:withCompletion
      - (void)setFocusMode:(DJICameraFocusMode)focusMode withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the focus mode of the current lens. See DJICameraFocusMode. It is available only when isAdjustableFocalPointSupported returns YES. Supported by the zoom lens of Zenmuse H20 Series. Not supported by Mavic 2 Enterprise Advanced.

      Input Parameters:
      DJICameraFocusMode focusModeFocus mode to set. Check DJICameraFocusMode for more detail.
      DJICompletionBlock completionThe execution block with the returned execution result.
      method getFocusModeWithCompletion
      - (void)getFocusModeWithCompletion:(void (^_Nonnull)(DJICameraFocusMode focusMode, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the focus mode of the current lens. Please check DJICameraFocusMode. It is available only when isAdjustableFocalPointSupported returns YES. Supported by the zoom lens of Zenmuse H20 Series. Not supported by Mavic 2 Enterprise Advanced.

      Input Parameters:
      DJICameraFocusMode focusModeThe value of the DJICameraFocusMode Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraFocusMode focusMode, NSError *_Nullable error) completionCompletion block to receive the result.
      method setFocusTarget:withCompletion
      - (void)setFocusTarget:(CGPoint)focusTarget withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the lens focus target point. When the focus mode is auto, the target point is the focal point. When the focus mode is manual, the target point is the zoom out area if the focus assistant is enabled for the manual mode. It is available only when isAdjustableFocalPointSupported returns YES. Supported by the zoom lens of Zenmuse H20 Series. Not supported by Mavic 2 Enterprise Advanced.

      Input Parameters:
      CGPoint focusTargetThe focus target to set. The range for x and y is from 0.0 to 1.0. The point [0.0, 0.0] represents the top-left angle of the screen.
      DJICompletionBlock completionThe execution callback with the returned execution result.
      method getFocusTargetWithCompletion
      - (void)getFocusTargetWithCompletion:(void (^_Nonnull)(CGPoint focusTarget, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the lens focus target point. It is available only when isAdjustableFocalPointSupported returns YES. Supported by the zoom lens of Zenmuse H20 Series. Not supported by Mavic 2 Enterprise Advanced.

      Input Parameters:
      CGPoint focusTargetThe CGPoint struct.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(CGPoint focusTarget, NSError *_Nullable error) completionCompletion block to receive the result.
      Focus Assistant Settings
      method
      method setFocusAssistantSettings:withCompletion
      - (void)setFocusAssistantSettings:(DJICameraFocusAssistantSettings)settings
      withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Used to enable/disable the lens focus assistant. When the focus assistant is enabled, the camera live view will digitally zoom into the focus target area so the user can see the quality of focus. Focus assistant can be used for both manual focus (MF) and auto focus (AF). It is available only when isAdjustableFocalPointSupported returns YES. Not supported by Mavic 2 Enterprise Advanced.

      Input Parameters:
      DJICameraFocusAssistantSettings settingsSets whether the lens focus assistant for AF and MF mode is enabled.
      DJICompletionBlock completionThe execution callback with the returned execution result.
      method getFocusAssistantSettingsWithCompletion
      - (void)getFocusAssistantSettingsWithCompletion:(void (^_Nonnull)(DJICameraFocusAssistantSettings settings,
      NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Determines whether the lens focus assistant is enabled. When the focus assistant is enabled, the camera live view will digitally zoom into the focus target area so the user can see the quality of focus. Focus assistant can be used for both manual focus (MF) and auto focus (AF). It is available only when isAdjustableFocalPointSupported returns YES. Supported by the zoom lens of Zenmuse H20 Series. Not supported by Mavic 2 Enterprise Advanced.

      Input Parameters:
      DJICameraFocusAssistantSettings settingsSets whether the lens focus assistant under AF and MF mode is enabled.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraFocusAssistantSettings settings, NSError *_Nullable error) completionCompletion block to receive the result.
      Focus Ring Value Upper Bound
      method
      method getFocusRingValueUpperBoundWithCompletion
      - (void)getFocusRingValueUpperBoundWithCompletion:(void (^_Nonnull)(NSUInteger upperBound, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the lens focusing ring value's max value. It is available only when isAdjustableFocalPointSupported returns YES. Supported by the zoom lens of Zenmuse H20 Series. Not supported by Mavic 2 Enterprise Advanced.

      Input Parameters:
      NSUInteger upperBoundThe upperBound value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSUInteger upperBound, NSError *_Nullable error) completionCompletion block to receive the result.
      Focus Ring Value
      method
      method setFocusRingValue:withCompletion
      - (void)setFocusRingValue:(NSUInteger)value withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Set the focal distance by simulating the focus ring adjustment. Value can have a range of 0, getFocusRingValueUpperBoundWithCompletion], which represents infinity and the closest possible focal distance. It is available only when isAdjustableFocalPointSupported returns YES. For some lenses, the minimum focus ring value is larger than 0. For example the minimum of DJI MFT 15mm f/1.7 ASPH is 270. To retrieve the minimum value, perform the following steps: - Call setFocusMode:withCompletion with DJICameraFocusModeAuto. - Call setFocusTarget:withCompletion with the furthest target (>30m). - Call getFocusRingValueWithCompletion to get the current focus ring value. This is the minimum value. The maximum value can be retrieved using getFocusRingValueUpperBoundWithCompletion. Supported by the zoom lens of Zenmuse H20 Series. Not supported by Mavic 2 Enterprise Advanced.

      Input Parameters:
      NSUInteger valueValue to adjust focus ring to. The minimum value is 0, the maximum value depends on the installed lens. Please use method getFocusRingValueUpperBoundWithCompletion to ensure the input argument is valid.
      DJICompletionBlock completionCompletion block to receive the result.
      method getFocusRingValueWithCompletion
      - (void)getFocusRingValueWithCompletion:(void (^_Nonnull)(NSUInteger distance, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the lens focus ring value. It is available only when isAdjustableFocalPointSupported returns YES. Supported by the zoom lens of Zenmuse H20 Series. Not supported by Mavic 2 Enterprise Advanced.

      Input Parameters:
      NSUInteger distanceThe distance value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSUInteger distance, NSError *_Nullable error) completionCompletion block to receive the result.


      Mechanical Shutter Speed

      Check Mechanical Shutter Supported
      method
      method isMechanicalShutterSupported
      - (BOOL)isMechanicalShutterSupported
      Header:DJILens.h
      Description:

      Determines whether the mechanical shutter speed is supported by the camera or the lens.

      Return:
      BOOLYES if the mechanical shutter is supported, otherwise NO.
      Enable Mechanical Shutter
      method
      method setMechanicalShutterEnabled:withCompletion
      - (void)setMechanicalShutterEnabled:(BOOL)enabled withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Enables the mechanical shutter. It is only valid when isMechanicalShutterSupported returns YES.

      Input Parameters:
      BOOL enabledYES to enable the mechanical shutter.
      DJICompletionBlock completionCompletion block to receive the result.
      method getMechanicalShutterEnabledWithCompletion
      - (void)getMechanicalShutterEnabledWithCompletion:(void (^_Nonnull)(BOOL enabled, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Determines whether the mechanical shutter is enabled. It is only valid when isMechanicalShutterSupported returns YES.

      Input Parameters:
      BOOL enabledYES if the mechanical shutter is enabled.
      NSError *_Nullable errorError if there is any.
      void (^_Nonnull)(BOOL enabled, NSError *_Nullable error) completionCompletion block to receive the getter result.


      Thermal Imaging Camera

      Check Thermal Lens
      method
      method isThermalLens
      - (BOOL)isThermalLens
      Header:DJILens.h
      Description:

      Return YES if the current connected device is a thermal imaging lens.

      Return:
      BOOLA boolean value.
      Check Shutter Enabled
      method
      method isInfraredThermalCameraShutterEnabled
      - (BOOL)isInfraredThermalCameraShutterEnabled
      Header:DJILens.h
      Description:

      YES if the infrared sensor in camera is enabled.

      Return:
      BOOLA boolean value.
      Check Burning Protection Enabled
      method
      method isInfraredSensorBurningProtectionEnabled
      - (BOOL)isInfraredSensorBurningProtectionEnabled
      Header:DJILens.h
      Description:

      YES if the infrared sensor protection is enabled.

      Return:
      BOOLA boolean value.
      method setThermalROI:withCompletion
      - (void)setThermalROI:(DJICameraThermalROI)roi withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the region of interest (ROI). Used to manage color range distribution across the screen to maximize contrast for regions of highest interest. Supported by the thermal lens of Zenmuse H20T and H20N.

      Input Parameters:
      DJICameraThermalROI roiAn enum type of the Region of Interest to be used. Please refer to DJICameraThermalROI.
      DJICompletionBlock completionCompletion block that receives the getter execution result.
      method getThermalROIWithCompletion
      - (void)getThermalROIWithCompletion:(void (^_Nonnull)(DJICameraThermalROI roi, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the region of interest.

      Input Parameters:
      DJICameraThermalROI roiThe value of the DJICameraThermalROI Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraThermalROI roi, NSError *_Nullable error) completionCompletion block to receive the result.
      method setThermalPalette:withCompletion
      - (void)setThermalPalette:(DJICameraThermalPalette)palette withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the palette. Each palette is a unique look-up table that maps 8-bit temperature values to different colors. Different palettes can be used to help the user better visualize temperature contrast or specific temperature bands. The valid range can be fetched from DJISupportedCameraThermalPaletteRange.

      Input Parameters:
      DJICameraThermalPalette paletteAn enum type of the DJICameraThermalPalette to be used.
      DJICompletionBlock completionCompletion block that receives the getter execution result.
      method getThermalPaletteWithCompletion
      - (void)getThermalPaletteWithCompletion:(void (^_Nonnull)(DJICameraThermalPalette palette, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the palette. Supported by the thermal lens of Zenmuse H20T and H20N.

      Input Parameters:
      DJICameraThermalPalette paletteThe value of the DJICameraThermalPalette Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraThermalPalette palette, NSError *_Nullable error) completionCompletion block to receive the result.
      method setThermalScene:withCompletion
      - (void)setThermalScene:(DJICameraThermalScene)scene withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the scene to instantly enhance your image. In all modes except Manual and User modes, the DDE, ACE, SSO, brightness and contrast are set automatically to obtain the best result. In User modes, the contrast and brightness are set automatically to obtain the best results. Any settings that are made in these modes are retained if the scene is changed. In Manual mode, DDE, contrast and brightness are set manually.

      Input Parameters:
      DJICameraThermalScene sceneAn enum type for the DJICameraThermalScene to be used.
      DJICompletionBlock completionCompletion block that receives the getter execution result.
      method getThermalSceneWithCompletion
      - (void)getThermalSceneWithCompletion:(void (^_Nonnull)(DJICameraThermalScene scene, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets current scene.

      Input Parameters:
      DJICameraThermalScene sceneThe value of the DJICameraThermalScene Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraThermalScene scene, NSError *_Nullable error) completionCompletion block to receive the result.
      method setThermalDDE:withCompletion
      - (void)setThermalDDE:(NSInteger)value withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the Digital Data Enhancement index (for DDE dynamic mode). DDE can be used to enhance image details (sharpen, higher index) and/or suppress fixed pattern noise (soften, lower index). It can be set manually only when the Scene mode is Manual, User1, User2 or User3.

      Input Parameters:
      NSInteger valueInteger in range [-20, 100]. Values less than 0 soften the image and filter fixed pattern noise. Values greater than 0 sharpen the details in the image. Value of 0 results in no enhancement.
      DJICompletionBlock completionCompletion block that receives the getter execution result.
      method getThermalDDEWithCompletion
      - (void)getThermalDDEWithCompletion:(void (^_Nonnull)(NSInteger value, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the value of Digital Data Enhancement. The value is available only when the Scene mode is Manual, User1, User2 or User3.

      Input Parameters:
      NSInteger valueThe value of Digital Data Enhancement.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSInteger value, NSError *_Nullable error) completionCompletion block to receive the result.
      method setThermalACE:withCompletion
      - (void)setThermalACE:(NSInteger)value withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Set the value of Active Contrast Enhancement. Active contrast enhancement allows for a contrast trade-off between hotter and colder scenes when using 8-bit pixel data. It can be set manually only when the Scene mode is User1, User2 or User3. Not supported by Zenmuse H20T and H20N.

      Input Parameters:
      NSInteger valueInteger in range [-8, 8]. <br> value > 0: more contrast in hotter scene content and less contrast in colder scene content (sky, ocean etc.). <br> value < 0: more contrast in colder scene content and less contrast in hotter scene content. <br> value = 0: neutral <br> value = 3: recommended for generic use.
      DJICompletionBlock completionCompletion block that receives the getter execution result.
      method getThermalACEWithCompletion
      - (void)getThermalACEWithCompletion:(void (^_Nonnull)(NSInteger value, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the value of Active Contrast Enhancement. The value is available only when the Scene mode is Manual, User1, User2 or User3. Not supported by Zenmuse H20T and H20N.

      Input Parameters:
      NSInteger valueThe value of Active Contrast Enhancement.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSInteger value, NSError *_Nullable error) completionCompletion block to receive the result.
      method setThermalSSO:withCompletion
      - (void)setThermalSSO:(NSInteger)value withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the value of Smart Scene Optimization. When using non-linear histogram equalization to map the 14-bit sensor pixel values to 8-bit pixel values, it can become difficult to determine the difference in temperature of two objects from their different shades of gray. SSO allows a percentage of the 14-bit histogram to be mapped linearly to the 8-bit histogram, which will compromise local contrast, but allow for more accurate visual radiometric measurements. This is particularly useful for bi-modal scenes. It can be set manually only when the Scene mode is User1, User2 or User3. Not supported by Zenmuse H20T and H20N.

      Input Parameters:
      NSInteger valuePercentage of histogram to map linearly [0, 100].
      DJICompletionBlock completionCompletion block that receives the getter execution result.
      method getThermalSSOWithCompletion
      - (void)getThermalSSOWithCompletion:(void (^_Nonnull)(NSInteger value, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the value of Smart Scene Optimization. The value is available only when the Scene mode is Manual, User1, User2 or User3. Not supported by Zenmuse H20T and H20N.

      Input Parameters:
      NSInteger valueThe value of Smart Scene Optimization.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSInteger value, NSError *_Nullable error) completionCompletion block to receive the result.
      Thermal Brightness
      method
      method setThermalBrightness:withCompletion
      - (void)setThermalBrightness:(NSUInteger)brightness withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the brightness of the image. It can be set manually only when the Scene mode is Manual.

      Input Parameters:
      NSUInteger brightnessThe integer value falls in [0, 16383].
      DJICompletionBlock completionCompletion block that receives the getter execution result.
      method getThermalBrightnessWithCompletion
      - (void)getThermalBrightnessWithCompletion:(void (^_Nonnull)(NSUInteger brightness, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the value of brightness. The value is available only when the Scene mode is Manual, User1, User2 or User3.

      Input Parameters:
      NSUInteger brightnessThe value of brightness.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSUInteger brightness, NSError *_Nullable error) completionCompletion block to receive the result.
      Thermal Contrast
      method
      method setThermalContrast:withCompletion
      - (void)setThermalContrast:(NSUInteger)contrast withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the value of contrast, with larger values having higher contrast. It can be set manually only when the Scene mode is Manual.

      Input Parameters:
      NSUInteger contrastContrast value as an integer with range [0, 255].
      DJICompletionBlock completionCompletion block that receives the getter execution result.
      method getThermalContrastWithCompletion
      - (void)getThermalContrastWithCompletion:(void (^_Nonnull)(NSUInteger Contrast, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets contrast value. The value is available only when the Scene mode is Manual, User1, User2 or User3.

      Input Parameters:
      NSUInteger ContrastThe contrast value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSUInteger Contrast, NSError *_Nullable error) completionCompletion block to receive the result.
      Thermal Isotherms Enable
      method
      method setThermalIsothermEnabled:withCompletion
      - (void)setThermalIsothermEnabled:(BOOL)enabled withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Enable or disable Isotherms. Isotherms can be used to highlight specific temperature ranges: When disabled, all 256 values (8-bits) are dedicated to the temperature histogram of the scene. When enabled, only 128 values (0-127) are mapped linearly to temperature. Then three bands 128-175, 176-223 and 224-255 can be mapped to the user defined temperatures to highlight them to the user. Using some of the false color palettes (like RainbowIso) results in a thermal image that is grey scale except for three specific bands highlighted by either reds, blues or greens. Not supported by Mavic 2 Enterprise Advanced.

      Input Parameters:
      BOOL enabledYES if isotherms are enabled.
      DJICompletionBlock completionCompletion block that receives the getter execution result.
      method getThermalIsothermEnabledWithCompletion
      - (void)getThermalIsothermEnabledWithCompletion:(void (^_Nonnull)(BOOL enabled, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Determines whether Isotherms are enabled. YES if Isotherms are enabled. Supported by the thermal lens of Zenmuse H20T and H20N.

      Input Parameters:
      BOOL enabledYES if Isotherms are enabled.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(BOOL enabled, NSError *_Nullable error) completionCompletion block to receive the result.
      Thermal Isotherm Unit
      method
      method setThermalIsothermUnit:withCompletion
      - (void)setThermalIsothermUnit:(DJICameraThermalIsothermUnit)unit withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the unit of the Isotherm ranges to either Celsius or percent. Different units results in different value ranges for Isotherms.

      Input Parameters:
      DJICameraThermalIsothermUnit unitAn enum type of the DJICameraThermalIsothermUnit to be used. Please refer to DJICameraThermalIsothermUnit.
      DJICompletionBlock completionCompletion block that receives the getter execution result.
      method getThermalIsothermUnitWithCompletion
      - (void)getThermalIsothermUnitWithCompletion:(void (^_Nonnull)(DJICameraThermalIsothermUnit unit, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the units for Isotherm ranges.

      Input Parameters:
      DJICameraThermalIsothermUnit unitThe value of the DJICameraThermalIsothermUnit Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraThermalIsothermUnit unit, NSError *_Nullable error) completionCompletion block that receives the getter execution result.
      Thermal Isotherm Upper Value
      method
      method setThermalIsothermUpperValue:withCompletion
      - (void)setThermalIsothermUpperValue:(NSInteger)value withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the upper threshold value for Isotherm. All temperature values above this will use colors 224-255 from the palette.

      Input Parameters:
      NSInteger valueIf the unit is percentage, the allowed range is [0,100].
      DJICompletionBlock completionCompletion block that receives the getter execution result.
      method getThermalIsothermUpperValueWithCompletion
      - (void)getThermalIsothermUpperValueWithCompletion:(void (^_Nonnull)(NSInteger value, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the upper threshold value for Isotherm. Supported by the thermal lens of Zenmuse H20T and H20N.

      Input Parameters:
      NSInteger valueThe upper threshold value.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSInteger value, NSError *_Nullable error) completionCompletion block to receive the result.
      Thermal Isotherm Middle Value
      method
      method setThermalIsothermMiddleValue:withCompletion
      - (void)setThermalIsothermMiddleValue:(NSInteger)value withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the middle threshold value for Isotherm. Temperature values between the middle and upper Isotherm threshold will be displayed with colors 176-223 from the palette. Not supported by Zenmuse H20T and H20N.

      Input Parameters:
      NSInteger valueIf the unit is percentage, the value falls in [0,100]. If the unit is Celsius, the value range is [-40, 550]. The value can only be equal or larger than lower threshold and equal or smaller than upper threshold.
      DJICompletionBlock completionCompletion block that receives the getter execution result.
      method getThermalIsothermMiddleValueWithCompletion
      - (void)getThermalIsothermMiddleValueWithCompletion:(void (^_Nonnull)(NSInteger value, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the middle threshold value for Isotherm. Not supported by Zenmuse H20T and H20N.

      Input Parameters:
      NSInteger valueThe middle threshold value for Isotherm.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSInteger value, NSError *_Nullable error) completionCompletion block that receives the getter execution result.
      Thermal Isotherm Lower Value
      method
      method setThermalIsothermLowerValue:withCompletion
      - (void)setThermalIsothermLowerValue:(NSInteger)value withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the lower threshold value for Isotherm. Temperature values between the lower and middle Isotherm threshold will be displayed with colors 128-175 from the palette. Supported by the thermal lens of Zenmuse H20T and H20N.

      Input Parameters:
      NSInteger valueIf the unit is percentage, the value falls in [0,100].
      DJICompletionBlock completionCompletion block that receives the getter execution result.
      method getThermalIsothermLowerValueWithCompletion
      - (void)getThermalIsothermLowerValueWithCompletion:(void (^_Nonnull)(NSInteger value, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the lower threshold value for Isotherm. Supported by the thermal lens of Zenmuse H20T and H20N.

      Input Parameters:
      NSInteger valueThe lower threshold value for Isotherm.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSInteger value, NSError *_Nullable error) completionCompletion block to receive the result.
      Thermal Gain Mode
      method
      method setThermalGainMode:withCompletion
      - (void)setThermalGainMode:(DJICameraThermalGainMode)mode withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the gain mode. Low gain mode can be used for scenes with temperatures ranging from -40 to 550 degrees Celsius. For higher contrast, the high gain mode can be used by for temperatures between -25 to 135 degrees Celsius for the 640x512 camera and -25 to 100 degrees Celsius for 324 x 256 camera. Mavic 2 Enterprise Dual has different temperature range from other thermal imaging cameras. Therefore, for Mavic 2 Enterprise Dual, the low gain mode can be used from -10 to 140 degrees Celsius. The high gain mode can be used from -10 to 400 degree Celsius, for Mavic 2 Enterprise Advanced, the low gain mode can be used from -20 to 450 degrees Celsius. The high gain mode can be used from -20 to 150 degree Celsius

      Input Parameters:
      DJICameraThermalGainMode modeAn enum type of the DJICameraThermalGainMode to be used.
      DJICompletionBlock completionCompletion block that receives the getter execution result.
      method getThermalGainModeWithCompletion
      - (void)getThermalGainModeWithCompletion:(void (^_Nonnull)(DJICameraThermalGainMode mode, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the gain mode. Supported by the thermal lens of Zenmuse H20T and H20N.

      Input Parameters:
      DJICameraThermalGainMode modeThe value of the DJICamera_DJICameraThermalGainMode Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraThermalGainMode mode, NSError *_Nullable error) completionCompletion block to receive the result.
      Thermal Measurement Mode
      method
      method setThermalMeasurementMode:withCompletion
      - (void)setThermalMeasurementMode:(DJICameraThermalMeasurementMode)mode
      withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the mode for thermal measurement. Use delegate method camera:didUpdateTemperatureData or camera:didUpdateAreaTemperatureAggregations to receive the measurement result. Supported only by thermal imaging cameras. Supported by the thermal lens of Zenmuse H20T and H20N and Mavic 2 Enterprise Advanced.

      Input Parameters:
      DJICameraThermalMeasurementMode modeThe desired measurement mode.
      DJICompletionBlock completionCompletion block that receives the getter execution result.
      method getThermalMeasurementModeWithCompletion
      - (void)getThermalMeasurementModeWithCompletion:(void (^_Nonnull)(DJICameraThermalMeasurementMode mode,
      NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the mode for thermal measurement. Supported by the thermal lens of Zenmuse H20T and H20N.

      Input Parameters:
      DJICameraThermalMeasurementMode modeThe value of the DJICameraThermalMeasurementMode Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraThermalMeasurementMode mode, NSError *_Nullable error) completionCompletion block to receive the result.
      Thermal Digital Zoom Factor
      method
      method setThermalDigitalZoomFactor:withCompletion
      - (void)setThermalDigitalZoomFactor:(DJICameraThermalDigitalZoomFactor)factor withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Adjusts the digital zoom. Supported by the thermal lens of Zenmuse H20T and H20N.

      Input Parameters:
      DJICameraThermalDigitalZoomFactor factorFor resolution 640 x 512, x1,x2,x4,x8 can be set. For resolution 336 x 256, only x1,x2,x4 can be set. Please refer to DJICameraThermalDigitalZoomFactor in DJICameraSettingsDef.
      DJICompletionBlock completionThe execution callback with the returned execution result.
      method getThermalDigitalZoomFactorWithCompletion
      - (void)getThermalDigitalZoomFactorWithCompletion:(void (^_Nonnull)(DJICameraThermalDigitalZoomFactor factor, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets current digital zoom.

      Input Parameters:
      DJICameraThermalDigitalZoomFactor factorThe value of the DJICameraThermalDigitalZoomFactor Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraThermalDigitalZoomFactor factor, NSError *_Nullable error) completionCompletion block to receive the result.
      Thermal Profile
      method
      method getThermalProfileWithCompletion
      - (void)getThermalProfileWithCompletion:(void (^_Nonnull)(DJICameraThermalProfile profile, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the thermal imaging camera profile. The profile includes information about resolution, frame rate and focal length. Supported by the thermal lens of Zenmuse H20T and H20N.

      Input Parameters:
      DJICameraThermalProfile profileThe value of the DJICameraThermalProfile Struct.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraThermalProfile profile, NSError *_Nullable error) completionCompletion block to receive the result.
      Thermal Spot Metering Target Point
      method
      method getThermalSpotMeteringTargetPointWithCompletion
      - (void)getThermalSpotMeteringTargetPointWithCompletion:(void (^_Nonnull)(CGPoint targetPoint, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the spot metering target point if one is set, if not then returns CGPointZero. Supported by the thermal lens of Zenmuse H20T and H20N and Mavic 2 Enterprise Advanced.

      Input Parameters:
      CGPoint targetPointThe CGPoint struct.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(CGPoint targetPoint, NSError *_Nullable error) completionCompletion block to receive the result.
      method setThermalSpotMeteringTargetPoint:withCompletion
      - (void)setThermalSpotMeteringTargetPoint:(CGPoint)targetPoint withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the spot metering target point which then . This method requires a relative point that is proportional to the dimension of the camera video dimension, the x, and y values must all be between 0 and 1.0. You should call setThermalMeasurementMode:withCompletion to set the measurement mode to DJICameraThermalMeasurementModeSpotMetering first. Supported by the thermal lens of Zenmuse H20T and H20N and Mavic 2 Enterprise Advanced.

      Input Parameters:
      CGPoint targetPointThe desired target point.
      DJICompletionBlock completionCompletion block that receives the setter execution result.
      Thermal Metering Area
      method
      method getThermalMeteringAreaWithCompletion
      - (void)getThermalMeteringAreaWithCompletion:(void (^_Nonnull)(CGRect area, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Get a rect representing the currently set metering area for the thermal scene. Supported by the thermal lens of Zenmuse H20T and H20N.

      Input Parameters:
      CGRect areaThe CGRect struct.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(CGRect area, NSError *_Nullable error) completionCompletion block to receive the result.
      method setThermalMeteringArea:withCompletion
      - (void)setThermalMeteringArea:(CGRect)area withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Set the metering area for a rectangle inside the thermal ismage scene, which allows the camera to transmit aggregate temperature computations via the camera:didUpdateAreaTemperatureAggregations delegate method. See DJICameraThermalAreaTemperatureAggregations for the statistical values that are available. This method requires a relative rect that is proportional to the rect of the thermal scene, the x, y, width, and height values must all be between 0 and 1.0. You should call setThermalMeasurementMode:withCompletion to set the measurement mode to DJICameraThermalMeasurementModeAreaMetering first. Supported by the thermal lens of Zenmuse H20T and H20N and Mavic 2 Enterprise Advanced.

      Input Parameters:
      CGRect areaThe desired thermal metering area.
      DJICompletionBlock completionCompletion block that receives the setter execution result.
      Thermal FFC Mode
      method
      method getThermalFFCModeWithCompletion
      - (void)getThermalFFCModeWithCompletion:(void (^_Nonnull)(DJICameraThermalFFCMode mode, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Get the currently set flat-field correction (FFC) mode.

      Input Parameters:
      DJICameraThermalFFCMode modeThe value of the DJICameraThermalFFCMode Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraThermalFFCMode mode, NSError *_Nullable error) completionCompletion block to receive the result.
      method setThermalFFCMode:withCompletion
      - (void)setThermalFFCMode:(DJICameraThermalFFCMode)mode withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Set the flat-field correction (FFC) mode. Supported by the thermal lens of Zenmuse H20T and H20N.

      Input Parameters:
      DJICameraThermalFFCMode modeThe desired FFC mode.
      DJICompletionBlock completionCompletion block that receives the setter execution result.
      method triggerThermalFFCWithCompletion
      - (void)triggerThermalFFCWithCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Trigger flat-field correction. Supported by the thermal lens of Zenmuse H20T and H20N.

      Input Parameters:
      DJICompletionBlock completionCompletion block that receives the execution result of the trigger action.
      Thermal Custom External Scene Settings Profile
      method
      method getThermalCustomExternalSceneSettingsProfileWithCompletion
      - (void)getThermalCustomExternalSceneSettingsProfileWithCompletion:(void (^_Nonnull)(DJICameraThermalCustomExternalSceneSettingsProfile profile, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the currently set custom user profile. This profile represents user-set external scene parameters for the thermal scene. Not supported by Zenmuse H20T and H20N.

      Input Parameters:
      DJICameraThermalCustomExternalSceneSettingsProfile profileThe value of the DJICameraThermalCustomExternalSceneSettingsProfile Enum.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraThermalCustomExternalSceneSettingsProfile profile, NSError *_Nullable error) completionCompletion block to receive the result.
      method setThermalCustomExternalSceneSettingsProfile:withCompletion
      - (void)setThermalCustomExternalSceneSettingsProfile:(DJICameraThermalCustomExternalSceneSettingsProfile)profile withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the custom user profile. This profile represents user-set external scene parameters for the thermal scene. Not supported by Zenmuse H20T and H20N.

      Input Parameters:
      DJICameraThermalCustomExternalSceneSettingsProfile profileThe desired user profile setting.
      DJICompletionBlock completionCompletion block that receives the setter execution result.
      Thermal Temperature Unit
      method
      method setThermalTemperatureUnit:withCompletion
      - (void)setThermalTemperatureUnit:(DJICameraTemperatureUnit)temperatureUnit withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the temperature unit. Not supported by Mavic 2 Enterprise Advanced.

      Input Parameters:
      DJICameraTemperatureUnit temperatureUnitTemperature unit to set.
      DJICompletionBlock completionCompletion block that receives the setter execution result.
      method getThermalTemperatureUnitWithCompletion
      - (void)getThermalTemperatureUnitWithCompletion:(void (^_Nonnull)(DJICameraTemperatureUnit temperatureUnit, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the temperature unit.

      Input Parameters:
      DJICameraTemperatureUnit temperatureUnitThe current temperature unit.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraTemperatureUnit temperatureUnit, NSError *_Nullable error) completionCompletion block to receive the result.
      method setDisplayMode:withCompletion
      - (void)setDisplayMode:(DJICameraDisplayMode)mode withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the display mode to coordinate the video feeds from both the visual camera and the thermal camera. Only applies to the thermal infrared video feed. For Zemmuse H20T and H20N, you should set setCameraVideoStreamSource:withCompletion with DJICameraVideoStreamSourceInfraredThermal first. Only supported by Zenmuse H20T and H20N.and Mavic 2 Enterprise Advanced.

      Input Parameters:
      DJICameraDisplayMode modeThe display mode to set.
      DJICompletionBlock completionCompletion block that receives the setter execution result.
      method getDisplayModeWithCompletion
      - (void)getDisplayModeWithCompletion:(void (^_Nonnull)(DJICameraDisplayMode mode, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the display mode. The display mode determine the way to coordinate the video feeds from both the visual camera and the thermal camera.

      Input Parameters:
      DJICameraDisplayMode modeThe current display mode.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraDisplayMode mode, NSError *_Nullable error) completionCompletion block to receive the result.
      method setPIPPosition:withCompletion
      - (void)setPIPPosition:(DJICameraPIPPosition)position withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the thermal window's position relative to the visual window. Only applies to the thermal infrared video feed. The setting is valid when the display mode is DJICameraDisplayModePIP. Refer to setDisplayMode:withCompletion and getDisplayModeWithCompletion.

      Input Parameters:
      DJICameraPIPPosition positionThe position to set.
      DJICompletionBlock completionCompletion block that receives the setter execution result.
      method getPIPPositionWithCompletion
      - (void)getPIPPositionWithCompletion:(void (^_Nonnull)(DJICameraPIPPosition position, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the PIP position which determines the thermal window's position relative to the visual window. The setting is valid when the display mode is DJICameraDisplayModePIP. Refer to setDisplayMode:withCompletion and getDisplayModeWithCompletion.

      Input Parameters:
      DJICameraPIPPosition positionThe current position.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(DJICameraPIPPosition position, NSError *_Nullable error) completionCompletion block that receives the setter execution result.
      method setMSXLevel:withCompletion
      - (void)setMSXLevel:(uint8_t)level withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the level for MSX display mode. The range for level is [0, 100]. When it is 0, the visible spectrum definition is invisible. When it is 100, the visual spectrum definition is the most obvious. Only applies to the thermal infrared video feed.

      Input Parameters:
      uint8_t levelThe MSX level to set with range [0, 100].
      DJICompletionBlock completionCompletion block that receives the setter execution result.
      method getMSXLevelWithCompletion
      - (void)getMSXLevelWithCompletion:(void (^_Nonnull)(uint8_t level, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets the level for MSX display mode. The range for level is [0, 100]. When it is 0, the visible spectrum definition is invisible. When it is 100, the visual spectrum definition is the most obvious. Supported by the thermal lens of Zenmuse H20T and H20N.

      Input Parameters:
      uint8_t levelThe current MSX level.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(uint8_t level, NSError *_Nullable error) completionCompletion block to receive the result.
      Thermal Atmospheric Temperature
      method
      method setThermalAtmosphericTemperature:withCompletion
      - (void)setThermalAtmosphericTemperature:(float)temperature withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the temperature of the atmosphere between the scene and the camera. Not supported by Zenmuse H20T and H20N.

      Input Parameters:
      float temperatureThe assumed temperature of the atmosphere between the camera and the scene, can be between -50 and 327.67 degrees Celsius.
      DJICompletionBlock completionCompletion block that receives the setter execution result.
      Thermal Atmospheric Transmission Coefficient
      method
      method setThermalAtmosphericTransmissionCoefficient:withCompletion
      - (void)setThermalAtmosphericTransmissionCoefficient:(float)coefficient withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the transmission coefficient of the atmosphere between the scene and the camera. Not supported by Zenmuse H20T and H20N.

      Input Parameters:
      float coefficientThe desired atmospheric temperature, can be between 50 and 100.
      DJICompletionBlock completionCompletion block that receives the setter execution result.
      Thermal Background Temperature
      method
      method setThermalBackgroundTemperature:withCompletion
      - (void)setThermalBackgroundTemperature:(float)temperature withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the assumed temperature reflected by the background of the scene, can be between -50 and 327.67 degrees Celsius. Not supported by Zenmuse H20T and H20N.

      Input Parameters:
      float temperatureThe desired background reflected temperature.
      DJICompletionBlock completionCompletion block that receives the setter execution result.
      Thermal Scene Emissivity
      method
      method setThermalSceneEmissivity:withCompletion
      - (void)setThermalSceneEmissivity:(float)emissivity withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the emissivity of the thermal scene, can be between 50 and 100. Not supported by Zenmuse H20T and H20N.

      Input Parameters:
      float emissivityThe desired scene emissivity.
      DJICompletionBlock completionCompletion block that receives the setter execution result.
      Thermal Window Reflection
      method
      method setThermalWindowReflection:withCompletion
      - (void)setThermalWindowReflection:(float)reflection withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets assumed window reflection coefficient, can be between 0 and X where X is the window transmission coefficient parameter. Not supported by Zenmuse H20T and H20N.

      Input Parameters:
      float reflectionThe desired window reflection coefficient.
      DJICompletionBlock completionCompletion block that receives the setter execution result.
      Thermal Window Reflected Temperature
      method
      method setThermalWindowReflectedTemperature:withCompletion
      - (void)setThermalWindowReflectedTemperature:(float)temperature withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the temperature reflected in the window, can be between -50 and 327.67 degrees Celsius. Not supported by Zenmuse H20T and H20N.

      Input Parameters:
      float temperatureThe desired window reflected temperature.
      DJICompletionBlock completionCompletion block that receives the setter execution result.
      Thermal Window Temperature
      method
      method setThermalWindowTemperature:withCompletion
      - (void)setThermalWindowTemperature:(float)temperature withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the window temperature, can be between -50 and 327.67 degrees Celsius. Not supported by Zenmuse H20T and H20N.

      Input Parameters:
      float temperatureThe desired window temperature.
      DJICompletionBlock completionCompletion block that receives the setter execution result.
      method setThermalWindowTransmissionCoefficient:withCompletion
      - (void)setThermalWindowTransmissionCoefficient:(float)coefficient withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Sets the window transmission coefficient, can be between 50 and 100-X where X is the window reflection. Not supported by Zenmuse H20T and H20N.

      Input Parameters:
      float coefficientThe desired window transmission coefficient.
      DJICompletionBlock completionCompletion block that receives the setter execution result.
      method setInfraredThermalCameraSensorBurningProtectionEnabled:withCompletion
      - (void)setInfraredThermalCameraSensorBurningProtectionEnabled:(BOOL)isEnabled withCompletion:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Enables or disables the infrared sensor protection. If the sensor protection is enabled, the infrared thermal camera shutter might be closed. Only supported by Zenmuse H20T and H20N.

      Input Parameters:
      BOOL isEnabledEnable or disable infrared sensor protection.
      DJICompletionBlock completionThe completion block that receives the execution result.
      Enable Infrared Thermal Camera
      method
      method setInfraredThermalCameraShutterEnabled
      - (void)setInfraredThermalCameraShutterEnabled:(DJICompletionBlock)completion
      Header:DJILens.h
      Description:

      Enables the infrared thermal camera. Infrared thermal camera shutter may be closed, if the sensor protection is enabled. Only supported by Zenmuse H20T and H20N.

      Input Parameters:
      DJICompletionBlock completionThe completion block that receives the execution result.
      method getTemperatureMeasurementRangeWithGainMode:completion
      - (void)getTemperatureMeasurementRangeWithGainMode:(DJICameraThermalGainMode)mode completion:(void (^_Nonnull)(NSArray <NSNumber *> *range, NSError *_Nullable error))completion
      Header:DJILens.h
      Description:

      Gets temperature range of specific gain mode. Only Supported by the thermal lens of Zenmuse H20T and H20N.

      Input Parameters:
      DJICameraThermalGainMode modeGiven camera gain mode.
      NSArray <NSNumber *> * rangeThe temperature measurement range of given gain mode.
      NSError *_Nullable errorError retrieving the value.
      void (^_Nonnull)(NSArray <NSNumber *> *range, NSError *_Nullable error) completionCompletion block to receive the result.


      State Updates
      protocol
      protocol DJILensDelegate
      @protocol DJILensDelegate <NSObject>
      Header:DJILens.h
      Inherits From:NSObject
      Description:

      This protocol provides delegate methods to receive the updated video data, current state and information of lens.

      Protocol Methods:

      Protocol Method

      method lens:didUpdateFocusState
      @optional
      - (void)lens:(DJILens *_Nonnull)lens didUpdateFocusState:(DJICameraFocusState *_Nonnull)focusState
      Header:DJILens.h
      Description:

      Called when the focus state has been updated.

      Input Parameters:
      DJILens *_Nonnull lensInstance of the lens for which focus state will be updated.
      DJICameraFocusState *_Nonnull focusStateThe camera's lens and focus state.
      method lens:didUpdateAreaTemperatureAggregations
      @optional
      - (void)lens:(DJILens *_Nonnull)lens didUpdateAreaTemperatureAggregations:(DJICameraThermalAreaTemperatureAggregations)temperatureAggregations
      Header:DJILens.h
      Description:

      Called when there are new min, max, and average temperature values available for the set spot metering area. Supported by the thermal lens of Zenmuse H20T and H20N.

      Input Parameters:
      DJILens *_Nonnull lensInstance of the Camera for which area temperature aggregations will be updated.
      DJICameraThermalAreaTemperatureAggregations temperatureAggregationsThe updated aggregate temperature values.
      method lens:didUpdateExternalSceneSettings
      @optional
      - (void)lens:(DJILens *_Nonnull)lens didUpdateExternalSceneSettings:(DJICameraThermalExternalSceneSettings)settings
      Header:DJILens.h
      Description:

      Called when updated external scene settings are available. Supported by the thermal lens of Zenmuse H20T and H20N.

      Input Parameters:
      DJILens *_Nonnull lensInstance of the Camera for which external scene settings will be updated.
      DJICameraThermalExternalSceneSettings settingsThe updated external scene settings values.
      method lens:didUpdateExposureSettings
      @optional
      - (void)lens:(DJILens *_Nonnull)lens didUpdateExposureSettings:(DJICameraExposureSettings)settings
      Header:DJILens.h
      Description:

      Called whenever the lens parameters change. In automatic exposure modes (Program, Shutter Priority and Aperture Priority) the lens may be automatically changing aperture, shutter speed and ISO (depending on the mode and camera) when lighting conditions change. In Manual mode, the exposure compensation is automatically updated to let the user know how much compensation the exposure needs to get to an exposure the camera calculates as correct.

      Input Parameters:
      DJILens *_Nonnull lensInstance of the Camera for which exposure settings will be updated.
      DJICameraExposureSettings settingsThe updated real values for parameters.
      method lens:didUpdateTemperatureData
      @optional
      - (void)lens:(DJILens *_Nonnull)lens didUpdateTemperatureData:(float)temperature
      Header:DJILens.h
      Description:

      Received temperature in degrees Celsius of image. The thermal imaging camera will only update the temperature if the temperature data is enabled. Supported by the thermal lens of Zenmuse H20T and H20N.

      Input Parameters:
      DJILens *_Nonnull lensInstance of the Camera for which temperature data will be updated.
      float temperatureThe camera's temperature data in degrees Celsius.
      method lens:didUpdateTapZoomState
      @optional
      - (void)lens:(DJILens *_Nonnull)lens didUpdateTapZoomState:(DJICameraTapZoomState)state
      Header:DJILens.h
      Description:

      Called when the camera's zoom state is updated. Supported by the zoom lens and the wide lens of Zenmuse H20 Series.

      Input Parameters:
      DJILens *_Nonnull lensInstance of the Camera for which tap zoom state will be updated.
      DJICameraTapZoomState stateThe camera's current zoom state.
      method lens:didUpdateLaserMeasureInformation
      @optional
      - (void)lens:(DJILens *_Nonnull)lens didUpdateLaserMeasureInformation:(DJICameraLaserMeasureInformation *)information
      Header:DJILens.h
      Description:

      Called when the laser measure information updated. The laser sensor must be at least 3 meters away from the target point. Supported by the zoom lens and the wide lens of Zenmuse H20 Series.

      Input Parameters:
      DJILens *_Nonnull lensInstance of the Camera for which laser measure information will be updated.
      DJICameraLaserMeasureInformation * informationThe laser measure information.
      method lens:didUpdateGlobalTemperatureRange
      @optional
      - (void)lens:(DJILens *_Nonnull)lens didUpdateGlobalTemperatureRange:(NSArray *)range
      Header:DJILens.h
      Description:

      Called when the temperature range changes. Only Supported by the thermal lens of Zenmuse H20T and H20N.

      Input Parameters:
      DJILens *_Nonnull lensInstance of the lens for which temperature range will be updated.
      NSArray * rangeThe temperature range. The array contains min value, max value.