Skip to main content

KeyValue usage tutorial

Autel KeyValue Usage Tutorial​

Overview​

The KeyManager class provides a set of methods to access the request parameters of the hardware module and control the behavior of the hardware module, including Key Value setting, Value acquisition, Value monitoring and Action execution.

Through Key/Value, all Keys supported by KeyManager are debugged. Each Key will be limited to whether it supports setting, getting, monitoring, executing commands, and reporting.

1. AirLinkKey ​

KeyALinkBandMode ​

Description: Image transmission frequency band reading and writing

Input parameters:

enum class AirLinkBandModeEnum(val value: Int) {
AUTO(-2),
/**
* Location not found
*/
BAND_MODE_UNKNOWN(0),

/**
* 2.4G
*/
BAND_MODE_24G(1),

/**
*5.2G
*/
BAND_MODE_52G(2),

/**
* 2.4 and 5.2 automatic switching
*/
BAND_MODE_24G_52G(3),

/**
*5.8G
*/
BAND_MODE_58G(4),

/**
* 2.4 and 5.8 automatic switching
*/
BAND_MODE_24G_58G(5),

/**
* 5.2 and 5.8 automatic switching
*/
BAND_MODE_52G_58G(6),

/**
* 2.4, 5.2 and 5.8 automatic switching
*/
BAND_MODE_24G_52G_58G(7),

/**
* Single 900 frequency band
*/
BAND_MODE_900M(8),

/**
* 2.4, 5.8, 900M automatic switching
*/
BAND_MODE_24G_52G_900M(11),

/**
* 2.4, 5.8, 900M automatic switching
*/
BAND_MODE_24G_58G_900M(13),

/**
* 2.4, 5.2, 5.8, 900M automatic switching
*/
BAND_MODE_24G_52G_58G_900M(15),

/**
* All available frequency bands
*/
BAND_MODE_ALI_BAND( 65535);
}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyALinkTransmissionMode ​

Description: Image transmission clarity mode

Input parameters:

enum class VideoTransMissionModeEnum(val value: Int) {
/**
* Smooth Low Latency
*/
LOW_LATENCY(1),

/**
* High Quality
*/
HIGH_QUALITY(2),

/**
* 2.7K Ultra HD
*/
SUPER(3),

/**
* Unknown
*/
UNKNOWN(255);
}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyALinkFccCeMode ​

Functional Description: Radiated Power Mode

Input parameters:

enum class FccCeModeEnum(val value: Int) {

/**
* CE (Adaptive Mode)
*/
CE(0),

/**
* FCC (Full Band Mode)
*/
FCC(1),

/**
* CE_FOREVER (Adaptive mode), permanent effect (does not restore to default value after aircraft restart)
*/
CE_FOREVER(2),

/**
*FCC_FOREVER (full frequency band mode), permanent effect (does not restore to default value after aircraft restart)
*/
FCC_FOREVER(3);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyALinkStartMatching ​

Description: Start frequency binding

Input parameters: None

Output parameter: None

Type: Action

KeyALinkMatchingStatus ​

Description: Frequency link progress reporting event

Input parameters: None

Output parameter:

enum class AirLinkMatchStatusEnum (val value: Int) {

/**
* Unknown
*/
STATUS_UNKNOWN (0),

/**
* Start binding, Binding in progress
*/
STATUS_PAIRING (1),

/**
* Binding successful
*/
STATUS_SUC (2),

/**
* Binding timeout or frequency binding startup failure
*/
STATUS_FAILED (3),

/**
* The frequency binding action is completed regardless of success or failure
*/
STATUS_FINISH (4);
}

Type: Listen

KeyAirlinkControlHighSpeed ​

Description: Switch to high-speed mode 0-Normal mode, 1-High-speed file upload (upload task files), 2-High-speed download mode (download photos or videos), 3-Exclusive mode (upgrade)

Input parameters:

enum class HighSpeedEnum(val value: Int) {     
/**
* Normal mode
*/
NORMAL(0),
/**
* High-speed file upload (upload task files)
*/
HIGH_UPLOAD(1),
/**
* 2- High-speed download mode (download photos or videos)
*/
HIGH_DOWNLOAD(2),
/**
* Exclusive mode
*/
EXCLUSIVE (3),
/**
* quit
*/
EXIT (4),
/**
* Super high-speed mode for uploading files
*/
SUPER_HIGH_UPLOAD(6);
}

Output parameter: None

Type: Action

KeyAirlinkGetHighSpeed ​

Description: Get high-speed mode interface

Input parameters: None

Output parameter:

enum class HighSpeedEnum(val value: Int) {
/**
* Normal mode
*/
NORMAL(0),
/**
* High-speed file upload (upload task files)
*/
HIGH_UPLOAD(1),
/**
* 2- High-speed download mode (download photos or videos)
*/
HIGH_DOWNLOAD(2),
/**
* Exclusive mode
*/
EXCLUSIVE (3),
/**
* quit
*/
EXIT (4),
/**
* Super high-speed mode for uploading files
*/
SUPER_HIGH_UPLOAD(6);
}

Type: Action

KeyAirlinkEnterSilenceMode ​

Description: Enter the silent mode of image transmission

Input parameters: None

Output parameter: None

Type: Action

KeyAirlinkLteStreamerMaxBtrate ​

Description: Maximum bitrate for 4G streaming

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyAirlinkAtMaxBtrateVisible ​

Description: Maximum bit rate of visible light image transmission

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyAirLinkVideoScreenClose ​

Description: Image transmission switch false Image transmission is enabled true Image transmission is disabled

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyAirLinkPowerCtrl ​

Description: Image transmission wireless RF signal transmission power

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

2. AIServiceKey ​

KeyAiDetectTarget ​

Description:The aircraft detects targets and sends the detection bounding boxes to the app.

Request parameter:None

Output parameter:

// Data class for detection and tracking notification
data class DetectTrackNotifyBean(
var timestamp: Long = 0, // Timestamp

var frameId: Int = 0, // Frame ID
/**
* Resolution width
*/
var resolutionWidth: Int = 0,
/**
* Resolution height
*/
var resolutionHeight: Int = 0,
/**
* Number of detected objects
*/
var objNum: Int = 0,
/**
* List of bounding boxes for tracked objects
*/
var infoList: List<DetectObjectBean> = emptyList(),
var imageId: Int = 0, // Unique image ID (unique since power-on). Set to 0 if no image is saved this time.
var imageUrl: String = "", // Image path. Set to empty string if no image is saved this time.
/**
* Lens ID
*/
var lensId: Int = 0
)

// Data class for detected object information
data class DetectObjectBean(
/**
* X coordinate of the target in pixel space
*/
var startX: Float = 0f,
/**
* Y coordinate of the target in pixel space
*/
var startY: Float = 0f,
/**
* Width of the bounding box
*/
var width: Float = 0f,
/**
* Height of the bounding box
*/
var height: Float = 0f,
/**
* Type of the detected object
*/
var type: Int = 0,
/**
* Tracking status of the target
*/
var status: Int = 0,
/**
* Unique ID of the tracked object
*/
var objectId: Int = 0
)

Type:Listen

KeyTrackingTargetObject ​

Description: After the user selects a target on the App, the aircraft locks on the target and sends the tracking frame to the App

Input parameters: None

Output parameter:

data class TrackAreaBean(
/**
* Timestamp
*/
var timestamp: Long = 0L,
/**
* id
*/
var frameId: Int = 0,
/**
* Resolution width
*/
var resolutionWidth: Int = 0,
/**
* Resolution height
*/
var resolutionHeight: Int = 0,
/**
* quantity
*/
var objNum: Int = 0,
/**
* Tracking box array
*/
var infoList: List<ObjectBean>? = null,
/**
* Lens ID
*/
var lensId: Int
)

Type: Listen

KeyExtendedDetectReport ​

Description: The AIService reports the current extended capability set to the App.

Input parameters:None

Output parameter:

// Data class for extended detection capability
data class ExtendedDetectCapBean(
var modelId: Long,
var capList: MutableList<ExtendedDetectBean>
)

// Data class for extended detection model information
data class ExtendedDetectBean(
/**
* Extended detection model type value, e.g., 101
*/
var modelId: Int = 0,
/**
* Extended detection model type name, e.g., "umbrella"
*/
var modelName: String = ""
)

Type:Listen

3. AITrackingKey ​

KeyTrackingFreeFollow ​

Description: Free follow

Input parameters: None

Output parameter: None

Type: Action

KeyTrackingTripod ​

Description: Hover to follow

Input parameters: None

Output parameter: None

Type: Action

KeyTrackingDynamicFollow ​

Description: Intelligent 8-way

Input parameters: None

Output parameter: None

Type: Action

KeyTrackingParallel ​

Description: Parallel follow

Input parameters: None

Output parameter: None

Type: Action

KeyTrackingStop ​

Description: Follow the task to stop

Input parameters: None

Output parameter: None

Type: Action

KeyInfraredTrackingFreeFollow ​

Description: Infrared free following

Input parameters: None

Output parameter: None

Type: Action

KeyInfraredTrackingTripod ​

Description: Infrared hovering and following

Input parameters: None

Output parameter: None

Type: Action

KeyInfraredTrackingDynamicFollow ​

Description: Infrared intelligent eight-way

Input parameters: None

Output parameter: None

Type: Action

KeyInfraredTrackingParallel ​

Description: Infrared parallel following

Input parameters: None

Output parameter: None

Type: Action

KeyInfraredTrackingStop ​

Description: Infrared following task stops

Input parameters: None

Output parameter: None

Type: Action

KeySecurityIntelligentDetectEnter ​

Description: Enter the security intelligent detection mode

Input parameters:

data class AIDetectConfigBean(
var sceneType: AiDetectSceneTypeEnum = AiDetectSceneTypeEnum.UNRECOGNIZED, //Current scene type, reference value: AI_DETECT_SCENE_TYPE
var targetTypeList: List<Int>? = null, //The detection type list currently selected by the user, reference value: TARGET_TYPE, when the list is empty, it indicates the usage scenario type
var lensId: Int?= null
)

Output parameter: None

Type: Action

KeySecurityIntelligentDetectExit ​

Description: Exit security intelligent detection mode

Input parameters: None

Output parameter: None

Type: Action

KeyPanoramaIntelligentDetectEnter ​

Description: Enter the panoramic intelligent detection mode

Input parameters: None

Output parameter: None

Type: Action

KeyPanoramaIntelligentDetectExit ​

Description: Exit panoramic intelligent detection mode

Input parameters: None

Output parameter: None

Type: Action

KeyExtendIntelligentLockEnter ​

Description: Enter smart lock

Input parameters:ExtendAIDetectConfigBean

// Data class for extended AI detection configuration
data class ExtendAIDetectConfigBean(

/**
* Current scene type.
*/
var sceneType: AiDetectSceneTypeEnum = AiDetectSceneTypeEnum.UNRECOGNIZED,

/**
* Specifies the detection target types, referring to the DetectTargetEnum.
* If the list is empty, the scene type will be used instead.
*/
var targetTypeList: List<Int>? = null,

/**
* Specifies the lens ID.
*/
var lensId: Int? = null,

/**
* Enumeration of AI functions.
*/
var dfAIFunc: FuncEnum = FuncEnum.AI_DETECT
)

// AI Function Enumeration
enum class FuncEnum(val value: Int) {
/**
* AI Detection
*/
AI_DETECT(40),

/**
* Object Tracking
*/
OBJECT_TRACKING(41),

/**
* AI Detection with Object Tracking
*/
AI_DETECT_OBJECT_TRACKING(42),

UNKNOWN(-1);
}

Output parameter: None

Type: Action

KeyExtendIntelligentLockStart ​

Description: Start smart lock

Input parameters: TrackTargetRectBean

data class TrackTargetRectBean(
/**
* Starting point x coordinate
*/
val startX: Float = 0F,
/**
* Starting point y coordinate
*/
val startY: Float = 0F,
/**
* Width
*/
val width: Float = 0F,
/**
* high
*/
val height: Float = 0F,

/**
* Current lens id, value reference: Camera capability set
*/
var lensId: Int? = null,

/**
* Current lens id, value reference: Camera capability set
*/
var sceneType: AiDetectSceneTypeEnum,

/**
* Target ID
*/
var objectId: Int? = 0
/**
* Incremental sequence number
*/
var seqId:Int = 0
)

Output parameter: None

Type: Action

KeyExtendIntelligentLockExit ​

Description: Exit smart lock

Input parameters: ExtendAIExitBean

// Data class for extended AI exit information
data class ExtendAIExitBean(

/**
* Specifies the lens ID.
*/
var lensId: Int = 0,

/**
* Enumeration of AI functions.
*/
var dfAIFunc: FuncEnum = FuncEnum.AI_DETECT
)

// AI Function Enumeration
enum class FuncEnum(val value: Int) {
/**
* AI Detection
*/
AI_DETECT(40),

/**
* Object Tracking
*/
OBJECT_TRACKING(41),

/**
* AI Detection with Object Tracking
*/
AI_DETECT_OBJECT_TRACKING(42),

UNKNOWN(-1);
}

Output parameter: None

Type: Action

4. CameraKey ​

KeyCameraDeviceInfo ​

Description: Camera device information

Input parameters: None

Output parameter:

data class CameraDeviceInfoBean(
/**
* Identification code, a random number generated when the system starts, will not change before the system is restarted, used by the client to identify whether it is connected to other cameras
*/
var identifyCode: Int = 0,
/**
* Device Type
*/
var deviceType: String? = null,
/**
* Equipment Model
*/
var deviceModel: String? = null,
/**
* Protocol version
*/
var protocolVersion: Int = 0,
/**
* Manufacturer
*/
var manufacturer: String? = null,
/**
* Hardware version
*/
var firmwareVersion: String? = null,
/**
* Serial Number
*/
var serialNumber: String? = null,
/**
* Hardware ID
*/
var hardwareId: String? = null,
/**
* Lens Model
*/
var lensModel: String? = null,
/**
* Lens software version number
*/
var lensSoftVersion: String? = null,
)

Type: Get

KeyStorageType ​

Description: Storage device type

Input parameters:

enum class StorageTypeEnum(var value: Int) {
UNKNOWN(0xFF),
/**
* SD card
*/
SD(0),

/**
* EMMC
*/
EMMC(1);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyStorageStatus ​

Description: SD card status

Input parameters: None

Output parameter:

data class CardStatusBean(
/**
* SD card status
*/
var storageStatus: CardStatusEnum = CardStatusEnum.UNKNOWN,
/**
* Total SD card capacity in MB
*/
var totalSpace: Long = 0L,
/**
* SD card remaining capacity, in MB
*/
var freeSpace: Long = 0L,
/**
* Remaining recording time in seconds
*/
var remainRecordTime: Long = 0L,
/**
* Number of photos remaining
*/
var remainCaptureNum: Long = 0L,
)

Type: Get, Listen

KeyMMCStatus ​

Description: MMC onboard flash memory status

Input parameters:

data class CardStatusBean(
/**
* SD card status
*/
var storageStatus: CardStatusEnum = CardStatusEnum.UNKNOWN,
/**
* Total SD card capacity in MB
*/
var totalSpace: Long = 0L,
/**
* SD card remaining capacity, in MB
*/
var freeSpace: Long = 0L,
/**
* Remaining recording time in seconds
*/
var remainRecordTime: Long = 0L,
/**
* Number of photos remaining
*/
var remainCaptureNum: Long = 0L,
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyVideoEncoderConfig ​

Functional Description: Video encoder configuration

Input parameters:

data class VideoEncoderConfigBean(
/**
* Stream ID, 0 - main stream, 1 - sub-stream (secondary stream)
*/
var streamId: Int = 0,
/**
* Video encoding type
*/
var encoding: VideoCompressStandardEnum = VideoCompressStandardEnum.UNKNOWN,
/**
* Image resolution/frame rate information
*/
var resolution: VideoResolutionBean? = null,
/**
* QP value
*/
var quality: Int = 0,
/**
* I frame interval
*/
var govLength: Int = 0,
/**
* Coding level
*/
var profile: VideoCompressProfileEnum = VideoCompressProfileEnum.UNKNOWN,
/**
* Stream type
*/
var bitrateType: VideoBitrateEnum = VideoBitrateEnum.UNKNOWN,
/**
* Bit rate
*/
var bitrate: Int = 0,
/**
* Slow motion on
*/
var slow : Boolean = false,
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyVideoSourceConfig ​

Description: Video source configuration

Input parameters:

data class VideoSourceConfigBean(
/**
* Video rotation angle
*/
var rotation: Int = 0,
/**
* Video format
*/
var videoStandard: VideoStandardEnum = VideoStandardEnum.UNKNOWN,
/**
* Anti-flicker
*/
var antiFlicker: ResistanceBlinkEnum = ResistanceBlinkEnum.UNKNOWN,
/**
* Enable 3D noise reduction
*/
var enable3DNR: Boolean = false,
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraGear ​

Description: Camera gear

Input parameters:

enum class CameraGearEnum(var value: Int) {
/**
* automatic
*/
AUTO(0),

/**
* Manual
*/
MANUAL(1),

/**
* Shutter priority
*/
SHUTTER_PRIORITY(2),

/**
* Aperture priority
*/
APERTURE_PRIORITY(3),
UNKNOWN(0xFF);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraMode ​

Description: Camera mode

Input parameters:

data class CameraWorkModeInfoBean(
/**
* Refer to CAMERA_WORK_MODE_TYPE
*/
var workMode: CameraWorkModeEnum = CameraWorkModeEnum.UNKNOWN,
/**
* Refer to CAMERA_TAKE_PHOTO_MODE_TYPE
*/
var photoMode: TakePhotoModeEnum = TakePhotoModeEnum.UNKNOWN,
/**
* Refer to CAMERA_RECORD_MODE_TYPE
*/
var videoMode: RecordModeEnum = RecordModeEnum.UNKNOWN,
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyTakePhotoParameters ​

Description: Photo parameters

Input parameters:

data class TakePhotoParametersBean(

/**
* Image Type
*/
var picType: PhotoFormatEnum = PhotoFormatEnum.UNKNOWN,
/**
* Image resolution
*/
@ConvertIgnore
var resolution: PhotoResolutionEnum = PhotoResolutionEnum.PR_UNKNOWN,
/**
* Delayed photo shooting time
*/
var delaySeconds: Int = 0,
/**
* The pan/tilt rotation step in degrees
*/
var gimbalRollingStep: Int = 0,
/**
* Pan/tilt rotation angle
*/
var gimbalRollingDirection: GimbalRotateDirectionEnum = GimbalRotateDirectionEnum.CLOCKWISE,
/**
* Enable HDR
*/
var enableHDR: Boolean = false,
/**
* Number of photos per second in Burst mode
*/
var burstCount: Int = 0,
/**
* The duration of taking photos in Timelapse mode, in seconds
*/
var interval: Int = 0,
/**
* The pan/tilt rotation step in degrees
*/
var duration: Int = 0,
/**
* Switch video generation in Timelapse mode
*/
var composeVideo: Boolean = false,
/**
* Video playback frame rate when video generation is enabled in Timelapse mode
*/
var resolutionInfo: VideoResolutionBean? = null,
/**
* How many pictures can be captured at one time in AEB mode
*/
var aebCount: Int = 0,
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyRecordParameters ​

Description: Video recording parameters

Input parameters:

data class RecordParametersBean(
/**
* File Format
*/
var fileFormat: VideoFormatEnum = VideoFormatEnum.UNKNOWN,
/**
* Save audio stream when recording
*/
var enableAudio: Boolean = false,
/**
* Image resolution
*/
var enableSubtitle: Boolean = false,
/**
* Enable automatic photo taking function when recording video
*/
var enablePiv: Boolean = false,
/**
* Automatic photo taking interval for video recording
*/
var interval: Int = 0,
/**
* Slow motion video resolution playback frame rate settings
*/
var resolutionInfo: VideoResolutionBean? = null,
/**
* Maximum storage time of loop recording, in seconds
*/
var maxRecordTime: Int = 0,
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyMeteringPoint ​

Description: Metering point

Input parameters:

data class MeteringPointBean(
/**
* Measuring point X coordinate 0-100
*/
var x: Int = 0,
/**
* Measuring point Y coordinate 0-100
*/
var y : Int = 0,
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyImageStyle ​

Description: Image style

Input parameters:

data class ImageStyleBean(
/**
*Image style
*/
var style: ImageStyleEnum = ImageStyleEnum.UNKNOWN,
/**
* Brightness, -3 - +3
*/
var brightness: Int = 0,
/**
*Contrast, -3 - +3
*/
var contrast: Int = 0,
/**
* Saturation, -3 - +3
*/
var saturation: Int = 0,
/**
* Chroma, -3 - +3
*/
var hue: Int = 0,
/**
* Sharpness, -3 - +3
*/
var sharpness: Int = 0,
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyWhiteBalance ​

Description: White balance parameters

Input parameters:

data class WhiteBalanceBean(
/**
* White balance mode
*/
var mode: WhiteBalanceEnum = WhiteBalanceEnum.UNKNOWN,
/**
* Valid when Mode is set to Custom, range 2000 - 10000, step length 100
*/
var colorTemperature: Int = 0
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyImageColor ​

Description: Image color parameters

Input parameters:

enum class ImageColorEnum(var value: Int) {
/**
* Original image
*/
NONE(0),

/**
* Log style
*/
LOG(1),

/**
* Bright style
*/
VIVID(2),

/**
* Black and white style
*/
BLACK_WHITE(3),

/**
* Artistic style
*/
ART(4),

/**
* Movie Style
*/
FILM(5),

/**
* Beach Style
*/
BEACH(6),

/**
* Dreamy style
*/
DREAM(7),

/**
* Classical style
*/
CLASSIC(8),

/**
* Nostalgic style
*/
NOSTALGIC(9),

/**
*
*/
UNKNOWN(0xFF);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyImageExposure ​

Description: Image exposure parameters

Request parameter: Double

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyImageIso ​

Description: Image sensitivity

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyAELock ​

Description: AELock

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyShutterSpeed ​

Description: Shutter speed

Input parameters:

data class ShutterSpeedBean(
/**
*molecular
*/
var numerator: Int = 0,
/**
* Denominator
*/
var denominator: Int = 0
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyShutterMode ​

Description: Shutter mode

Input parameters:

enum class ShutterModeEnum(var value: Int) {
/**
* automatic
*/
AUTO(0),

/**
* Manual
*/
MANUAL(1),
/**
* Unknown
*/
UNKNOWN(0xFF);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyFocusInfoMode ​

Description: Focus on information mode

Input parameters:

enum class FocusModeEnum(var value: Int) {
/**
* focus mode of AF
*/
AF(1),
/**
* focus mode of MF
*/
MF(2),
UNKNOWN(0xFF);
}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyAFMeterMode ​

Description: Auto focus mode

Input parameters:

enum class AFLensFocusModeEnum(var value: Int) {
/**
* Average focus
*/
AVERAGE(0),

/**
* Center focus
*/
CENTER(1),

/**
* Point focus
*/
SPOT(2),
UNKNOWN(0xFF);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraFocusSpotArea ​

Description: Point focus coordinate group

Input parameters:

data class MeteringPointBean(
/**
* Measuring point X coordinate 0-100
*/
var x: Int = 0,
/**
* Measuring point Y coordinate 0-100
*/
var y : Int = 0,
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraMFObjectDistance ​

Description: Manual zoom Object distance Object distance [0-50]

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraAFAssistFocusEnable ​

Description: AF auxiliary focus enable

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraMFAssistFocusEnable ​

Description: MF auxiliary focus enable

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyApertureSize ​

Description: Aperture size

Request parameter: Double

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyApertureMode ​

Description: Aperture mode

Input parameters:

enum class ApertureModeEnum(var value: Int) {
/**
* automatic
*/
AUTO(0),

/**
* Manual
*/
MANUAL(1),

/**
* Unknown
*/
UNKNOWN(0xFF);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyZoomFactor ​

Description: Digital/thermal imaging zoom information

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyRecordPiv ​

Description: PIV recording status

Input parameters:

data class CameraRecordPivInfoBean(
/**
* Whether to enable
*/
var enable: Boolean = false,
/**
* Interval time
*/
var interval: Int = 0
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyHDR ​

Description: HDR configuration

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyDefog ​

Description: Mist penetration function configuration

Input parameters:

data class DefogBean(
/**
* Whether to enable
*/
var enable: Boolean = false,
/**
* Fog penetration intensity, range [1-10].
*/
var strength: DefogEnum = DefogEnum.DEFOG_CLOSE
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyROI ​

Description: ROI configuration

Input parameters:

data class ROIBean(
/**
*Is it enabled?
*/
var enable: Boolean = false,
/**
*ROI area configuration, supports setting 8 ROI areas at the same time
*/
var roiRegionList: MutableList<RoiRegionBean>? = null,
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyISOMode ​

Description: Sensitivity mode

Input parameters:

enum class ISOModeEnum(var value: Int) {
/**
* automatic
*/
AUTO(0),

/**
* Manual
*/
MANUAL(1),
/**
* Unknown
*/
UNKNOWN(0xFF);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyRecordPacket ​

Description: Video segment packaging size

Input parameters:

data class RecordPacketBean(
/**
*The current storage device file system format
*/
var format: StorageTypeEnum = StorageTypeEnum.UNKNOWN,
/**
*Pre-recording file segment packing size (unit: M). If StorageFormat is SD card Fat32 or EMMC Fat32, it is fixed to 3500M. If it is SD card exFat format, the file segment size can be configured. If it is 0, it means no segmentation. The default segment size is 3500M.
*/
var recordPacket: Int = 0
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyWatermark ​

Description: Watermark

Input parameters:

data class WatermarkBean(
/**
* Time watermark switch, 0: off 1: on
*/
var enableTime: Int = 0,
/**
* Enable custom watermark
*/
var enableCustom: Boolean = false,
/**
* Custom watermark content currently only supports English characters, including uppercase and lowercase A-Za-z, numbers, and punctuation marks
*/
var custom: String? = null,
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyThermalColor ​

Description: Thermal imaging pseudo-color information

Input parameters:

enum class ThermalColorEnum(var value: Int) {
/**
* White hot
*/
WHITE_HOT(0),

/**
* Hot and cold
*/
BLACK_HOT(1),

/**
* rainbow
*/
RAINBOW(2),

/**
* Enhanced Rainbow
*/
RAIN_HC(3),

/**
* Iron Red
*/
IRON_BOW(4),

/**
* Lava
*/
LAVA(5),

/**
* Aurora
*/
ARCTIC(6),

/**
* Burning
*/
GLOW_BOW(7),

/**
* Gradient
*/
GRADED_FIRE(8),

/**
* Thermal detection
*/
HOTTEST(9),



/**-----GAOD Infrared-----**/
/**
* White hot
*/
GD_WHITE_HOT(30),

/**
* Black Hot
*/
GD_HOT_BLACK(31),

/**
* Rainbow 1
*/
GD_RAINBOW_1(32),

/**
* Rainbow 2
*/
GD_RAINBOW_2(33),

/**
* Iron Red
*/
GD_IRON_BOW(34),

/**
* Lava
*/
GD_LAVA(35),

/**
* Arctic
*/
GD_ARCTIC(36),

/**
* Hot iron
*/
GD_IRON_HOT(37),

/**
* Medical
*/
GD_MEDICAL(38),

/**
* Tracing
*/
GD_RED(39),

/**-----Gaode infrared end-----**/

UNKNOWN(0xFF);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyThermalMode ​

Description: Thermal imaging mode

Input parameters:

data class ThermalImageBean(
/**
* Image Mode
*/
var imageMode: ThermalImageModeEnum = ThermalImageModeEnum.UNKNOWN,
/**
* Contrast 0~255
*/
var contrast: Int = 0,
/**
* Brightness 0~511
*/
var lum: Int = 0,
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyThermalEnhance ​

Description: Thermal imaging image enhancement

Input parameters:

data class ThermalEnhanceBean(
/**
* Enable
*/
var enable: Boolean = false,
/**
* Intensity 1~8
*/
var strength: Int = 0,
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyThermalDenoising ​

Description: Thermal imaging image denoising

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyThermalGain ​

Description: Thermal imaging image gain

Input parameters:

enum class ThermalGainEnum(var value: Int) {
/**
* High gain
*/
HIGH(0),

/**
* Low gain
*/
LOW(1),

/**
* automatic
*/
AUTO(2),
UNKNOWN(0xFF);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyThermalIsotherm ​

Description: Thermal imaging isotherm

Input parameters:

data class ThermalIsothermBean(
/**
* model
*/
var mode: IsothermEnum = IsothermEnum.UNKNOWN,
/**
*High threshold in custom mode
*/
var hotThred: Int = 0,
/**
* Low threshold in custom mode
*/
var coldThred: Int = 0
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyThermalTemperature ​

Functional Description: Thermal imaging temperature attributes

Input parameters:

data class ThermalTempAttrBean(
/**
* Temperature measurement mode
*/
var tempMode: TemperatureModeEnum = TemperatureModeEnum.UNKNOWN,
/**
* Point to the temperature measurement x coordinate, calculated in proportion to the width of the yuv image
*/
var touchX: Int = 0,
/**
* Point temperature measurement Y coordinate
*/
var touchY: Int = 0,
/**
* Regional temperature measurement x coordinate
*/
var regionX: Int = 0,
/**
* Regional temperature measurement Y coordinate
*/
var regionY: Int = 0,
/**
* Area temperature measurement width
*/
var regionW: Int = 0,
/**
* Regional temperature measurement is high
*/
var regionH: Int = 0,
/**
* Limit the x coordinate of the temperature measurement small screen
*/
var limitTempX: Int = 0,
/**
* Limit the y coordinate of the temperature measurement small screen
*/
var limitTempY: Int = 0,
/**
* Limit the width of the temperature measurement screen
*/
var limitTempW: Int = 0,
/**
* Limit the temperature measurement small screen height
*/
var limitTempH: Int = 0,
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyThermalTemperatureAlarm ​

Description: Thermal imaging temperature alarm attribute

Input parameters:

data class ThermalTempAlarmBean(
/**
* Alarm Enable
*/
var enable: Boolean = false,
/**
* Alarm when the temperature exceeds the threshold, unit: Celsius*10
*/
var hotThred: Int = 0,
/**
* If the temperature is lower than the threshold, an alarm will be triggered, in degrees Celsius*10
*/
var coldThred: Int = 0,
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyThermalRadiance ​

Description: Thermal imaging emissivity

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyTakePhotoResolution ​

Description: Camera photo resolution information

Input parameters:

enum class PhotoResolutionEnum(val width: Int, val height: Int, val tag: String,val prId:String) {
PR_8000_6000(8000, 6000, "48M","8000x6000"),
PR_6912_5184(6912, 5184, "36M","6192x5184"),
PR_4000_3000(4000, 3000, "12M","4000x3000"),
PR_1920_1200(1920, 1200, "1200P","1920x1200"),
PR_1920_1080(1920, 1080, "1080","1920x1080"),
PR_4096_3072(4096, 3072, "4K", "4096x3072"),
PR_8192_6144(8192, 6144, "50M","8192x6144"),
PR_640_512(640, 512, "640*512","640x512"),
PR_3840_2160(3840, 2160, "4K","3840x2160"),
PR_5472_3648(5472, 3648, "6K","5472x3648"),
PR_5472_3076(5472, 3076, "6K","5472x3076"),
PR_800_600(800, 600, "800*600","800x600"),
PR_UNKNOWN(0, 0, "unknown","unknown");
}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyRecordResolution ​

Description: Camera video resolution information

Input parameters:

data class VideoResolutionBean(
/**
* Resolution enumeration
*/
var videoResolutionEnum: VideoResolutionEnum = VideoResolutionEnum.VR_UNKNOWN,
/**
* Frame rate
*/
var fps: Int = 0,
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyPhotoFileFormat ​

Description: Camera photo picture type

Input parameters:

enum class PhotoFormatEnum(val value: Int, val tag: String) {
/**
* JPG format of image captured
*/
JPG(0,"JPG"),

/**
* DNG format of image captured
*/
DNG(1,"DNG"),

/**
*JPGDNG format of image captured
*/
JPGDNG(2,"JPG+DNG"),

/**
* RJPEG format of image captured
*/
RJPEG(3,"RJPEG"),

/**
* RJPEGTIFF format of image captured
*/
RJPEGTIFF(4,"RJPEGTIFF"),
UNKNOWN(0xFF,"UNKNOWN");

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyTakePhotoAebCount ​

Description: Camera AEB photo count

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyTakePhotoBustCount ​

Description: Camera Bus Photo Count

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyTakePhotoTimeLapse ​

Description: Camera Timelapse photo interval

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyRecordFileFormat ​

Description: Video file type

Input parameters:

enum class VideoFormatEnum(var value: Int) {
/**
* video format defines MOV
*/
MOV(0),
/**
* video format defines MP4
*/
MP4(1),
/**
* video format defines TIFF
*/
TIFF(2),
UNKNOWN(0xFF);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyRecordFileEncodeFormat ​

Description: Video file encoding type

Input parameters:

enum class VideoCompressStandardEnum(var value: Int) {
/**
* video compress standard H264
*/
H264(0),
/**
* video compress standard H265
*/
H265(1),
UNKNOWN(0xFF);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraSubtitleKey ​

Description: Video subtitle switch

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyGetBaseParamMsg ​

Description: Get basic camera parameters

Input parameters:

data class CameraBaseParamBean(
/**
* Storage device type
*/
var storageType: StorageTypeEnum = StorageTypeEnum.UNKNOWN,
/**
* SD card status
*/
var sdStatus: CardStatusBean? = null,
/**
* Flash card status
*/
var mmcStatus: CardStatusBean? = null,
/**
* Watermark
*/
var waterMark: WatermarkBean? = null,
/**
* HDR status
*/
var hdrStatus: Boolean = false,
/**
* Image Type
*/
var picType: PhotoFormatEnum = PhotoFormatEnum.UNKNOWN,
@ConvertIgnore
/**
* Image resolution
*/
var resolution: PhotoResolutionEnum = PhotoResolutionEnum.PR_UNKNOWN,
/**
* Number of photos per second in Burst mode
*/
var burstCount: Int = 0,
/**
* The duration of taking photos in Timelapse mode, in seconds
*/
var interval: Int = 0,
/**
* How many pictures can be captured at one time in AEB mode
*/
var aebCount: Int = 0,
/**
* Piv status
*/
var pivStatus: CameraRecordPivInfoBean? = null,
/**
* File Format
*/
var fileFormat: VideoFormatEnum = VideoFormatEnum.UNKNOWN,
/**
* Subtitle switch
*/
var enableSubtitle: Boolean = false,
/**
* Video resolution
*/
var resolutionInfo: VideoResolutionBean? = null,
/**
* Video encoding type
*/
var encoding: VideoCompressStandardEnum = VideoCompressStandardEnum.UNKNOWN,
/**
* Graphics style
*/
var imageStyleInfo: ImageStyleBean? = null,
/**
* AE Lock
*/
var aeLock: Boolean = false,
/**
* Fog penetration information
*/
var dehazeInfo: DefogBean? = null,
/**
* Video format
*/
var videoStandard: VideoStandardEnum = VideoStandardEnum.UNKNOWN,
/**
* Anti-flicker
*/
var antiFlicker: ResistanceBlinkEnum = ResistanceBlinkEnum.UNKNOWN,
/**
* Camera focus information
*/
var focusInfo: FocusInfoBean? = null,
/**
* Thermal imaging pseudo-color information
*/
var color: ThermalColorEnum = ThermalColorEnum.UNKNOWN,
/**
* Thermal imaging mode
*/
var irImageModeInfo: ThermalImageBean? = null,
/**
* Image enhancement
*/
var irEnhanceInfo: ThermalEnhanceBean? = null,
/**
* Image denoising
*/
var irNr: Boolean = false,
/**
* Image gain
*/
var gain: ThermalGainEnum = ThermalGainEnum.UNKNOWN,
/**
* Isotherm
*/
var irIsoThermInfo: ThermalIsothermBean? = null,
/**
* Thermal imaging emissivity
*/
var irTempEmit: Int = 0
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraAntiflicker ​

Description: Anti-flicker mode

Input parameters:

enum class AntiflickerEnum(val value: Int) {
/**
* automatic
*/
AUTO(0),

/**
* 50hz
*/
FIFTY_HZ(1),

/**
* 60hz
*/
SIXTY_HZ(2),

/**
* closure
*/
CLOSE(3),

/**
* Unknown
*/
UNKNOWN(0xFF);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraTurnOffArmLight ​

Description: Automatically turn off the arm light when taking photos or recording videos

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraLinkageZoom ​

Description: Linked zoom switch

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeySmoothZoom ​

Description: Silky zoom

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraVisualTransfer ​

Description: Visual image transmission

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraWorkMode ​

Description: Camera working mode

Input parameters:

enum class CameraWorkModeEnum(var value: Int) {
/**
* Video
*/
RECORD(0),

/**
* Photograph
*/
PHOTO(1),

RECORD_PHOTO(2), // Take a photo or video

UNKNOWN(0xFF);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraWorkModeTakePhoto ​

Description: Camera photo mode

Input parameters:

enum class TakePhotoModeEnum(var value: Int) {

UNKNOWN(0xFF),

/**
* Single shot
*/
SINGLE(0),

/**
* AEB
*/
AEB(3),

/**
* Night view
*/
HYPERSEN(4),

/**
* Panoramic view
*/
PANORAMA(5),

/**
* Ultra-HD matrix
*/
MATRIX(6),

/**
* HDR HDR mode
*/
HDR(7),

/**
* LinkedZoom
*/
LinkedZoom(8),

/**
* NightShot night scene mode
*/
NightShot(9),

/**
* Fusion hot fusion mode
*/
Fusion(10);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraWorkModeVideo ​

Description: Camera video sub-mode

Input parameters:

enum class RecordModeEnum(var value: Int) {
UNKNOWN(0xFF),

/**
* standard
*/
STANDARD(0),

/**
* Slow Motion
*/
SLOW_MOTION(1),

/**
* Super sensitive
*/
ULTRA_PIXEL(2),

/**
* HDR To get the modes supported by HDR
*/
HDR(3),

/**
* LinkedZoom To get the modes supported by LinkedZoom
*/
LinkedZoom(4),

/**
* Super Night Vision
*/
SuperNightVideo(5);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraImageStyleType ​

Description: Image style type

Input parameters:

enum class ImageStyleEnum(var value: Int) {
/**
* standard
*/
STANDARD(0),

/**
* Custom
*/
CUSTOM(1),

/**
* Scenery
*/
LANDSCAPE(2),

/**
* Neutral
*/
SOFT(3),

/**
* Fair skin
*/
FAIR(4),

/**
* Contrast color
*/
CONTRAST(5),

/**
* Japanese
*/
JAPAN(6),

/**
* Tender
*/
MOISTURE(7),

/**
* Fresh
*/
FRESH(8),

/**
* Black Gold
*/
GOLDVIBES(9),

/**
* Black Gold 03
*/
GOLDVIBES03(10),

/**
* Black Gold 04
*/
GOLDVIBES04(11),

/**
* Black Gold 05
*/
GOLDVIBES05(12),

/**
* Black and white
*/
BW(13),

/**
* Nostalgia
*/
NOSTALGIC(14),

/**
* Natural Portrait J
*/
NATUREJ(15),

/**
* Hong Kong style movie 01
*/
HKMOVIE01(16),

/**
* Ancient Style 01
*/
ANTIAUITY01(17),

/**
* Bright
*/
BRIGHT(18),

/**
* Classic LUT
*/
CLASSICLUT(19),
UNKNOWN(0xFF);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraImageStyleBrightness ​

Description: Image style brightness

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraImageStyleContrast ​

Description: Image style contrast

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraImageStyleSaturation ​

Description: Image style saturation

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraImageStyleHue ​

Description: Image style chromaticity

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraImageStyleSharpness ​

Description: Image style sharpness

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraWhiteBalanceType ​

Description: White balance parameter mode

Input parameters:

enum class WhiteBalanceEnum(var value: Int) {
/**
* automatic
*/
AUTO(0),

/**
* Daylight
*/
SUNNY(1),

/**
* cloudy day
*/
CLOUDY(2),

/**
* Incandescent lamp
*/
INCANDESCENT(3),

/**
* Fluorescent lamp
*/
FLUORESCENT(4),

/**
* Custom color temperature, valid when Mode is set to Custom, range 2000 - 10000, step length is 100
*/
CUSTOM(5),
UNKNOWN(0xFF);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraWhiteBalanceColorTemp ​

Description: White balance parameter color temperature

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraPivEnable ​

Description: Is PIV recording status turned on?

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraPivInterval ​

Description: PIV recording status interval

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraDehazeEnable ​

Description: Whether the fog penetration function is enabled

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraDehazeStrength ​

Description: Mist penetration function configuration mist penetration intensity

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraIrImageModeType ​

Description: Thermal imaging image mode type

Input parameters:

enum class ThermalImageModeEnum(var value: Int) {
/**
* Manual (manual adjustment of contrast and brightness)
*/
MANUAL(0),

/**
* Automatic 0
*/
AUTO1(1),

/**
* Automatic 1
*/
AUTO2(2),
UNKNOWN(0xFF);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraIrImageModeContrast ​

Description: Thermal imaging image mode contrast

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraIrImageModeLum ​

Description: Thermal imaging image mode brightness

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraIrEnhanceEnable ​

Description: Thermal imaging image enhancement enablement

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraIrEnhanceStrength ​

Description: Thermal imaging image enhancement intensity

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraIrTempAttrType ​

Description: Thermal imaging temperature attribute temperature measurement mode

Input parameters:

enum class TemperatureModeEnum(var value: Int) {
/**
* none
*/
NONE(0),

/**
* Central temperature measurement
*/
CENTER(1),

/**
* Thermal measurement
*/
HOT(2),

/**
* Cold temperature measurement
*/
COLD(3),

/**
* Click the location to measure temperature
*/
TOUCH(4),

/**
* Regional temperature measurement
*/
REGION(5),

/**
* Tracking temperature measurement
*/
TRACK(6),

/**
* User 1 temperature measurement
*/
USER1(7),

/**
* User 2 temperature measurement
*/
USER2(8),
UNKNOWN(0xFF);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraIrTempAttrTouch ​

Description: Thermal imaging temperature attribute points to temperature measurement coordinates

Input parameters:

data class ParameterPointBean(
/**
* Point temperature measurement x coordinate; calculated in yuv image width ratio [0..100]
*/
var x: Int = 0,
/**
* Point temperature measurement Y coordinate [0..100]
*/
var y : Int = 0,
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraIrTempAttrRegion ​

Description: Thermal imaging temperature attribute area temperature measurement

Input parameters:

data class ParameterRectBean(
/**
* x coordinate [0..100]
*/
var x: Int = 0,
/**
*Y coordinate [0..100]
*/
var y : Int = 0,
/**
* width [0..100]
*/
var w: Int = 0,
/**
* High [0..100]
*/
var h: Int = 0,
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraIrTempAttrLimitTemp ​

Description: Thermal imaging temperature attribute limit temperature measurement

Input parameters:

data class ParameterRectBean(
/**
* x coordinate [0..100]
*/
var x: Int = 0,
/**
*Y coordinate [0..100]
*/
var y : Int = 0,
/**
* width [0..100]
*/
var w: Int = 0,
/**
* High [0..100]
*/
var h: Int = 0,
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraIrTempAlarmEnable ​

Description: Thermal imaging temperature alarm attribute enable

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraIrTempAlarmHotthred ​

Description: Thermal imaging temperature alarm attribute high temperature threshold

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraIrTempAlarmColdthred ​

Description: Thermal imaging temperature alarm attribute low temperature threshold

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraElectronicAntiShaking ​

Description: Electronic image stabilization switch

Input parameters:

enum class ElectronicAntiShakingEnum(var value:Int) {
CLOSE(0),
OPEN(1),
SELF(2);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraSaveMapTaskName ​

Description: Task folder name

Request parameter: String

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraSaveMapUserDirName ​

Description: User-defined folder name

Request parameter: String

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraTypeXoomFixedFactor ​

Description: Fast zoom

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraTypeEncryptEnable ​

Description: Camera data encryption switch

Request parameter: Boolean

Output parameter: None

Type: Get

KeyCameraDebugEvent ​

Description: Camera custom debugging

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraRecordEnable ​

Description: Visual camera recording switch

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraRecordFps ​

Description: Visual camera recording frame rate

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraRecordDuration ​

Description: Video recording duration of visual camera

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraRecordNumber ​

Description: Number of visual camera videos saved

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraCapabilityVersion ​

Description: Get the camera capability set version number

Input parameters:

data class CameraCapabilityBean(
/**
* Camera capability set version
*/
var version: String,
/**
* File download address
*/
var fileDownloadPath: String
)

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraEnable ​

Description: Camera switch false turns off, true turns on

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraWatermarkGpsEnable ​

Description: Camera watermark GPS switch false off, true on

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraWaterMarkSnEnable ​

Description: Camera watermark SN switch false off, true on

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraVisualEnable ​

Description: Camera vision switch false off, true on

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraUltraPixelEnable ​

Description: Photo and video ultra-sensitive switch false off, true on

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraTransferPayLoadType ​

Description: The encoding type of the image transmission video needs to be distinguished from the encoding type of the video recording

Input parameters:

enum class VideoCompressStandardEnum(var value: Int) {
/**
* video compress standard H264
*/
H264(0),
/**
* video compress standard H265
*/
H265(1),
UNKNOWN(0xFF);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraReboot ​

Description: Restart the camera

Input parameters: None

Output parameter: None

Type: Action

KeyFormatSDCard ​

Description: SD card format

Input parameters: None

Output parameter: None

Type: Action

KeyFormatMMC ​

Description: MMC onboard flash memory format

Input parameters: None

Output parameter: None

Type: Action

KeyCameraReset ​

Description: Restore factory settings

Input parameters: None

Output parameter: None

Type: Action

KeyStartTakePhoto ​

Description: Start taking photos

Input parameters: None

Output parameter: None

Type: Action

KeyStopTakePhoto ​

Description: Stop taking photos

Input parameters: None

Output parameter: None

Type: Action

KeyStartRecord ​

Description: Start recording

Input parameters: None

Output parameter: None

Type: Action

KeyStopRecord ​

Description: Stop recording

Input parameters: None

Output parameter: None

Type: Action

KeyCameraFfc ​

Description: FFC shutter

Input parameters: None

Output parameter: None

Type: Action

KeyCameraVideoPictureStorageTypeGet ​

Description: Get video/photo storage type

Input parameters:

data class CameraVideoPhotoStorageBean(
/**
* type
*/
var mode: CameraWorkModeEnum = CameraWorkModeEnum.UNKNOWN,
/**
* Lens ID collection
*/
var ids: MutableList<Int> = mutableListOf(),
)

Output parameter:

data class CameraVideoPhotoStorageListBean(
/**
* type
*/
var mode: CameraWorkModeEnum = CameraWorkModeEnum.UNKNOWN,
/**
* Storage information collection
*/
var ids: MutableList<CameraVideoPhotoStorageInfoBean> = mutableListOf(),
)

Type: Action

KeyCameraVideoPictureStorageTypeSet ​

Description: Video/photo storage type settings

Input parameters:

data class CameraVideoPhotoStorageListBean(
/**
* type
*/
var mode: CameraWorkModeEnum = CameraWorkModeEnum.UNKNOWN,
/**
* Storage information collection
*/
var ids: MutableList<CameraVideoPhotoStorageInfoBean> = mutableListOf(),
)

Output parameter: None

Type: Action

KeyCameraTypeEncryptionKey ​

Description: Camera data encryption settings

Input parameters:

data class CameraEncryptSetBean(
/**
* Encryption setting type
*/
var mode: CameraEncryptEnum = CameraEncryptEnum.CLOSE,
/**
* password
*/
var key: String = "",
)

Output parameter:

data class CameraDeEncryptRspBean(

var keyContinuousWrongTimes :Int=0
)

Type: Action

KeyCameraPasswordWrongTimes ​

Description: Camera data encryption settings

Request parameter: Int

Output parameter: None

Type: Get

KeyCameraIrcutSwitch ​

Description: Zoom IRCut switch

Input parameters:

enum class IrcutSwitchEnum(val value: Int) {
/**
* automatic
*/
AUTO(2),

/**
* Turn off IRCut, image color<
*/
CLOSE(0),

/**
* Open IRCut, the image is black and white
*/
OPEN(1);
}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraIrNightFusionEnable ​

Description: Infrared night vision fusion switch

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraMechanicalShutterEnable ​

Description: Mechanical shutter switch

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraMissionRecordEnable ​

Description: Task recording switch

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraMissionRecordPictureStorageGet ​

Description: Task recording photo storage switch query

KeyCameraMissionRecordPictureStorageSet ​

Description: Task recording photo storage switch setting

Input parameters:

data class CameraVideoPhotoStorageListBean(
/**
* type
*/
var mode: CameraWorkModeEnum = CameraWorkModeEnum.UNKNOWN,
/**
* Storage information collection
*/
var ids: MutableList<CameraVideoPhotoStorageInfoBean> = mutableListOf(),
)

Output parameter: None

Type: Action

KeyCameraConcernedLensSet ​

Description: Current interactive focus lens information settings

Input parameters:

data class CameraConcernedLensBean(
val gimbalType: String, // gimbal type
val lensID: Int // lens id
)

Output parameter: None

Type: Action

KeyCameraImageXmpType ​

Description: XMP data type when the camera takes a photo: CameraImageXmpTypeEnum AUTEL_PIX4D(0), DJI(1)

Input parameters:

enum class CameraImageXmpTypeEnum(val value: Int) {
AUTEL_PIX4D(0), // 0: Autel/Pix4d
DJI(1) // 1: DJI
}

Output parameter: None

Type: Get

KeyCameraLensStorage ​

Description: Camera lens storage select CAMERA_LENS_STORAGE

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraStatus ​

Description: Camera status message reporting

Input parameters: None

Output parameter:

data class CameraStatusBean(
/**
* Device Type
*/
var deviceType: String? = null,
/**
* System status
*/
var systemStatus: SystemStatusEnum = SystemStatusEnum.UNKNOWN,
/**
* Current mode
*/
var currentMode: CameraWorkModeEnum = CameraWorkModeEnum.UNKNOWN,
/**
* UI mode
*/
var pattern: PatternModeEnum = PatternModeEnum.UNKNOWN,
/**
* Current display mode
*/
var displayMode: DisplayModeEnum = DisplayModeEnum.UNKNOWN,
/**
* Video recording sub-mode
*/
var recordMode: RecordModeEnum = RecordModeEnum.UNKNOWN,
/**
* Photo sub-mode
*/
var photoTakingMode: TakePhotoModeEnum = TakePhotoModeEnum.UNKNOWN,
/**
* Storage device type
*/
var storageType: StorageTypeEnum = StorageTypeEnum.UNKNOWN,

/**
* Lens information
*/
var cameraInfoList: MutableList<CameraInfoBean> = mutableListOf(),

/**
* Minimum photo-taking interval, in milliseconds
*/
var photoIntervalMin: Int = 0,
)

Type: Listen

KeyProfessionalParamInfo ​

Description: Professional parameter information reporting

Input parameters: None

Output parameter:

data class ProfessionalParamInfoBean(
/**
* camera ID
*/
var cameraID: Int = 0,
/**
* ISO Mode
*/
var isoMode: ISOModeEnum = ISOModeEnum.AUTO,
/**
* Aperture Mode
*/
var apertureMode: ApertureModeEnum = ApertureModeEnum.AUTO,
/**
* Shutter mode
*/
var shutterMode: ShutterModeEnum = ShutterModeEnum.AUTO,
/**
* ISO value
*/
var isoValue: Int = 0,
/**
* Aperture value
*/
var apertureValue: Double = 0.0,
/**
Shutter speed
*/
var shutterSpeed: ShutterSpeedBean? = null,
/**
* Exposure value
*/
var exposureValue: Double = 0.0,
/**
* White balance mode
*/
var whiteMode: WhiteBalanceEnum = WhiteBalanceEnum.UNKNOWN,
/**
* White balance color temperature value
*/
var colorTemperature: Int = 0,
/**
* Actual digital zoom value * 100
*/
var zoomValue: Int = 0,
)

Type: Listen

KeyPhotoFileInfo ​

Description: Report photo file information

Input parameters: None

Output parameter:

data class PhotoFileInfoBean constructor(
/**
* Current mode
*/
var currentMode: CameraWorkModeEnum = CameraWorkModeEnum.UNKNOWN,
/**
* File path
*/
var filePath: String? = null,
/**
* Thumbnail path
*/
var thumbnailPath: String? = null,
/**
* Photo file modification time
*/
var fileModifyTime: Long = 0,
/**
* Photo size
*/
var fileSize: Long = 0,
/**
* Photo format
*/
var fileFormat: Int = 0,
/**
* Resolution of the photo
*/
var photoResolution: PhotoResolutionBean? = null
)

Type: Set, Listen

KeyTakePhotoStatus ​

Description: Reporting the photo taking status

Input parameters: None

Output parameter:

data class TakePhotoStatusBean(
/**
*Current submode
*/
var currentMode: TakePhotoModeEnum = TakePhotoModeEnum.UNKNOWN,
/**
*Photo status
*/
var state: TakePhotoStatusEnum = TakePhotoStatusEnum.UNKNOWN,
)

Type: Listen

KeyRecordStatus ​

Description: Recording status report

Input parameters: None

Output parameter:

data class RecordStatusBean(
/**
*Current mode is undetermined
*/
var currentMode: CameraWorkModeEnum = CameraWorkModeEnum.UNKNOWN,
/**
*Recording status
*/
var state: RecordStatusEnum = RecordStatusEnum.UNKNOWN,
/**
* The current video recording time, in seconds
*/
var currentRecordTime: Int = 0
)

Type: Listen

KeyRecordFileInfo ​

Description: Report video file information

Input parameters: None

Output parameter:

data class RecordFileInfoBean(
/**
* Current mode
*/
var currentMode: RecordStatusEnum = RecordStatusEnum.UNKNOWN,
/**
* state
*/
var state: RecordVideoFileEnum = RecordVideoFileEnum.UNKNOWN,
/**
* File path
*/
var filePath: String? = null,
/**
* Thumbnail path
*/
var thumbnailPath: String? = null,
/**
* Video file modification time
*/
var fileModifyTime: Long = 0L,
/**
* File size
*/
var fileSize: Long = 0L,
/**
* Photo and video formats
*/
var fileFormat: Int = 0,
/**
* Video duration
*/
var videoDuration: Int = 0,
/**
* Resolution of the video file
*/
var videoResolution: VideoResolutionBean? = null,
/**
* Compression standard of video files, see CAMERA_VIDEO_COMPRESSION_STANDARD_TYPE
*/
var videoCompressionStandard: VideoCompressStandardEnum = VideoCompressStandardEnum.UNKNOWN,
)

Type: Listen

KeySDCardStatus ​

Description: SD card status report

Input parameters: None

Output parameter:

data class CardStatusBean(
/**
* SD card status
*/
var storageStatus: CardStatusEnum = CardStatusEnum.UNKNOWN,
/**
* Total SD card capacity in MB
*/
var totalSpace: Long = 0L,
/**
* SD card remaining capacity, in MB
*/
var freeSpace: Long = 0L,
/**
* Remaining recording time in seconds
*/
var remainRecordTime: Long = 0L,
/**
* Number of photos remaining
*/
var remainCaptureNum: Long = 0L,
)

Type: Listen

KeyMMCStatusInfo ​

Description: MMC status reporting

Input parameters: None

Output parameter:

data class CardStatusBean(
/**
* SD card status
*/
var storageStatus: CardStatusEnum = CardStatusEnum.UNKNOWN,
/**
* Total SD card capacity in MB
*/
var totalSpace: Long = 0L,
/**
* SD card remaining capacity, in MB
*/
var freeSpace: Long = 0L,
/**
* Remaining recording time in seconds
*/
var remainRecordTime: Long = 0L,
/**
* Number of photos remaining
*/
var remainCaptureNum: Long = 0L,
)

Type: Listen

KeyResetCameraState ​

Description: Reset camera status reporting

Input parameters: None

Output parameter: Boolean

Type: Listen

KeyAeAfStatusChange ​

Description: AE/AF status change

Input parameters: None

Output parameter:

data class CameraAFAEStatusBean(
/**
* AE status
*/
var aeStatus: CameraAfAeEnum = CameraAfAeEnum.UNKNOWN,
/**
* AF status
*/
var afStatus: CameraAfAeEnum = CameraAfAeEnum.UNKNOWN,
)

Type: Listen

KeyTempAlarm ​

Description: Temperature alarm event

Input parameters: None

Output parameter:

data class TempAlarmBean(
/**
* 0 high temperature, 1 low temperature
*/
var status: TempEnum = TempEnum.HOT,
/**
* High temperature alarm point temperature, unit: Celsius*10
*/
var hotTemp: Int = 0,
/**
* High temperature alarm X coordinate, in proportion to image width
*/
var hotX: Int = 0,
/**
* High temperature alarm Y coordinate, in image height ratio
*/
var hotY: Int = 0,
/**
* Low temperature alarm point temperature, unit: Celsius*10.
*/
var coldTemp: Int = 0,
/**
* Low temperature alarm X coordinate, in proportion to image width
*/
var coldX: Int = 0,
/**
* Low temperature alarm Y coordinate, in image height ratio
*/
var coldY: Int = 0,
)

Type: Listen

KeyMotionDelayShotStatus ​

Description: Mobile time-lapse photography status

Input parameters: None

Output parameter:

data class MotionDelayShotBean(

/**
* state
*/
var status: MotionDelayShootEnum = MotionDelayShootEnum.UNKNOWN,
/**
* The duration of taking photos, in seconds
*/
var photoTime: Int = 0,
/**
* The total time required to take photos, in seconds
*/
var totalPhotoTime: Int = 0,
/**
* Number of photos taken
*/
var photoNum: Int = 0,
/**
* Total number of photos required
*/
var totalPhotoNum: Int = 0,
)

Type: Listen

KeyPhotoExposure ​

Description: Camera exposure status

Input parameters: None

Output parameter:

enum class ExposureEnum(var value: Int) {
/**
* Overexposure
*/
OVEREXPOSURE(0),

/**
* Underexposure
*/
UNDEREXPOSURE(1);

}

Type: Listen

KeyMissionRecordWaypoint ​

Description: Task recording waypoint information reporting

Input parameters: None

Output parameter:

data class MissionRecordWaypointBean(
/**
* Photo path
*/
var filePath: String? = null,
/**
* Longitude
*/
var latitude : Double = 0.0,
/**
* Latitude
*/
var longitude: Double = 0.0,
/**
* Absolute altitude read from the flight controller
*/
var altitude: Double = 0.0,
/**
* The nose direction read from the flight controller
*/
var heading: Double = 0.0,
/**
* Gimbal Pitch angle read from the flight controller
*/
var cameraPitch: Double = 0.0,
/**
* Gimbal Yaw angle read from the flight controller
*/
var cameraYaw: Double = 0.0,
/**
* Camera zoom ratio
*/
var zoom: Int = 0,
/**
* Gimbal Roll angle read from the flight controller
*/
var cameraRoll: Double = 0.0,
/**
* Relative altitude read from the flight controller
*/
var height: Double = 0.0,
/**
* Camera id -1 means invalid
*/
var cameraId: Int = -1

)

Type: Listen

KeyAFState ​

Description: AF camera focus status reporting

Input parameters: None

Output parameter:

enum class AFStateEnum(val value: Int) {
/**
* Start focusing
*/
FOCUS_START(0),

/**
* In focus
*/
FOCUSING(1),

/**
* Focusing ends
*/
FOCUS_COMPLETE(2);

}

Type: Listen

KeyCameraModeSwitch ​

Description: Camera mode switching report

Input parameters: None

Output parameter:

data class CameraModeSwitchBean(
/**
* Current mode
*/
var currentMode: CameraWorkModeEnum = CameraWorkModeEnum.UNKNOWN,
/**
* Video recording sub-mode
*/
var recordMode: Int = 0,
/**
* Photo sub-mode
*/
var photoTakingMode: TakePhotoModeEnum = TakePhotoModeEnum.UNKNOWN,
)

Type: Listen

KeyDisplayModeSwitch ​

Description: Display mode switching report

Input parameters: None

Output parameter:

enum class DisplayModeEnum(var value: Int) {
/**
* Visible light
*/
VISIBLE(0),

/**
* Picture in Picture
*/
PICTURE(1),

/**
* Infrared
*/
INFRARED(2),

/**
* Fusion
*/
OVERLAP(3),
UNKNOWN(0xFF);

}

Type: Listen

KeyInfraredCameraTempInfo ​

Description: Infrared camera temperature information reporting

Input parameters: None

Output parameter:

data class InfraredCameraTempInfoBean(
/**
* Average temperature, in degrees Celsius*10
*/
var averageTemp: Int = 0,
/**
* Center temperature, in degrees Celsius*10
*/
var centerTemp: Int = 0,
/**
* Hot spot temperature, unit: Celsius*10
*/
var hotTemp: Int = 0,
/**
* Cold spot temperature, in degrees Celsius*10
*/
var coldTemp: Int = 0,
/**
* Point temperature, unit Celsius*10
*/
var touchTemp: Int = 0,
/**
* The hotspot X coordinate, in proportion to the image width
*/
var hotX: Int = 0,
/**
* Hotspot Y coordinate, in proportion to image height
*/
var hotY: Int = 0,
/**
* X coordinate of the cold spot, in proportion to the image width
*/
var coldX: Int = 0,
/**
* X coordinate of the cold spot, in proportion to the image height
*/
var coldY: Int = 0,
/**
* True value * 100
*/
var zoomValue: Int = 0,
/**
* cameraId
*/
var cameraId: Int = 0,
)

Type: Listen

KeyStorageStatusInfo ​

Description: Report storage status information

Input parameters: None

Output parameter:

data class StorageStatusInfoBean(
/**
* Storage device type
*/
var storageType: StorageTypeEnum = StorageTypeEnum.UNKNOWN,
/**
* SD card status
*/
var sDCardStatus: CardStatusEnum = CardStatusEnum.UNKNOWN,
/**
* Total capacity of SD card in KB
*/
var totalSpace: Long = 3,
/**
* SD card remaining capacity, in KB
*/
var freeSpace: Long = 4,
/**
* eMMC status
*/
var mMCStatus: CardStatusEnum = CardStatusEnum.UNKNOWN,
/**
* Total eMMC capacity in KB
*/
var mMCTotalSpace: Long = 6,
/**
* The remaining capacity of the eMMC card in KB
*/
var mMCFreeSpace: Long = 7,
/**
* The remaining recording time of the currently selected storage device, in seconds
*/
var remainRecordTime: Long = 8,
/**
* The number of photos remaining in the currently selected storage device
*/
var remainCaptureNum: Long = 9,
)

Type: Listen

KeyLocationMeterInfo ​

Description: Spot metering report

Input parameters: None

Output parameter:

data class MeteringPointBean(
/**
* Measuring point X coordinate 0-100
*/
var x: Int = 0,
/**
* Measuring point Y coordinate 0-100
*/
var y : Int = 0,
)

Type: Listen

KeyWhiteBalanceNtfy ​

Description: White balance parameter reporting

Input parameters: None

Output parameter:

data class WhiteBalanceBean(
/**
* White balance mode
*/
var mode: WhiteBalanceEnum = WhiteBalanceEnum.UNKNOWN,
/**
* Valid when Mode is set to Custom, range 2000 - 10000, step length 100
*/
var colorTemperature: Int = 0
)

Type: Listen

KeyAeLockNtfy ​

Description: AELock information reporting

Input parameters: None

Output parameter: Boolean

Type: Listen

KeyFocusNtfy ​

Description: Focus on information reporting

Input parameters: None

Output parameter:

data class FocusInfoBean(
/**
* Focus Mode
*/
var mode: FocusModeEnum = FocusModeEnum.UNKNOWN,
/**
* Auto focus mode
*/
var meterMode: AFLensFocusModeEnum = AFLensFocusModeEnum.UNKNOWN,
/**
* Focus point coordinates, X range (0 - 100)
*/
var spotAreaX: Int = 0,
/**
* Point focus coordinates, y range (0 - 100)
*/
var spotAreaY: Int = 0,
/**
* Object distance, unit: mm, divided into three sections (10 scales in each section): [10cm - 1m], [1m - 10m], [10m - 100m], special value 0: macro, -1: infinity
*/
var objectDistance: Int = 0,
/**
* Assisted focus enable, 1: Enable 0: Disable
*/
var aFAssistFocusEnable: Boolean = false,
/**
* Assisted focus enable, 1: Enable 0: Disable
*/
var mFAssistFocusEnable: Boolean = false,
)

Type: Listen

KeyHdrNtfy ​

Description: HDR information reporting

Input parameters: None

Output parameter: Boolean

Type: Listen

KeyRoiNtfy ​

Description: ROI configuration reporting

Input parameters: None

Output parameter:

data class ROIBean(
/**
*Is it enabled?
*/
var enable: Boolean = false,
/**
*ROI area configuration, supports setting 8 ROI areas at the same time
*/
var roiRegionList: MutableList<RoiRegionBean>? = null,
)

Type: Listen

KeyPhotoResolutionNtfy ​

Description: Report camera photo resolution information

Input parameters: None

Output parameter:

enum class PhotoResolutionEnum(val width: Int, val height: Int, val tag: String,val prId:String) {
PR_8000_6000(8000, 6000, "48M","8000x6000"),
PR_6912_5184(6912, 5184, "36M","6192x5184"),
PR_4000_3000(4000, 3000, "12M","4000x3000"),
PR_1920_1200(1920, 1200, "1200P","1920x1200"),
PR_1920_1080(1920, 1080, "1080","1920x1080"),
PR_4096_3072(4096, 3072, "4K", "4096x3072"),
PR_8192_6144(8192, 6144, "50M","8192x6144"),
PR_640_512(640, 512, "640*512","640x512"),
PR_3840_2160(3840, 2160, "4K","3840x2160"),
PR_5472_3648(5472, 3648, "6K","5472x3648"),
PR_5472_3076(5472, 3076, "6K","5472x3076"),
PR_800_600(800, 600, "800*600","800x600"),
PR_UNKNOWN(0, 0, "unknown","unknown");
}

Type: Listen

KeyVideoResolutionNtfy ​

Description: Report camera video resolution information

Input parameters: None

Output parameter:

data class VideoResolutionBean(
/**
* Resolution enumeration
*/
var videoResolutionEnum: VideoResolutionEnum = VideoResolutionEnum.VR_UNKNOWN,
/**
* Frame rate
*/
var fps: Int = 0,
)

Type: Listen

KeyCameraEncryptProgressReportNtfy ​

Description: Decryption progress report

Input parameters: None

Output parameter:

data class CameraEncryptProgressReportBean(
/**
* Total
*/
var totalCount: Int = 0,
/**
* Completed quantity
*/
var completeCount: Int = 0,
)

Type: Listen

KeyCameraTransferInfoNtfy ​

Description: Camera image transmission information reporting

Input parameters: None

Output parameter:

data class CameraTransferInfoBean(
/**
* Camera ID
*/
var cameraId: Int = 0,
/**
* Image transmission mode 1 (smooth)/2 (HD)/3 (2.7K)
*/
var transferMode: Int = 0,
/**
* Video transmission encoding type 0 (H264)/1 (H265)
*/
var transferPayloadType: Int = 0,
/**
* Image transmission frame rate/second
*/
var fps: Int = 0,
/**
* Image transmission bit rate kbps
*/
var bitrate: Int = 0,
/**
* Number of key frames sent/minute
*/
var sendIFrameNum: Int = 0,
/**
* Number of key frames requested/minute
*/
var requestIFrameNum: Int = 0,
/**
* Image transmission switch (false-image transmission is off, true-image transmission is on)
*/
var transferEnable: Boolean = false,
)

Type: Listen

KeyCameraEisNtfy ​

Description: EIS parameter reporting

Input parameters: None

Output parameter:

data class CameraEisReportBean(
/**
* Zoom value, actual value*100
*/
var zoomValue: Int = 0,
/**
* left angle
*/
var leftAngle: Double = 0.0,
/**
* right angle
*/
var rightAngle: Double = 0.0,
/**
* top angle
*/
var topAngle: Double = 0.0,
/**
* bottom angle
*/
var bottomAngle: Double = 0.0,
/**
* left value
*/
var left: Double = 0.0,
/**
* right value
*/
var right : Double = 0.0,
/**
* Top value
*/
var top : Double = 0.0,
/**
* bottom value
*/
var bottom: Double = 0.0,
)

Type: Listen

KeyCameraPreviewResolution ​

Description: The encoding type of the image transmission video needs to be distinguished from the encoding type of the video recording

Input parameters:

enum class CameraPreviewResolutionEnum(var value: Int) {
/**
* video compress standard H264
*/
H480(0), //The preview image size is 640x480
/**
* video compress standard H265
*/
H720(1), //The preview image size is 960x720
H1080(2), //The preview image size is 1440x1080
UNKNOWN(0xFF);
}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraEquivalentFocalLength ​

Description: 35mm equivalent focal length actual value*10

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraWatermarkDroneSwitch ​

Description: Watermark model display switch

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraWatermarkLayout ​

Description: Watermark position

Input parameters:

enum class WatermarkPositionEnum(val value: Int) {
/**
* Upper left corner
*/
TopLeft(0),

/**
* Bottom left corner
*/
BottomLeft(1),

/**
* Upper right corner
*/
TopRight(2),

/**
* Bottom right corner
*/
BottomRight(3);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraIrTempSpanSwitch ​

Description: Thermal imaging temperature width stretch switch 0: off, 1 on

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraIrTempSpanHot ​

Description: Thermal imaging temperature width stretching hot spot temperature

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCameraIrTempSpanCold ​

Description: Thermal imaging temperature width stretch cold spot temperature

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

5. CommonKey ​

KeySetSystemDataTime ​

Description: Set system time

Input parameters:

data class SystemTimeInfoBean(
/**
* UTC timestamp
*/
var utcTimeInterval: Long = 0,
/**
* The offset in hours relative to the zero time zone, for example, Beijing: UTC+8, timeZone is 8
*/
var timeZone: Float = 0f,
)

Output parameter: None

Type: Action

KeyGetSystemInitData ​

Description: Get system initialization data

Input parameters: None

Output parameter:

data class SystemInfoData(
/**
* Master version
*/
var mainControlVersion: String? = null,

/**
* Aircraft SN
*/
var droneSN: String? = null,

/**
* Aircraft Type
*/
var droneType: Int = 0,

/**
* Aircraft type string, type
*/
var droneTypeStr: String? = null,

/**
* Activation status
*/
var activeState: Int = 0,
)

Type: Action

KeyGetDroneDevicesInfo ​

Description: Get aircraft equipment information

Input parameters: None

Output parameter: List<DroneVersionItemBean>

data class DroneVersionItemBean(
/**
* component ID
*/
var componentID: DroneComponentIdEnum = DroneComponentIdEnum.NONE,
/**
* component serial number
*/
var componentSN: String? = null,
/**
* Hardware version
*/
var hardwareVersion: String? = null,
/**
* software version
*/
var softwareVersion: String? = null,
/**
* Integer enumeration value, component device model
*/
var componentModel: Int = 0, //
/**
* Character type component device model, (for example: camera device model XM802)
*/
var strComponentModel: String? = null,
/**
* Aircraft capability set reserved field
*/
var label: String? = null,
/**
* Aircraft capability set reserved field
*/
var componentType: DroneComponentEnum = DroneComponentEnum.UNKNOWN,
/**
* MCU bootloader version information
*/
var bootloaderVersion: String? = null,

/**
* Data source, 0 remote controller, 1 aircraft
*/
var dataSource:Int = 0
)

Type: Action

KeyDroneSystemStatusHFNtfy ​

Description: Aircraft general parameters reporting (5HZ)

Input parameters: None

Output parameter:

data class DroneSystemStateHFNtfyBean(
/**
* Aircraft latitude. When it is an invalid value or isGPSValid is NO, it means that the position cannot be determined and should be ignored.
*/
var droneLatitude: Double = 0.0,
/**
* Aircraft longitude. When it is an invalid value or isGPSValid is NO, it means that the position cannot be determined and should be ignored.
*/
var droneLongitude: Double = 0.0,
/**
* Relative altitude of the aircraft
*/
var altitude: Float = 0f,
/**
* Aircraft altitude
*/
var altitudeMSL: Float = 0f,
/**
* x speed X
*/
var velocityX: Float = 0f,
/**
* y speed
*/
var velocityY: Float = 0f,
/**
* z speed
*/
var velocityZ: Float = 0f,
/**
* Aircraft attitude
*/
var droneAttitude: DroneAttitudeBean? = null,
/**
* Gimbal attitude
*/
var gimbalAttitude: DroneAttitudeBean? = null,
/**
* The distance between the aircraft and the Home point
*/
var distance: Float = 0f,
/**
* Ultrasonic height above the ground
*/
var ultrasoundAltitude: Float = 0f,
/**
* Laser distance measurement, unit: cm
*/
var laserDistance: Int = 0,
/**
* Indicates whether the laser distance measurement is valid, 0 is invalid, 1 is valid
*/
var laserDistanceIsValid: Boolean = false,
/**
* Radar altitude detection results
*/
var radarHight: Double = 0.0,
/**
* Airplane mode
*/
var flightMode: DroneFlightModeEnum = DroneFlightModeEnum.UNKNOWN,
/**
* Flight control main mode, see FLIGHT_CONTROL_MAIN_MODE
*/
var mainMode: FlightControlMainModeEnum = FlightControlMainModeEnum.UNKNOWN,
/**
* Aircraft intelligent mode, see FlightControlDefine -> DroneWorkMode
*/
var droneWorkMode: DroneWorkModeEnum = DroneWorkModeEnum.UNKNOWN,
/**
* Aircraft operating status
* 0-TRACK_UNKNOW unknown
* 1-TRACK_DETECT detection
* 2-TRACK_LOCK Lock
* 3-TRACK_FREE Free tracking (pb 1.17.4 aircraft working status)
*/
var droneWorkStatus: DroneWorkStateEnum = DroneWorkStateEnum.UNKNOWN,
/**
* GPS switch status (false: GPS off true: GPS on)
*/
var isGpsOpen: Boolean = false,

/**
* aiEnableFunc whether to enable AI
*/
var aiEnableFunc: AiServiceStatueEnum = AiServiceStatueEnum.UNKNOWN,

var retractPaddleStatus :RetractPaddleStatusEnum = RetractPaddleStatusEnum.UNRECOGNIZED,


//=====================DragonFish Dragon fish adds a new field start
/**
* Dragon fish absolute speed root of square X/Y/Z's sum
*/
var vXYZ: Float = 0.0f,
/**
* Arowana airspeed meter
*/
var airSpeed: Float = 0.0f
//=======================DragonFish Dragon fish adds new fieldsend

)

Type: Listen

KeyDroneSystemStatusLFNtfy ​

Description: Aircraft general parameters reporting (2HZ)

Input parameters: None

Output parameter:

data class DroneSystemStateLFNtfyBean(
/**
* Number of visible satellites
*/
var satelliteCount: Int = 0,
//Deprecated and cannot be used
/**
* GPS signal level, see FlightControlDefine
*/
var gpsLevel: GPSLevelEnum = GPSLevelEnum.LEVEL_NONE,
/**
* remoteID working status
*/
var remoteIdStatus: RemoteIdStatusEnum = RemoteIdStatusEnum.UNKNOWN,
/**
* Current visual SLAM confidence, visual positioning strength: 0.7 or above is high, 0.4 to 0.7 is medium, and below 0.4 is low
*/
var slamConfidence: Double = 0.0,
/**
* Current GPS strength percentage recommendations: below 40% is weak, below 80% is medium, and above 80% is strong
*/
var gpsStrengthPercentage: Int = 0,


/**
* ntrip module status
*/
var ntripStatus: NtripStatusEnumm = NtripStatusEnumm.RTK_STATUS_NOT_SUPPORT,

/**
* lte module status
*/
var lteStatus: LTEStatusEnum = LTEStatusEnum.NET_STATUS_NOT_SUPPORT,
/**
* 4G, 5G signal volume (0~100)
*/
var lteSignal: Int = 0,
/**
SIM card status 0 not in place, 1 in place
*/
var lteCardIsDetected: Boolean = false,

/**
* Status of mqtt module
*/
var mqttStatus: MqttStatusEnum = MqttStatusEnum.MQTT_STATUS_NOT_SUPPORT,

/**
* Is there a risk of landing? true: risky, false: no risk
*/
var landIsRisky: Boolean = false,
/**
* *uint32 RTMP_STATUS_DISABLE = 0 #rtmp is closed
* uint32 RTMP_STATUS_INIT = 1 #Service initialization
* uint32 RTMP_STATUS_NOURL = 2 #No streaming address or SN number
* uint32 RTMP_STATUS_NONETWORK = 3 #No network
* uint32 RTMP_STATUS_CONNECTED = 4 #Connected to rtmp streaming server
* uint32 RTMP_STATUS_DISCONNECTED = 5 #Not connected to the rtmp streaming server
* uint32 RTMP_STATUS_PUSHSTREAM = 6 #Normal streaming
* uint32 RTMP_STATUS_WRITEERROR = 7 #stream push error
* uint32 RTMP_STATUS_NOTEUTRAN = 8 #No E-UTRAN network
* uint32 RTMP_STATUS_WEAKSIGNAL = 9 #Network signal is poor
*/
var rtmpStatus: RtmpStatusEnum = RtmpStatusEnum.RTMP_STATUS_DISABLE,

var batteryModeFlag: Int = 0, //Multi-battery flag 0 single battery 1 multiple batteries
var batteryInfoList: List<BatteryInfoBean> = emptyList(), //Battery specific information
var airLinkPowerRate: Int, // Image transmission RF signal transmission power, the value is 0-100, indicating the percentage of normal power

//add for dragon fish start
var autoCheckState: AutoCheckStateEnum = AutoCheckStateEnum.AUTO_CHECK_NORMAL //Arowana flight control self-check status
//add for dragon fish end

)

Type: Listen

KeyDroneWorkStatusInfoReport ​

Description: Report aircraft working status information

Input parameters: None

Output parameter:

data class FlightControlStatusInfo(
/**
* Aircraft Type
*/
var droneType: Int = 0,
// var flightMode: DroneFlightModeEnum = DroneFlightModeEnum.UNKNOWN, // flight mode
// var mainMode: FlightControlMainModeEnum = FlightControlMainModeEnum.UNKNOWN, // Flight control main mode, see FLIGHT_CONTROL_MAIN_MODE
// var droneWorkMode: DroneWorkModeEnum = DroneWorkModeEnum.UNKNOWN, // Aircraft intelligent mode, see FlightControlDefine -> DroneWorkMode
// var droneWorkStatus: DroneWorkStateEnum = DroneWorkStateEnum.UNKNOWN, // Aircraft working status
/**
* Aircraft gear, see GEAR_LEVEL
*/
var droneGear: GearLevelEnum = GearLevelEnum.UNKNOWN,
/**
* Whether RTK is supported
*/
var supportRTK: Boolean = false,
/**
* Is the home point invalid?
*/
var isHomeInvalid: Boolean = false,

/**
* Latitude of home point
*/
var homeLatitude: Double = 0.0,

/**
* Home point longitude
*/
var homeLongitude: Double = 0.0,

/**
* Obstacle avoidance enabled
*/
var obstacleAvoidanceEnabled: Boolean = false,

/**
* Radar chart display
*/
var radarChartDispalyed: Boolean = false,
// var trackWorkStatus: Int = 0, // Track work status
/**
* Downward-looking fill light status
*/
var visionledStatus: Int = 0,

/**
* Landing protection switch
*/
var visionEnableSecureLanding: Boolean = false,

/**
* Whether to enable the precision landing function
*/
var visionEnablePreciseLanding: Boolean = false,

/**
* Compass calibration status
*/
var compassCalibrationStatus: CompassCalibrationStatusEnum = CompassCalibrationStatusEnum.NONE,

/**
* IMU calibration status
*/
var imuCalibrationStatus: IMUCalibrationStepEnum = IMUCalibrationStepEnum.NONE,

/**
* Battery discharge times
*/
var numberOfDischarge: Int = 0,

/**
* Battery not in place flag 0: in place 1: not in place
*/
var batteryNotInPlaceFlag: BatteryInPlaceEnum = BatteryInPlaceEnum.UNREADY,

/**
* Current aircraft ambient brightness information 0: Normal brightness means visual features should be feasible 1: The ambient brightness is too low for some visual features
*/
var environmentInfo: EnvironmentEnum = EnvironmentEnum.NORMAL_BRIGHTNESS,
/**
* Flight inspection results
*/
var preflightCheckResult :PerFlightCheckResultEnum = PerFlightCheckResultEnum.CAN_FLIGHT,

/**
* Flight check result, each bit represents the status of each system (0 is normal, 1 is abnormal) 0 is whether the vision is supported, 1 is whether the radar is normal, 2 is whether the flight control status is normal, 3 is whether RTK is normal (fix is normal), 4 is whether the Planner is started normally, 5 is whether the camera is started normally
*/
var preflightCheckResultGcs : List<FlightCheckException> = emptyList(),

/**
* Arm light status, for value, refer to: "1.32 General Light Language Control" LAMPLNG_DIRECT_CTRL
*/
var armLampStatus : LampDirectCtrlEnum = LampDirectCtrlEnum.ALL_OFF
)

Type: Listen

KeyDroneWarningMFNtfy ​

Description: Aircraft alarm reporting

Input parameters: None

Output parameter:

data class DroneWarningStateNtfyBean(
/**
* Low battery warning
*/
var lowPowerWarning: BatteryPowerWarning = BatteryPowerWarning.NONE,
/**
* Is the battery overheated?
*/
var isBatteryOverheated: Boolean = false,
/**
* Is the battery temperature too low?
*/
var isBatteryLowTemperature: Boolean = false,
/**
*Battery cell voltage imbalance
*/
var isBatteryVoltageDiff: Boolean = false,
/**
* The motor cannot start normally. For the value, refer to FLIGHT_CONTROL_TURN_ON_MOTOR_STATUS
*/
var turnOnMotorError: FlightControlTurnOnMotorStatusEnum = FlightControlTurnOnMotorStatusEnum.NO_ERROR,
/**
* IMU overheating
*/
var isIMUOverheated: Boolean = false,
/**
* Limited rod quantity
*/
var isStickLimited: Boolean = false,
/**
* High wind warning
*/
var highWindWarning: Boolean = false,
/**
* The return point may not be accurate
*/
var isHomePointNotAccurate: Boolean = false,
/**
* Overload alarm
*/
var overloadWarning: Boolean = false,
/**
* IMU calibration warning
*/
var imuCalibrationWarn: IMUCalibratoionWarningEnum = IMUCalibratoionWarningEnum.NONE,
/**
* No-fly zone warning status
*/
var noFlyStatus: MainControllerNoflyZoneStatusEnum = MainControllerNoflyZoneStatusEnum.FLY_STATUS_UNKNOW,
/**
* Compass interference level; flight control notifies when compass receives interference; mode switches to ATTI
*/
var compassInterferenceLevel: CompassInterferenceLevelEnum = CompassInterferenceLevelEnum.LEVEL0,
/**
* Whether the maximum flight range has been reached
*/
var isReachMaxRange: Boolean = false,
/**
* Whether the maximum flight range is about to be reached
*/
var isNearMaxRange: Boolean = false,
/**
* Whether the maximum flight altitude has been reached
*/
var isReachMaxHeight: Boolean = false,
/**
* Is GPS signal available?
*/
var isGPSValid: Boolean = false,
/**
* Is the compass available?
*/
var isCompassValid: Boolean = false,
/**
* Whether the visual function is limited, the environment is poor, and subsequent visual errors are updated to visionErrorCode. This field is deprecated
*/
var visionLimitedWhenDark: Boolean = false,
/**
* Insufficient space to pass
*/
var insufficientSpaceToPass: Boolean = false,
/**
* Move the aircraft to an open area and try again
*/
var flyToOpenSpace: Boolean = false,
/**
* All visual errors, such as whether the visual sensor is available. This field will be added for new errors later.
*/
var visionErrorCode: Int = 0,
)

Type: Listen

KeyControlLed ​

Description: Control a single aircraft LED light

Input parameters:

data class DroneLedStatusBean(
/**
* LED light type, see DRONE_LED_TYPE
*/
var ledType: DroneLedTypeEnum = DroneLedTypeEnum.NONE,
/**
* LED switch status, see DRONE_LED_STATUS
*/
var ledStatus: DroneLedStatusEnum = DroneLedStatusEnum.CLOSE
)

Output parameter: None

Type: Action

KeyQueryLedStatus ​

Description: Query the status of all LED lights on the aircraft

Input parameters: None

Output parameter:

data class DroneAllLedStatusBean(
/**
*LED single light status, see DRONE_LED_STATUS
*/
var ledsStatus: List<DroneLedStatusBean>? = null,
/**
* Night navigation light LED switch status, 0: off, 1: on
*/
var nightLedStatus: Boolean = false
)

Type: Action

KeyDroneCalibrationCommand ​

Description: General calibration command

Input parameters:

data class CalibrationCommandBean(
/**
* Calibration Type
*/
var type: CalibrationTypeEnum = CalibrationTypeEnum.UNKNOWN,
/**
* Calibration action instructions
*/
var cmd: CmdEnum = CmdEnum.UNKNOWN,
)

Output parameter: None

Type: Action

KeyDroneCalibrationEventNtfy ​

Description: Calibration event notification

Input parameters: None

Output parameter:

data class CalibrationEventBean(
/**
* Calibration Type
*/
var calibrationType: CalibrationTypeEnum = CalibrationTypeEnum.UNKNOWN,
/**
* Calibration Event
*/
var calibrationEvent: CalibrationEventEnum = CalibrationEventEnum.UNKNOWN,
)

Type: Listen

KeyDroneCalibrationScheduleNtfy ​

Description: Calibration progress notification

Input parameters: None

Output parameter:

data class CalibrationScheduleBean(
/**
* When the calibrationType value is IMU, use this field
*/
var imcStep: IMUCalibrationStepEnum = IMUCalibrationStepEnum.NONE,
/**
* When the calibrationType value is COMPASS, this field is used
*/
var compassStep: CompassCalibrationStepEnum = CompassCalibrationStepEnum.STEP0,

/**
* When the calibrationType value is GIMBAL_ANGLE, this field is used
*/
var gimbalStep: Int = 0,
/**
* Current calibration progress percentage. Calibration functions that support reporting of calibration progress percentage can be used, such as gimbal angle calibration
*/
var calibrationPercent: Int = 0,
/**
* Calibration type, see 1.17.16 Calibration type CALIBRATION_TYPE
*/
var calibrationType: CalibrationTypeEnum = CalibrationTypeEnum.UNKNOWN,
)

Type: Listen

KeyDroneHfNtfy ​

Description: High frequency reporting frequency of key flight control parameters on the aircraft side: 5HZ,

Input parameters: None

Output parameter:

data class DroneKeyInfoHFNtfyBean(
var timestamp :Long= 0L,
var qList :List<Float>? = null,
var posList :List<Float>?= null,
var velList :List<Float>? =null,
var gyrList :List<Float>? = null,
var rpyList :List<Float>? = null,
var valid: Boolean = false,
var escNum :Int=0,
var pwmList:List<Int>? = null,
var rpmList:List<Int>?= null,
var fcsPwmList:List<Int>?= null,
var statusList:List<Int>?= null,
var latEst:Double=0.0,
var lonEst:Double=0.0,
var altEst:Float=0.0f,
var lat0:Double=0.0,
var lon0:Double=0.0,
var alt0:Float=0.0f,
var heightGround:Float=0.0f,
var validFlag:Int =0
)

Type: Listen

KeyDroneLfNtfy ​

Description: Low-frequency reporting frequency of key flight control parameters on the aircraft side: 2HZ,

Input parameters: None

Output parameter:

data class DroneKeyInfoLFNtfyBean(
var timestamp: Long = 0L,
var gpsTime: Int = 0,
var gpsLat: Double = 0.0,
var gpsLon: Double = 0.0,
var gpsAlt: Float = 0.0f,
var velNedX: Float = 0.0f,
var velNedY: Float = 0.0f,
var velNedZ: Float = 0.0f,
var accuracyH: Float = 0.0f,
var accuracyV: Float = 0.0f,
var accuracyS: Float = 0.0f,
var hmsl : Double = 0.0,
var gnssFixType: Int = 0,
var satellitesNum: Int = 0,
var gpsQuality: Int = 0,
var xacc : Double = 0.0,
var yacc: Double = 0.0,
var zacc : Double = 0.0,
var xgyro : Double = 0.0,
var ygyro : Double = 0.0,
var zgyro : Double = 0.0,
var xacc1: Double = 0.0,
var yacc1: Double = 0.0,
var zacc1: Double = 0.0,
var xgyro1: Double = 0.0,
var ygyro1: Double = 0.0,
var zgyro1: Double = 0.0,
var xmag : Double = 0.0,
var ymag : Double = 0.0,
var zmag : Double = 0.0,
var xmag1: Double = 0.0,
var ymag1: Double = 0.0,
var zmag1: Double = 0.0,
var absPressure: Double = 0.0,
var temperature: Double = 0.0,
var absPressure1: Double = 0.0,
var temperature1: Double = 0.0,
var fieldsUpdated: Int = 0,

var smartMode: DroneWorkModeEnum = DroneWorkModeEnum.UNRECOGNIZED, // Aircraft smart mode, drone_work_mode
var smartModeStatus: Int = 0, // Smart mode working status drone_work_status
var batteryStatus: Int = 0, // Battery status see battery_status
var unlockValid: Boolean = false, //Whether the flight control is currently allowed to unlock 0: Not allowed 1: Allowed
var isGpsInterfaceOpen: Boolean = false, // GPS switch status (0: GPS off 1: GPS on)
var button: Int = 0,


/**
* | Bit | Purpose | Description |
| ------ | ---------------------------------- | --------------------------------------------------------------- |
| 0:1 | Battery warning | 0 – No warning 1 – Low battery 2 – Critical battery 3 – Unknown battery |
| 2 | Reach maximum height or not | |
| 3 | Reach maximum range or not | |
| 4 | GPS valid or not | |
| 5 | Hover on | Home point valid or notDelete|
| 6 | Compass valid or not | |
| 7 | RC disconnected or not | |
| 8 | GPS cheated or not | 0-Not cheated, 1-Cheated |
| 9 | GPS fused or not | 0-not fused, 1-fused|
| 10:11 | Airport warnings | <!--0 -- No warning1 -- Warning zone2 -- Restricted altitude zone3 -- Reached maximum altitude4 -- No-fly zone--> Currently reserved|
| 12 | IMU interface | |
| 13 | BARO interface | |
| 14 | MAG interface | |
| 15 | GPS interface | |
| 16 | Hide Mode is or not | 0:false, 1:trueSilent~~Gohome pending confirmation1 – Waiting to cancel return~~ |
| 17 | Stick is limited | Stick is limited |
| 18 | One click take off valid or not | |
| 19 | Able to take off or not | |
| 20:21 | Led pilot lamp status | 0 – Headlights off, taillights off 1 – Headlights off, taillights on 2 – Headlights on, taillights off 3 – Headlights on, taillights on |
| 22 | FC hot or not | |
| 23 | Battery hot or not | |
| 24:27 | Compass status | 0 – Normal 1 – CALIB_Start 2 – CALIB_Step1 3 – CALIB_Wstep2 4 – CALIB_Step2 5 – CALIB_Calc 6 – CALIB_Failed 7 – CALIB_Success 8 – CALIB_Timedout |
| ~~27~~ | ~~Hover on~~ | ~~Is it in hovering state~~ |
| 28 | Large wind warning |
| 29 | Near the range limit | 1 – Near the range limit |
| 30 | Home point not good | |
| 31 | Warming up or not |
*/
var alarm_status1: Int = 0, // System alarm status 1 See ROS protocol table 1.1.1.4.1
/**
*| Bit| Purpose| Description|
| ----- | ------------------------ | ------------------ ------------------------------------------------ |
| 0:3 | Main fly state | 0- Unknown state 1- ATTI state 2- GPS state 3- IOC state 4- StarPoint state |
| 4:7 | Virtual joystick mode | \- |
| 8:15 | ErrorCode | 0 – No error 1 - IMU loss 2 - Critical battery 3 - Baro loss 4 – RedZone 5 - IOC error 6 - Beginner NO GPS 7 - Disarm tilt over 45deg 8 - Disarm IMU loss 9 - IMU is warming up 10 - Magnetometer is calibrating 11 - Multiple sensors error 12 - Gimbal is not ready 13 - Upgrade is ongoing 14 - IMU need user calibration 15 - Initializing attitude 16 - RTK not ready 17 - Aircraft not activated |
| 16 | Vision orbit stop flag | 0-Normal; 1-Orbit obstacle avoidance brake flag |
| 17 | GPS good for landing | 0-GPS signal is poor during landing, use high altitude VIO; 1-GPS signal is good during landing, use precision landing |
| 18 | Is Calibration Necessary | 0-Not required; 1-Required |
| 19 | Support rtk | 0-Does not support RTK; 1-Supports RTK |
| 20 | ATTI mode allow to fly | 0-takeoff is not allowed; 1-takeoff is allowed |
| 21 | mag error allow to fly | 0-takeoff is not allowed; 1-takeoff is allowed |
| 22 | vertical screen | Whether the 4-axis gimbal is in vertical screen mode, 0-no; 1-yes |
| 23 | full power | Power full load status, 0-not fully loaded; 1-fully loaded |
| 24:31 | Version ID | 0-255
*/
var alarm_status2: Int = 0, // System alarm status 2 See ROS protocol table 1.1.1.4.2
/**
* | ---- | --------------------------------------------------------------- |
| 0 | Motor stop |
| 1 | The aircraft motor is spinning, but the aircraft is still on the ground |
| 2 | The aircraft is landing |
| 3 | The aircraft is taking off, including automatic takeoff and takeoff controlled by the remote controller |
| 4 | The aircraft is flying and in attitude mode |
| 5 | The aircraft is flying, in GPS mode or Starpoint mode |
| 6 | Aircraft is flying, IOC mode |
| 7 | The aircraft is returning to home automatically. Reason for return: Send an automatic return command to the aircraft via the remote controller or App. |
| 8 | The aircraft is returning automatically. Reason for return: low battery alarm. |
| 9 | The aircraft is returning automatically. Reason for return: Intelligent low-battery return.
| 10 | The aircraft is returning automatically. Reason for return: The aircraft lost the remote controller signal and the loss of connection protection was activated. |
| 11 | Return flight suspended |
| 12 | The aircraft is executing a waypoint mission |
| 13 | The waypoint mission has been paused, the aircraft is hovering |
| 14 | The aircraft has automatically exited the intelligent flight mode and is returning to the home position. |
| 15 | The aircraft is performing a follow-up mission |
| 16 | The aircraft is performing a point of interest orbit mission |
| 17 | The follow mission has been paused, the aircraft is hovering |
| 18 | Orbiting mission has been paused, the vehicle is hovering |
| 19 | The aircraft is performing a 360Shoot mission |
| 20 | The aircraft is performing an Epic mission |
| 21 | The aircraft is performing the Rise mission |
| 22 | The aircraft is performing the FadeAway mission |
| 23 | The aircraft is performing the IntoSky mission |
| 24 | The aircraft is performing a Boomerang mission |
| 25 | The aircraft is performing the Screw mission |
| 26 | The aircraft is performing the Parabola mission |
| 27 | The aircraft is performing an Asteroid mission |
| 28 | The aircraft is performing a CircleRound mission |
| 29 | The aircraft is performing DollyZoom mission |
| 30 | The aircraft is performing a *Tripod* mission |
| 31 | The aircraft is performing the *Photographer* mission|
| 32 | The aircraft is performing a rectangular mission |
| 33 | Aircraft Rectangular Mission Pause |
| 34 | The aircraft is performing a polygonal mission |
| 35 | Aircraft polygon mission paused |
| 36 | The aircraft is performing a free time-lapse photography mission |
| 37 | Aircraft free time-lapse photography mission suspended |
| 38 | The aircraft is performing an oblique photography mission |
| 39 | Aircraft oblique photography mission suspended |
| 40 | The aircraft is performing a panoramic mission |
| 41 | Lock Mode |
| 42 | One-click short film (based on locked flight) |
| 43 | One-click short film (flying according to the measured points) |
| 44 | One-click video return|
| 45 | Portrait mode takes off |
| 46 | Portrait mode is returning|
| 47 | Portrait mode (no scene, only lock, the plane only adjusts the angle) |
| 48 | Portrait mode (with scene resolution and moving aircraft) |
| 49 | Surround delay calculation in progress|
| 50 | Surround Delay
*/
var flight_mode: FlightModeEnum = FlightModeEnum.MOTOR_STOP, // Flight model see ros protocol table 1.1.1.4.4
/**
* | type | definition | description |
| ---- | -------------------- | ------------- |
| 0 | MAV_TYPE_XSTAR2_0 | |
| 1 | MAV_TYPE_GEN2 | |
| 2 | MAV_TYPE_DRAGONFISH | |
| 3 | MAV_TYPE_MODELC | EVO2 model |
| 5 | MAV_TYPE_MODELX_MINI | EVO Lite model |
| 6 | MAV_TYPE_MODELA | EVO Nano model |
*/
var type: FlightTypeEnum=FlightTypeEnum.MAV_TYPE_MODELC, // See ros protocol table 1.1.1.4.3 for MAV type

var error_code: Int = 0, // Flight control heartbeat error code

//topic name:/fcs_heartbeat_plus
var uav_sta1: Int = 0, // Flight control heartbeat plus system alarm status 1
var uav_sta2: Int = 0, // Flight control heartbeat plus system alarm status 2
var uav_sta3: Int = 0, // Flight control heartbeat plus system alarm status 3
var data_u32: List<Int>? = listOf(),
var data_u8: List<Int>? = listOf(),
/**
* Table 4-6-1-1 Battery safety status bit definition

| Bit 31 | Bit 30 | Bit 29 | Bit 28 | Bit 27 | Bit 26 | Bit 25 | Bit 24 |
| ------ | -------- | --------- | ------- | --------- | ----- --- | ------- | -------- |
| **SD** | **CF** | **CVD** | **-** | **UTD** | **UTC** | **-** | **-** |
| Bit 23 | Bit 22 | Bit 21 | Bit 20 | Bit 19 | Bit 18 | Bit 17 | Bit 16 |
| **-** | **-** | **OTD1-** | **-** | **-** | **-** | **-** | **-** |
| Bit 15 | Bit 14 | Bit 13 | Bit 12 | Bit 11 | Bit 10 | Bit 09 | Bit 08 |
| **-** | **CUVC** | **OTD2** | **OTC** | **ASCDL** | **ASCD** | **-** | **ASCC** |
| Bit 07 | Bit 06 | Bit 05 | Bit 04 | Bit 03 | Bit 02 | Bit 01 | Bit 00 |
| **-** | **AOLD** | **-** | **-** | **-** | **OCC1** | **COV** | **CUV** |

Note: For detailed information on each bit, see the table below. A bit state of 1 indicates that the state is valid, and 0 indicates that it is invalid.

Table 4-6-1-2 Battery safety status bit definition

| **Status bit** | **Abbreviation** | **Definition** | **APP battery status display** | **APP and remote control main interface prompt** |
| ---------- | -------- | -------------------------- ----------------------- | ------------------- | ------ ------------------ |
| Bit 31 | SD | Shutdown, power supply output shutdown prompt | \- | \- |
| Bit 30 | CF | Communication Fail, fuel gauge communication abnormality | \- | \- |
| Bit 29 | CVD | Cell Voltage Difference, cell voltage difference alarm | Cell voltage difference is large | The battery is damaged, it is recommended to replace the battery |
| Bit 28 | \- | \- | \- | \- |
| Bit 27 | UTD1 | Undertemperature During Discharge 1, discharge temperature is low | Battery temperature is low | Battery temperature is low, flight is restricted |
| Bit 26 | UTC | Undertemperature During Charge, charging temperature is too low | \- | \- |
| Bit 25 | \- | \- | \- | \- |
| Bit 24 | \- | \- | \- | \- |
| Bit 23 | \- | \- | \- | \- |
| Bit 22 | \- | \- | \- | \- |
| Bit 21 | OTD1 | Overtemperature During Discharge 1, discharge temperature is too high | Battery temperature is too high | Battery temperature is too high, flight is restricted |
| Bit 20 | \- | \- | \- | \- |
| Bit 19 | UTD2 | Undertemperature During Discharge 2, discharge temperature is too low | Battery temperature is too low | Battery temperature is too low, flight prohibited |
| Bit 18 | \- | \- | \- | \- |
| Bit 17 | \- | \- | \- | \- |
| Bit 16 | \- | \- | \- | \- |
| Bit 15 | INC | Inhibit Charge, prohibit charging due to over-temperature (before charging) | \- | \- |
| Bit 14 | CUVC | Cell Undervoltage Compensated, cell undervoltage compensation protection | \- | |
| Bit 13 | OTD2 | Overtemperature During Discharge, discharge temperature is too high | Battery temperature is too high | Battery temperature is too high, stop flying immediately |
| Bit 12 | OTC | Overtemperature During Charge, charging temperature is too high | \- | \- |
| Bit 11 | ASCDL | Short-circuit During Discharge Latch, discharge short circuit protection lock | \- | \- |
| Bit 10 | ASCD | Short-circuit During Discharge, discharge short circuit | \- | \- |
| Bit 09 | \- | \- | \- | \- |
| Bit 08 | ASCC | Short-circuit During Charge, short circuit during charge | \- | \- |
| Bit 07 | | | | \- |
| Bit 06 | AOLD | Overload During Discharge, discharge overload | \- | \- |
| Bit 05 | \- | \- | \- | \- |
| Bit 04 | \- | \- | \- | \- |
| Bit 03 | \- | \- | \- | \- |
| Bit 02 | OCC1 | Overcurrent During Charge 1, overcurrent during charge | \- | \- |
| Bit 01 | COV | Cell Overvoltage, cell voltage is too high | \- | \- |
| Bit 00 | CUV | Cell Undervoltage, cell voltage is too low | \- | \- |

Notice:

(1) When receiving an SD (output shutdown prompt), it may be necessary to notify the camera to stop working, save files, etc.
*/
var safe_status: Int = 0, //Battery safety status see ROS protocol table 4-6-1-1 and table 4-6-1-2

var maxerror: Int = 0, // Battery error status information
var drone_gear: Int = 0, // aircraft gear
var support_rtk: Boolean = false, // Whether to support RTK
var is_home_invalid: Boolean = false, // Is the home point invalid?
var low_power_warning: Int = 0, // low power warning
var no_fly_status: Int = 0, // No-fly zone warning status
var joyStickBean: DroneKeyInfoJoyStickBean? = null, // Report joystick related information

//add for dragon fish start
var airspeedPressure: Float = 0f, // DragonFish: air speed Pressure
var aglMeas: Float = 0f, // DragonFish: Above Ground Level (AGL) measurement, m
var aglInfo: Int = 0, // DragonFish Dragon Fish: Above Ground Level (AGL) source and validity; 0-not valid; 1-Sonar; 2-Downward Radar
var alarm_status3: Int = 0, //System alarm status 1 See ROS protocol 1.1.1.4.1
var alarm_status4: Int = 0 //System alarm status 1 See ROS protocol 1.1.1.4.2
//add for dragon fish end
)

Type: Listen

KeyDroneRuntimeNtfy ​

Description: Report aircraft operation time statistics. Frequency: 1HZ, corresponding data structure: DroneRuntimeReport

KeyDroneControlNightNavigationLed ​

Description: Control LED night navigation lights

Input parameters: None

Output parameter: Boolean

Type: Listen, Action

KeyDroneVersionNtfy ​

Description: Aircraft equipment information notification

Input parameters: None

Output parameter: List<DroneVersionItemBean>

data class DroneVersionItemBean(
/**
* component ID
*/
var componentID: DroneComponentIdEnum = DroneComponentIdEnum.NONE,
/**
* component serial number
*/
var componentSN: String? = null,
/**
* Hardware version
*/
var hardwareVersion: String? = null,
/**
* software version
*/
var softwareVersion: String? = null,
/**
* Integer enumeration value, component device model
*/
var componentModel: Int = 0, //
/**
* Character type component device model, (for example: camera device model XM802)
*/
var strComponentModel: String? = null,
/**
* Aircraft capability set reserved field
*/
var label: String? = null,
/**
* Aircraft capability set reserved field
*/
var componentType: DroneComponentEnum = DroneComponentEnum.UNKNOWN,
/**
* MCU bootloader version information
*/
var bootloaderVersion: String? = null,

/**
* Data source, 0 remote controller, 1 aircraft
*/
var dataSource:Int = 0
)

Type: Listen

KeyDroneEventNtfy ​

Description: Aircraft event notification

Input parameters: None

Output parameter:

data class EventInfoBean(
/**
* Component type see VersionMessage.proto->DRONE_COMPONENT_TYPE
*/
var componentType: DroneComponentEnum = DroneComponentEnum.UNKNOWN,
/**
* Component ID See CommonHead.proto->DRONE_COMPONENT_ID
*/
var componentId: DroneComponentIdEnum = DroneComponentIdEnum.NONE,
/**
* Exception priority, see ABNORMAL_PRIORITY
*/
var priority: EventPriorityEnum = EventPriorityEnum.UNKNOWN,
/**
* Event ID
*/
var eventId: DroneEventEnum = DroneEventEnum.UNKNOWN,
)

Type: Listen

KeyDroneTempConnectNtfy ​

Description: The device can be temporarily connected to report that the aircraft is not connected.

Input parameters: None

Output parameter:

data class DeviceTempConnectBean(
/**
* Aircraft SN
*/
var droneSn: String? = null,
/**
* Electromechanical power percentage
*/
var droneBatteryPercentage: Float = 0f,
/**
* Is it a new aircraft that has not been paired? 0: Not paired, 1: Paired
*/
var isMatched: Boolean = false,
/**
* User-defined aircraft name
*/
var droneName: String? = null
)

Type: Listen

KeyDroneUtcTimeSyncNtfy ​

Description: Aircraft GPS UTC time synchronization

Input parameters: None

Output parameter:

data class DroneUTCTimeSyncBean(
/**
* UTC time sent by the time synchronization service
*/
var gpsTime: Long = 0L
)

Type: Listen

KeyDroneSetCountryCode ​

Description: Set the aircraft country code

Request parameter: String

Output parameter: None

Type: Action

KeyDroneCleanNoflyZone ​

Description: Clear no-fly zone files

Input parameters:

enum class CleanNoFlyZoneEnum(var value: Int) {
/**
* Unknown
*/
UNKNOWN(0),

/**
* Clear all files
*/
ALL_FILE(1),

/**
* Clear temporary no-fly zone files
*/
TEMPORARY_NOFLY(2),

/**
* Clear the authorization area files
*/
AUTHORIZED_NOFLY(3),

/**
* Clear geo-fence files
*/
ELECTRIC_FENCE_NOFLY(4);

}

Output parameter: None

Type: Action

KeyFileUpload ​

Description: File processing related message definition file upload

Input parameters:

data class FileUploadBean(
var fileType:Int=0, //File type, the specific value is agreed upon between the two devices
var fileName :String="", //File name, usually with an absolute path, which is agreed upon between the two devices
)

Output parameter: None

Type: Action

KeyFileDelete ​

Description: File deletion command Device 1 notifies Device 2 to delete a certain file/type of files, for example: APP notifies the aircraft to delete the temporary no-fly zone file

Input parameters:

data class FileMsgDataBean(
val fileType: Int,
val fileName: String
)

Output parameter: None

Type: Action

KeyGetFileInfo ​

Description: Get file information message Device 1 requests file information from device 2, for example: APP requests temporary no-fly zone information from an aircraft

Input parameters:

data class FileMsgDataBean(
val fileType: Int,
val fileName: String
)

Output parameter:

data class FileInfoListDataBean(
val fileInfoList: List<FileInfoDataBean>
)

Type: Action

KeyLampCommand ​

Description: Universal light language control LampLanguageCommandBean(LampLanguageTypeEnum.DIRECT_CTRL, LampDirectCtrlEnum.FRONT_OFF_BACK_ON) LampLanguageTypeEnum.DIRECT_CTRL -> mapOf( 0 to LampDirectCtrlEnum.ALL_OFF, 1 to LampDirectCtrlEnum.FRONT_OFF_BACK_ON, 2 to LampDirectCtrlEnum.FRONT_ON_BACK_OFF, 3 to LampDirectCtrlEnum.ALL_ON ) LampLanguageTypeEnum.GET_LOG -> mapOf( 0 to LampLogCommandEnum.STOP, 1 to LampLogCommandEnum.START ) LampLanguageTypeEnum.UPGRADE_SERVICE -> mapOf( 0 to LampUpgradeServiceCmdEnum.CLOSE, 1 to LampUpgradeServiceCmdEnum.START, 2 to LampUpgradeServiceCmdEnum.SUCCESS, 3 to LampUpgradeServiceCmdEnum.FAILED )

Input parameters:

data class LampLanguageCommandBean(
val type: LampLanguageTypeEnum,
val cmd: LampCommand //Use the enumeration values in LampDirectCtrlEnum LampLogCommandEnum LampUpgradeServiceCmdEnum according to type
)

Output parameter: None

Type: Action

KeyRemoteDeviceSize ​

Description: Set the size of the remote control (temporary solution support), 7.9 inches: 1, 6.4 inches: 2, other: 0

Request parameter: Int

Output parameter: None

Type: Set

KeySetDroneRunEnv ​

Description: Set the aircraft operating environment Product Type: productType AUTEL(0), // 0: Autel NEUTRAL(1), // 1: Neutral SAFETY(2) // 2: Safety Area Code: areaCode

Input parameters:

data class DroneRunEnvInfoBean(
val productType: ProductTypeEnum,
val areaCode: String
)

Output parameter: None

Type: Action

KeyRCPosition ​

Description: The APP reports the remote controller's location data to the aircraft. The aircraft's RemoteID, follow-the-remote controller and other functions will use the remote controller's location information.

Input parameters:

data class RCPositionInfoBean(
val timestamp: Long,
val latitude: Double,
val longitude: Double,
val altitude: Float,
val posType: Int,
val altType: Int,
val coordinateSystem: Int,
valueNedX: Float,
valueNedY: Float,
valueNedZ: Float,
val accuracyS: Float,
val satellitesUsed: Int
)

Output parameter: None

Type: Report

KeyDroneControlLedFire ​

Description: App notifies the aircraft to turn on the downward fill light. The unit is 10ms. 100 means 1S. Please pay attention to the unit here! !

Request parameter: Int

Output parameter: None

Type: Action

6. FlightControlKey ​

KeyCalibrateCompass ​

Description: Compass calibration

Input parameters: None

Output parameter: None

Type: Action

KeyTakeOffAirCraft ​

Description: Take off

Input parameters: None

Output parameter: None

Type: Action

KeySetLanding ​

Description: false: cancel automatic landing, true: automatic landing

Request parameter: Boolean

Output parameter: None

Type: Action

KeyStartStopMotor ​

Description: Start and stop motor

Request parameter: Boolean

Output parameter: None

Type: Action

KeyStartStopAutoBack ​

Description: action: Int = 0, //Execute action 0: cancel automatic return, 1: automatic return type: Int = 0 //Return type 0: Return to home point 1: Return to alternate landing point

Input parameters:

data class DroneAutoBackBean(
var action: Boolean = true, //Execute action false: cancel automatic return, true: automatic return
var type: AutoBackEnum = AutoBackEnum.HOMEPOINT //Return type 0: Return to home point 1: Return to alternate landing point
)

Output parameter: None

Type: Action

KeySetHomeLocation ​

Description: Home return point setting

Input parameters: None

Output parameter: None

Type: Action

KeyCustomHomeLocation ​

Description: Customize the return point setting

Input parameters:

data class HomeLocation(
/**
* latitude of home location
*/
var latitude: Long = 0,
/**
* length of home location
*/
var longitude: Long = 0,
/**
* height of home location
*/
var height: Long = 0,
/**
* location enum type
*/
var type: LocationTypeEnum=LocationTypeEnum.UNKNOWN
)

Output parameter: None

Type: Action

KeyCustomHomeLocationDouble ​

Description: Customize the return point setting (double type)

Input parameters:

data class HomeLocationDouble(
/**
* latitude of home location
*/
var latitude : Double = 0.0,
/**
* length of home location
*/
var longitude: Double = 0.0,
/**
* height of home location
*/
var height: Double = 0.0,
/**
* location enum type
*/
var type: LocationTypeEnum=LocationTypeEnum.UNKNOWN
)

Output parameter: None

Type: Action

KeyCheckNFZUpload ​

Description: Check whether it is necessary to upload the no-fly zone file

Input parameters:

data class NoFlyQzoneBean(
/**
* Country Code
*/
var countryCode :String? = null,
/**
* No-fly zone file md5
*/
var fileMd5 : String? = null
)

Output parameter: Boolean

Type: Action

KeyEnableNFZ ​

Description: No-fly zone enable

Request parameter: Boolean

Output parameter: None

Type: Action

KeySetAttiTakeOff ​

Description: Attitude mode allows takeoff

Request parameter: Boolean

Output parameter: None

Type: Action

KeyCalibrateIMU ​

Description: IMU calibration

Input parameters: None

Output parameter: None

Type: Action

KeyGetMissionGuid ​

Description: Get the current task GUID

Input parameters: None

Output parameter: String

Type: Action

KeyCancelLowPowerBack ​

Description: Cancel low battery return

Input parameters: None

Output parameter: None

Type: Action

KeySetCompassTakeOff ​

Description: Set the magnetometer to allow takeoff if it is abnormal

Request parameter: Boolean

Output parameter: None

Type: Action

KeySetPortraitMode ​

Description: Set the 4th axis gimbal to portrait mode

Request parameter: Boolean

Output parameter: None

Type: Action

KeyGetCommonParams ​

Description: Get the flight control parameter set

Input parameters: None

Output parameter:

data class DroneCommonParamSetBean(
/**
* Whether RTK is supported
*/
var supportRTK: Boolean = false,
/**
* Whether it is novice mode
*/
var beginMode: Boolean = false,
/**
* Whether it is novice mode
*/
var gearLevel: GearLevelEnum = GearLevelEnum.UNKNOWN,
/**
* Lost connection action
*/
var lostAction: DroneLostActionEnum = DroneLostActionEnum.UNKNOWN,
/**
* Maximum height
*/
var maxHeight: Float = 0f,
/**
* Maximum distance
*/
var maxRange: Float = 0f,
/**
* Return altitude
*/
var backHeight: Float = 0f,
/**
* Low battery warning value
*/
var batLowWarningValue: Int = 0,
/**
* Severe low battery warning value
*/
var batSeriousWarningValue: Int = 0,
/**
* Whether atti is running takeoff (user setting)
*/
var attiAllowFly: Boolean = false,
/**
* Whether to operate takeoff when magnetometer is abnormal (user setting)
*/
var magErrorAllowFly: Boolean = false
)

Type: Action

KeyNestRetractPaddleControl ​

Description: Propeller retraction control

Input parameters: None

Output parameter:

data class NestWaitTimeBean(
/**
*Waiting time
*/
var waitTime: Int = 0,
)

Type: Action

KeySetDronePosition ​

Description: Precise calibration of longitude and latitude settings

Input parameters:

data class DronePositionCorrectionBean(
/**
* Longitude
*/
var lon : Float = 0.0f,
/**
* Latitude
*/
var lat : Float = 0.0f,
)

Output parameter: Int

Type: Action

KeyTakeOffToRallyPoint ​

Description: APP notifies the aircraft to take off and fly to the assembly point and hover

Input parameters:

data class DroneTakeoffToRallyPointBean(
/**
* Assembly point latitude* 1e7
*/
var latitude: Int = 0,
/**
* Assembly point longitude* 1e7
*/
var longitude: Int = 0,
/**
* Relative height of the assembly point* 1e3
*/
var altitude: Int = 0,
/**
* Aircraft heading, Aircraft heading angle* 1e3
*/
var yaw: Int = 0,
/**
* Timestamp of issuing the command
*/
var startTime: Int = 0,
/**
* The time the aircraft is delayed from taking off, unit: s
*/
var offsetTime: Int = 0
)

Output parameter: None

Type: Action

KeyDroneUnlockNtfy ​

Description: Notification of whether the user unlocks the aircraft (unlocks the aircraft with eight inwards or presses the one-touch takeoff button) in cluster mode When the user unlocks the phone/presses the take-off button, the push notification is sent at a fixed frequency (the frequency is not fixed).

Input parameters: None

Output parameter:

data class DroneUnlockNtfyBean(
var isUnlock : Boolean = false
)

Type: Listen

KeySetLeadDrone ​

Description: Cluster attack setting long machine

Request parameter: Boolean

Output parameter: None

Type: Action

KeyDroneEnterDRCMode ​

Description: Enter command flight mode

Input parameters: None

Output parameter: None

Type: Action

KeyDroneExitDRCMode ​

Description: Exit command flight mode

Input parameters: None

Output parameter: None

Type: Action

KeyDroneRemoteControl ​

Description: Remote control aircraft: After entering the command flight mode, the APP controls the aircraft's flight direction and speed through the command. The transmission frequency needs to be kept within 5-10hz so that the device can control the speed change and direction more accurately.

Input parameters:

data class DroneRemoteControlBean(
/**
* Increasing sequence number to ensure the order of instruction execution. If the x, y, h, w parameters change, seq needs to start from 0.
*/
private var seq: Int = 0,

/**
* {"max":17,"min":-17,"unit":"meters per second / m/s"} | Maximum speed in forward and reverse directions, negative values indicate backward movement
*/
private var x: Double = 0.0,

/**
* {"max":17,"min":-17,"unit":"meters per second / m/s"} | Maximum speed in left and right directions, negative values indicate leftward movement
*/
private var y : Double = 0.0,

/**
* {"max":5,"min":-4,"unit":"meters per second / m/s"} | Maximum speed in the up and down directions, negative values indicate downward movement
*/
private var h: Double = 0.0,

/**
* {"max":90,"min":-90,"unit":"radians per second/rad/s"} | Maximum angular velocity in clockwise and counterclockwise directions, negative values indicate counterclockwise rotation
*/
private var w: Double = 0.0

)

Output parameter: None

Type: Action

KeyDroneEmergencyStop ​

Description: App notifies the aircraft to make an emergency stop, and the aircraft will hover in place after the emergency stop

Input parameters: None

Output parameter: None

Type: Action

KeyDroneDRCModeHearBeat ​

Description: App notifies the aircraft to make an emergency stop, and the aircraft will hover in place after the emergency stop

Input parameters:

data class DroneRemoteControlHeartBeatBean(
/**
* Increasing serial number to ensure the order of execution of instructions
*/
private var seq: Int = 0,

/**
* Heartbeat timestamp
*/
private var timestamp: Double = 0.0,

)

Output parameter: None

Type: Action

KeyADS_BReport ​

Description: ADS_B information reporting

Input parameters: None

Output parameter:

data class AdsbReportBean(
var icaoAddress: Int = 0,
var callsign: String = "",
var latitude : Double = 0.0,
var longitude: Double = 0.0,
var altitude: Double = 0.0,
var heading: Double = 0.0,
var horVelocity: Double = 0.0,
var verVelocity: Double = 0.0,
var altitudeType: AdsbAltitudeType = AdsbAltitudeType.ALT_PRESSURE_QNH,
var emitterType: AdsbEmitterType = AdsbEmitterType.EMITTER_NO_INFO,
var tslc: Int = 0,
var flags: AdsbFlags = AdsbFlags.FLAG_INVALID,
var squawk: Int = 0
)

Type: Listen

KeyAirSenseSystemInformation ​

Description: ADS-B information reporting, a specific version that only receives but does not send

Input parameters: None

Output parameter:

data class AdsbReportBean(
var icaoAddress: Int = 0,
var callsign: String = "",
var latitude : Double = 0.0,
var longitude: Double = 0.0,
var altitude: Double = 0.0,
var heading: Double = 0.0,
var horVelocity: Double = 0.0,
var verVelocity: Double = 0.0,
var altitudeType: AdsbAltitudeType = AdsbAltitudeType.ALT_PRESSURE_QNH,
var emitterType: AdsbEmitterType = AdsbEmitterType.EMITTER_NO_INFO,
var tslc: Int = 0,
var flags: AdsbFlags = AdsbFlags.FLAG_INVALID,
var squawk: Int = 0
)

Type: Listen

7. FlightMissionKey ​

KeyEnter ​

Description: Enter waypoint mission

Input parameters: None

Output parameter: None

Type: Action

KeyExit ​

Description: Exit waypoint mission

Input parameters: None

Output parameter: None

Type: Action

KeyStart ​

Description: Start a waypoint mission

Input parameters:

data class MissionWaypointGUIDBean(
/**
* guid data for mission way points
*/
var guid: Int = 0,
var startTime:Int = 0,
var offsetTime: Int = 0
)

Output parameter: Int

Type: Action

KeyPause ​

Description: Pause waypoint mission

Input parameters: None

Output parameter: None

Type: Action

KeyResume ​

Description: Restore waypoint mission

Input parameters:

data class MissionWaypointGUIDBean(
/**
* guid data for mission way points
*/
var guid: Int = 0,
var startTime:Int = 0,
var offsetTime: Int = 0
)

Output parameter: None

Type: Action

KeyStop ​

Description: Stop waypoint mission

Input parameters: None

Output parameter: None

Type: Action

KeyBreakRequest ​

Description: Query waypoint mission breakpoint information

Input parameters:

data class MissionWaypointGUIDBean(
/**
* guid data for mission way points
*/
var guid: Int = 0,
var startTime:Int = 0,
var offsetTime: Int = 0
)

Output parameter:

data class MissionWaypointBreakRspBean(
/**
* Task id
*/
var missionId: Int = 0,
/**
* Execution index
*/
var executeIndex: Int = 0,
/**
* Task Type
*/
var missionType: Int = 0,
/**
* Latitude (precision: 10e-7)
*/
var lat : Double = 0.0,
/**
* Longitude (accuracy: 10e-7)
*/
var lon : Double = 0.0,
/**
* Altitude (accuracy: 10e-3)
*/
var alt: Double = 0.0,
/**
* Query historical task information
*/
var status: MissionQueryStatusEnum = MissionQueryStatusEnum.UNKNOWN,
/**
* Current mission status, see MISSION_CURRENT_STATUS
*/
var executeStatus: MissionCurrentStateEnum = MissionCurrentStateEnum.UNKNOWN
)

Type: Action

KeyStatusReportNtfy ​

Description: Waypoint status information reporting

Input parameters: None

Output parameter:

data class MissionWaypointStatusReportNtfyBean(

/**
* System timestamp; uint: ms
*/
var timestamp: Long = 0L,
/**
* Task ID
*/
var missionId: Int = 0,
/**
* Waypoint number
*/
var wpSeq: Int = 0,
/**
* Remaining distance
*/
var remainDistance: Int = 0,
/**
* Refer to MISSION_TYPE
*/
var missionType: MissionTypeEnum = MissionTypeEnum.UNKNOWN,
/**
* Current number of photos taken
*/
var photoNum: Int = 0,
/**
* Remaining time; uint:s
*/
var remainTime: Int = 0,
/**
* Current mission status, see MISSION_CURRENT_STATUS
*/
var status: MissionCurrentStateEnum = MissionCurrentStateEnum.UNKNOWN,
/**
* Task guid
*/
var guid: Int = 0,
/**
* Current action number
*/
var actionSeq: Int = 0,
/**
* Waypoint arrival status; 0 - arrived; 1 - Not arrived
*/
var arrived: Int = 0,
/**
* Task setting speed; Uint: 10E-3 m/s
* Note: This field is not used, it is used to distinguish between kml tasks and bin tasks
*/
var speedSet: Int = 0,
/**
* Task progress percentage
*/
var percent: Int = 0,
// The type of task currently being executed, 0: unknown, 1: formation, 2: collaborative search
var runTaskType: SwarmMissionTypeEnum = SwarmMissionTypeEnum.UNKNOWN,

// Current task phase
var taskStageIndex: Int = 4
)

Type: Listen

KeyIPMEnter ​

Description: Enter the point of interest flight mission

Input parameters: None

Output parameter: None

Type: Action

KeyIPExit ​

Description: Exit point of interest flight mission

Input parameters: None

Output parameter: None

Type: Action

KeyIPMStart ​

Description: Start a point of interest flight mission

Input parameters:

data class MissionInterestPointStartMsgBean(
/**
* Target latitude (accuracy: 10e-7) or NED coordinate x
*/
var latitude: Int = 0,
/**
* Target longitude (accuracy: 10e-7) or NED coordinate y
*/
var longitude: Int = 0,
/**
* Target relative height (mm) or NED coordinate z
*/
var altitude: Int = 0,
/**
* Point of interest type, see MISSION_INTEREST_POINT_TYPE
*/
var missionType: MissionInterestPointEnum = MissionInterestPointEnum.UNKNOWN,
/**
* Flight speed (mm/s)
*/
var speed: Int = 0,
/**
* Circling radius (mm)
*/
var radius: Int = 0,
/**
* Request id, the caller needs to ensure that it is unique, generally using the point of interest id
*/
var reqId: Int = 0 //Request ID, the caller needs to ensure that it is unique, usually using the point of interest ID
)

Output parameter: None

Type: Action

KeyIPMStop ​

Description: Stop the flight mission at the point of interest

Input parameters: None

Output parameter: None

Type: Action

KeyIPMStatusReport ​

Description: Report flight status information of points of interest

Input parameters: None

Output parameter:

data class MissionInterestPointStatusReportNtfyBean(
/**
* System timestamp; uint: ms
*/
var timestamp: Long = 0,
/**
* Task ID
*/
var missionId: Int = 0,
/**
* Remaining distance
*/
var remainDistance: Int = 0,
/**
* Refer to MISSION_TYPE
*/
var missionType: MissionInterestPointEnum = MissionInterestPointEnum.UNKNOWN,
/**
* Task progress percentage
*/
var percent: Int = 0,
/**
* Current mission status, see MISSION_CURRENT_STATUS
*/
var status: MissionCurrentStateEnum = MissionCurrentStateEnum.UNKNOWN
)

Type: Listen

KeyIPMInfoReport ​

Description: User image transmission result notification message

KeyIPMCreatePoint ​

Description: Point of interest image transmission and marking

Input parameters: None

Output parameter:

data class MissionInterestPointCreatePointMsgBean(
/**
* Starting point x coordinate
*/
var startX: Float = 0F,
/**
* Starting point y coordinate
*/
var startY: Float = 0F,
/**
* Width
*/
var width: Float = 0F,
/**
* high
*/
var height: Float = 0F
)

Type: Listen, Action

KeyMissionOneClickStop ​

Description: One-key emergency stop

Input parameters: None

Output parameter: None

Type: Action

KeyAccidentEnterMode ​

Description: Enter the traffic quick processing task

Input parameters: None

Output parameter: None

Type: Action

KeyAccidentExitMode ​

Description: Exit the traffic quick processing task

Input parameters: None

Output parameter: None

Type: Action

KeyAccidentStartWorkArea ​

Description: Start traffic quick processing task processing: Start traffic quick processing task and issue the task execution work area

Input parameters:

data class MissionAccidentsStartBean(
var lat: Double = 0.0, // latitude (lat * 1e7)

var lon: Double = 0.0, // longitude (lon * 1e7)

var alt: Float = 0.0f, // altitude (alt * 1e3)

var height: Int = 0, //Relative height (m)

var speed: Int = 0 //Flight speed (m/s)
)

Output parameter: None

Type: Action

KeyAccidentStartProcess ​

Description: Start traffic quick handling task processing: Process traffic quick handling tasks and send them to the selected task area

Input parameters:

data class MissionAccidentsDealBean(
var startPx: Int = 1, //x-axis coordinate of the upper left corner of the scene to be processed (pixel value)
var startPy: Int = 2, //y-axis coordinate of the upper left corner of the scene to be processed
var targetW: Int = 3, //The percentage of the width of the scene to be processed to the width of the screen (pixel value ratio, value 1-99)
var targetH: Int = 4, //The percentage of the height of the scene to be processed to the height of the screen (pixel value ratio, value 1-99)
)

Output parameter: None

Type: Action

KeyAccidentPauseProcess ​

Description: Suspend traffic quick handling task processing

Input parameters: None

Output parameter: None

Type: Action

KeyAccidentContinueProcess ​

Description: Continue to process traffic express tasks

Input parameters: None

Output parameter: None

Type: Action

KeyManualFormatEnter ​

Description: None

Input parameters:

data class MissionManualParamsBean(
val formationType: Int = FormationType.Type_C.value,
val params: List<Int> = arrayListOf()
)

Output parameter: None

Type: Action

KeyManualFormatExit ​

Description: None

Input parameters: None

Output parameter: None

Type: Action

KeyManualFormatParamsChange ​

Description: None

Input parameters:

data class MissionManualParamsBean(
val formationType: Int = FormationType.Type_C.value,
val params: List<Int> = arrayListOf()
)

Output parameter: None

Type: Action

8. FlightPropertyKey ​

KeyBeginMode ​

Description: Novice mode

Input parameters:

enum class OperatorModeEnum(var value: Int = 0) {

/**
* Professional Mode
*/
PROFESSIONAL(0),

/**
* Novice Mode
*/
NEW_HAND(1),

/**
* Unknown
*/
UNKNOWN(0XFF);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyMaxHeight ​

Description: Maximum flight altitude setting/getting

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyMaxRadius ​

Description: Maximum flight radius setting/getting

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyMaxHorizontalSpeed ​

Description: Maximum horizontal flight speed

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyMaxAscentSpeed ​

Description: Maximum ascent speed

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyDescentSpeed ​

Description: Maximum descent flight speed

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyMissionManagerBackHeight ​

Description: Set/get the return altitude

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyBackHSpeed ​

Description: Return horizontal speed

KeyBackVSpeed ​

Description: Return vertical speed

Request parameter: Float

Output parameter: None

Type: Get

KeyBuzzingStatus ​

Description: Buzzer status (find aircraft)

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyAttiMode ​

Description: ATTI mode

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyYawAngleSensitivity ​

Description: EXP left turn right turn setting/getting

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyPitchSensitivity ​

Description: EXP forward and backward setting/getting

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyRollSensitivity ​

Description: EXP left and right settings to obtain

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyThrustSensitivity ​

Description: EXP increase and decrease setting/acquisition

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyAttitudeSensitivity ​

Description: Sensitivity attitude setting/getting

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyBrakeSensitivity ​

Description: Brake sensitivity setting/getting

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyYawTripSensitivity ​

Description: Sensitivity yaw stroke setting/getting

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyBatteryLowWarning ​

Description: Low battery warning

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyBatSeriousLowWarning ​

Description: 7.18 Battery critical low power warning

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyLowBatLowBack ​

Description: Low battery return

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyLowBatLowBackInt ​

Description: Low battery return Remarks:

  • 0 means no action.
  • 1 means return home.
  • 2 means landing in place.
  • 3 means continue the task.
  • It is recommended to keep the default value or set it to the value corresponding to "Battery Low Power Setting".

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyRCLostAction ​

Description: Aircraft lost contact behavior

Input parameters:

enum class DroneLostActionEnum(val value: Int) {

/**
* Unknown
*/
UNKNOWN(0),

/**
* Lost contact and returned
*/
BACK(1),

/**
* Lost contact and hovering
*/
HOVER(2),

/**
* Lost contact landing
*/
LANDING(3),

/**
* New: Climb 1200 meters
*/
CLIMB_1000M(4);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyGearLever ​

Description: Aircraft gear setting/getting

Input parameters:


Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyCoordinatedTurn ​

Description: Coordinated turning

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyLocationStatus ​

Description: Fusion vision positioning switch

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyFcsApasModeEn ​

Description: Obstacle bypass function switch

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeySilentModeStatus ​

Description: Silent mode status switch

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyFCSEnSuperCap ​

Description: Supercapacitor switch status

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyFcsEnGpsMode ​

Description: GPS flight switch

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyFcsSwitchGpsMode ​

Description: GPS working mode

Input parameters:


Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

9. GimbalKey ​

KeyHeatBeat ​

Description: PTZ reporting parameters

Input parameters: None

Output parameter:

data class DroneGimbalStateBean(
/**
* Whether the gimbal attitude has been initialized
*/
var isAttitudeValid: Boolean = false,
/**
* Return to PTZ working mode
*/
var workMode: GimbalWorkModeEnum = GimbalWorkModeEnum.UNKNOWN,
/**
* Returns whether the gimbal is currently being calibrated
*/
var isCalibrating: Boolean = false,
/**
* Motor status
*/
var motorStatus: GimbalMotorStatus = GimbalMotorStatus.NONE,
/**
* Indicates whether the gimbal roll axis hits the limit
*/
var isRollReachMax: Boolean = false,
/**
* Is the gimbal overheated?
*/
var isOverheat: Boolean = false,
/**
* Does the gimbal need IMU calibration?
*/
var isIMUNeedCalibrate: Boolean = false,
/**
* Four-axis gimbal rotate axis angle value
*/
var rotateAngle: Float = 0f,
/**
* Angular velocity value of the four-axis gimbal rotate axis
*/
var rotateAngleRange: Float = 0f,
/**
* The gimbal has a hardware failure
*/
var isHardwareFail: Boolean = false,
/**
* Is the gimbal in sleep mode due to not receiving flight control attitude data?
*/
var isSleepForNoAttitude: Boolean = false,
/**
* Whether the gimbal enters sleep mode due to reaching the Roll axis limit
*/
var isSleepForRollReachMax: Boolean = false,
/**
* Indicates the current angle calibration status of the gimbal
*/
var gimbalCalibrateStatus: Int = 0,
/**
* Indicates the current angle calibration percentage of the gimbal (0-100)
*/
var gimbalCalibratePercent: Int = 0

)

Type: Listen

KeyRollAdjustAngle ​

Description: Gimbal ROLL axis fine-tuning angle

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyPitchAngleRange ​

Description: Gimbal PITCH axis fine-tuning angle

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyYawAdjustAngle ​

Description: Gimbal YAW axis fine-tuning angle

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyStartIMUCalibration ​

Description: Enable gimbal IMU calibration

Input parameters: None

Output parameter: None

Type: Action

KeyStartCalibration ​

Description: Enable gimbal calibration

Input parameters: None

Output parameter: None

Type: Action

KeyRotateFouraxisAngle ​

Description: Rotating four-axis gimbal

Input parameters:

data class RotateFourAxisParamsBean(
/**
* Rotation speed
*/
var rotateSpeed: Int = 0,
/**
* Rotation direction, +: clockwise; -: anti-clockwise
*/
var rotateDirection: Int = 0,
/**
* Rotation, Each time set to 1; will be set to 0 after 0.05s
*/
var rotate: Int = 0
)

Output parameter: None

Type: Action

KeyWorkMode ​

Description: PTZ working mode 1: Posture lock mode 2: Yaw axis follows the aircraft, Roll and Pitch are locked 3: FPV first person perspective 4: Panorama

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyPitchAngelRange ​

Description: PTZ pitch limit switch

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyPitchSpeed ​

Description: PTZ pitch speed

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyAngleControl ​

Description: PTZ angle control (radian)

Request parameter: Float

Output parameter: None

Type: Action

KeyAngleDegreeControl ​

Description: PTZ angle control (degrees)

Request parameter: Float

Output parameter: None

Type: Action

KeyOrientationControl ​

Description: PTZ direction control (downward control, PTZ return to center)

Input parameters:

enum class GimbalOrientationEnum(var value: Float) {
/**
* Downward control
*/
DOWN(-(Math.PI / 2).toFloat()),

/**
* 45 degrees downward
*/
DOWN_45(-(Math.PI / 4).toFloat()),

/**
* Yuntai returns to the center
*/
FORWARD(0f);

}

Output parameter: None

Type: Action

KeyLaserRangingSwitch ​

Description: PTZ laser ranging switch true on false off

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyGimbalAngleSpeedCmd ​

Description: Gimbal setting angular velocity (common with Arowana)

Input parameters:

data class GimbalAngleSpeedBean(
var pitchSpeed: Float = 0.0f, // pitch angular speed
var rollSpeed: Float = 0.0f, //Rolling angular velocity
var yawSpeed: Float = 0.0f // yaw angular velocity
)

Output parameter: None

Type: Action

KeyGimbalAngleSpeedReport ​

Description: Gimbal setting gimbal angular velocity (common with Arowana): suitable for continuous calls, no retry logic

Input parameters:

data class GimbalAngleSpeedBean(
var pitchSpeed: Float = 0.0f, // pitch angular speed
var rollSpeed: Float = 0.0f, //Rolling angular velocity
var yawSpeed: Float = 0.0f // yaw angular velocity
)

Output parameter: None

Type: Report

10. MissionManagerKey ​

KeyRadarFusion ​

Description: Radar data fusion switch false-turn off radar data fusion true-turn on radar data fusion

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyPreciseLand ​

Description: Precision landing switch false-turn off QR code precision landing true-turn on QR code precision landing

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyReturnObsEnable ​

Description: Enable return obstacle avoidance false-disable return obstacle avoidance true-enable return obstacle avoidance

KeyDroneRunningMode ​

Description: Aircraft operation mode, 1 means Nanfang Aircraft Nest, 2 means U Aircraft Nest 0: Remote controller manual flight mode 3 Mobile hangar simple hangar

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyDoneTakeOffHeight ​

Description: Aircraft take-off altitude, unit: meter

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyExitPrecisionLand ​

Description: Exit precision reduction

Input parameters: None

Output parameter: None

Type: Action

KeyEnableLandingProtection ​

Description: Whether to enable landing protection

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyIgnoreLandRisk ​

Description: 0: Cancel the current landing. The user can manually control the aircraft to move to a safe position and then land. 2: Ignore the risk and force a landing

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyMissionTakeoffHeight ​

Description: Power grid automatic mission take-off height

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyBackHSpeed ​

Description: Return horizontal speed

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyBackVSpeed ​

Description: Return vertical speed

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyEnableInterLowReturn ​

Description: Intelligent low-battery return, enable switch

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyEnableReturnHomeFollowWaypoints ​

Description: Return to the original route

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyOrbitModelingEnterMsg ​

Description: Enter modeling surround mode

Input parameters: None

Output parameter: None

Type: Action

KeyOrbitModelingStartMsg ​

Description: Start modeling surround mode

Input parameters:

data class MissionOrbitModelingSettingMsgBean(
val radius:Int,
val height:Int,
val speed:Int,
val dir:Int
)

Output parameter: None

Type: Action

KeyOrbitModelingPauseMsg ​

Description: Pause modeling surround mode

Input parameters: None

Output parameter: None

Type: Action

KeyOrbitModelingExitMsg ​

Description: Exit modeling surround mode

Input parameters: None

Output parameter: None

Type: Action

KeyOrbitModelingContinueMsg ​

Description: Continue to model surround mode parameters

Input parameters: None

Output parameter: None

Type: Action

KeyFcsTmpDisarmAir ​

Description: Emergency propeller stop

KeyFcsSSCustomMode ​

Description: ss scene customization mode

Input parameters:

enum class FcsCustomModeEnum(val value: Int) {
//Normal mode
NORMAL(0),
//Customized mode, low battery will not return, lost contact, the plane will rise to 1200 meters and automatically fall after the battery is exhausted
CUSTOM(1);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyDiagonalMoveEn ​

Description: Power grid route flight mode setting (waypoint process) During the waypoint process, whether to fly obliquely 0 invalid 1 effective

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyGoStartDiagonalEn ​

Description: Grid route flight mode setting (whether to fly obliquely from the take-off point to the first waypoint) 0 Invalid 1 Valid

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyDroneWorkEnv ​

Description: The scene mode of the drone operation. The scene mode of the drone operation, NORMAL (0) normal mode, SUBSTATION (1) substation mode, the default is NORMAL (0) normal mode

Input parameters:

enum class DroneWorkSceneModeEnum(val value: Int) {
NORMAL(0), // Normal mode
SUBSTATION(1) // Substation mode
}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyStartHorSpeed ​

Description: Speed to the first waypoint, unit: m/s, default: 10m/s

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyHotAreaEnable ​

Description: Hotspot area function switch

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

11. NestKey ​

KeyNestCabinControl ​

Description: Door control

Input parameters:

data class NestControlBean(
/**
*1-Automatic 2-Jog 3-Stop 21930-General Instructions
*/
var nestType: Int = 0,
/**
*1-Open door 2-Close door 1-Charge on 2-Charge off
*/
var nestAction: Int = 0,
)

Output parameter: None

Type: Action

KeyNestXRodControl ​

Description: X-bar control

Input parameters:

data class NestControlBean(
/**
*1-Automatic 2-Jog 3-Stop 21930-General Instructions
*/
var nestType: Int = 0,
/**
*1-Open door 2-Close door 1-Charge on 2-Charge off
*/
var nestAction: Int = 0,
)

Output parameter: None

Type: Action

KeyNestYRodControl ​

Description: Y-rod control

Input parameters:

data class NestControlBean(
/**
*1-Automatic 2-Jog 3-Stop 21930-General Instructions
*/
var nestType: Int = 0,
/**
*1-Open door 2-Close door 1-Charge on 2-Charge off
*/
var nestAction: Int = 0,
)

Output parameter: None

Type: Action

KeyNestZRodControl ​

Description: Z rod control

Input parameters:

data class NestControlBean(
/**
*1-Automatic 2-Jog 3-Stop 21930-General Instructions
*/
var nestType: Int = 0,
/**
*1-Open door 2-Close door 1-Charge on 2-Charge off
*/
var nestAction: Int = 0,
)

Output parameter: None

Type: Action

KeyNestChargeControl ​

Description: Drone charging

Input parameters:

data class NestControlBean(
/**
*1-Automatic 2-Jog 3-Stop 21930-General Instructions
*/
var nestType: Int = 0,
/**
*1-Open door 2-Close door 1-Charge on 2-Charge off
*/
var nestAction: Int = 0,
)

Output parameter: None

Type: Action

KeyNestBackupBatteryControl ​

Description: Machine nest backup battery switch

Input parameters:

data class NestControlBean(
/**
*1-Automatic 2-Jog 3-Stop 21930-General Instructions
*/
var nestType: Int = 0,
/**
*1-Open door 2-Close door 1-Charge on 2-Charge off
*/
var nestAction: Int = 0,
)

Output parameter: None

Type: Action

KeyNestReset ​

Description: Machine nest reset

Input parameters:

data class NestResetBean(
/**
* General instructions
*/
var nestType: Int = 0,
)

Output parameter: None

Type: Action

KeyNestCalibrateteOperate ​

Description: Calibration operation instructions

Input parameters:

data class NestCalibrationOperateBean(
/**
* General instructions
*/
var nestType: Int = 0,
/**
*1-Calibration started 2-Calibration completed
*/
var nestAction: Int = 0,
)

Output parameter: None

Type: Action

KeyNestSignalCalibrate ​

Description: Single-step calibration operation

Input parameters:

data class NestSignalCalibrateBean(
/**
* General instructions
*/
var nestType: Int = 0,
/**
*Machine nest parts 1-x rod, 2-y rod, 3-door, 4-right rear servo, 5-right front servo, 6-left rear servo, 7-left front servo
*/
var nestComponents: Int = 0,
/**
*Calibration direction 1- Forward calibration 2- Reverse calibration
*/
var direction: Int = 0,
)

Output parameter: None

Type: Action

KeyNestSystemConfig ​

Description: Machine nest system configuration

Input parameters:

data class NestSystemConfigBean(
/**
* General instructions
*/
var nestType: Int = 0,
/**
*Air conditioning automatic start threshold, unit: ℃
*/
var airOpenLimit: Int = 0,
/**
*Unix time, little endian format
*/
var unixTime: Int = 0,
/**
*Self-discharge time threshold (1~5 hours)
*/
var autoDischarge: Int = 0,
/**
*Automatic power replenishment threshold (50%~70%)
*/
var autoCharge: Int = 0,
/**
*Air conditioning automatic shutdown threshold, unit: ℃
*/
var airCloseLimit: Int = 0,
)

Output parameter: None

Type: Action

KeyNestTurnOnoff ​

Description: Drone power on and off

Input parameters:

data class NestTurnOnoffBean(
/**
* General instructions
*/
var nestType: Int = 0,
/**
*1- Power on 2- Power off
*/
var nestAction: Int = 0,
)

Output parameter: None

Type: Action

KeyNestACControl ​

Description: Air conditioning switch control

Input parameters:

data class NestControlBean(
/**
*1-Automatic 2-Jog 3-Stop 21930-General Instructions
*/
var nestType: Int = 0,
/**
*1-Open door 2-Close door 1-Charge on 2-Charge off
*/
var nestAction: Int = 0,
)

Output parameter: Int

Type: Action

KeyNestScramControl ​

Description: Emergency stop control

Input parameters:

data class NestScramControlBean(
/**
* General instructions
*/
var nestType: Int = 0,
/**
*1- Emergency stop 2- Emergency stop release
*/
var nestAction: Int = 0,
)

Output parameter: None

Type: Action

KeyNestAutoCommand ​

Description: Automatic command

Input parameters:

data class NestAutoCommandBean(
/**
* General instructions
*/
var nestType: Int = 0,
/**
*1- One-key standby flight 2- One-key standby landing 3- Terminate the current automatic command and exit the automatic mode 4- Self-test
*/
var nestAction: Int = 0,
)

Output parameter: None

Type: Action

KeyNestMotorToZero ​

Description: Motor returns to zero position

Input parameters:

data class NestMotorZeroBean(
/**
* General instructions
*/
var nestType: Int = 0,
/**
*0: Door zero 1: Position zero 2: Charging zero
*/
var nestAction: Int = 0,
)

Output parameter: None

Type: Action

KeyNestWaitTimeInfo ​

Description: App returns waiting time

Input parameters:

data class NestWaitTimeBean(
/**
*Waiting time
*/
var waitTime: Int = 0,
)

Output parameter: None

Type: Action

KeyNestVirturalPoleStateUpload ​

Description: Report virtual joystick status

Input parameters:

data class NestVirtualPoleStatusBean(
/**
* Left joystick horizontal direction value
*/
var leftHorizontalValue: Int = 1024,
/**
*Left joystick vertical direction value
*/
var leftVerticalValue: Int = 1024,
/**
* The horizontal direction value of the right joystick
*/
var rightHorizontalValue: Int = 1024,
/**
*Right joystick vertical direction value
*/
var rightVerticalValue: Int = 1024,
/**
* PTZ pitch
*/
var gimbalPitch: Int = 1024,
/**
*Key 359: invalid, 625: stop mission, 891: one-key takeoff and landing, 1157: return, 1423: hover, 1689: custom
*/
var generalKey: Int = 359,
/**
*Combination key 329: invalid, 625: compass calibration
*/
var combinedKey: Int = 329,
)

Output parameter: None

Type: Report

KeyRCModeSwitch ​

Description: Remote control mode switching

Input parameters:

data class RcModeSwitchBean(
/**
* Device access default -1
*/
var messageType: Int = 1,
/**
* The default parameter length is -1
*/
var paramsLength: Int = 1,
/**
* action type for remote controller mode
*/
var actionType: Int = 1

)

Output parameter:

data class RcModeSwitchBean(
/**
* Device access default -1
*/
var messageType: Int = 1,
/**
* The default parameter length is -1
*/
var paramsLength: Int = 1,
/**
* action type for remote controller mode
*/
var actionType: Int = 1

)

Type: Action

KeyNestControlPageHeartBeat ​

Description: Heartbeat report on the machine nest control page

Input parameters: None

Output parameter: None

Type: Report

KeyNestStatusInfo ​

Description: Machine nest status information notification

Input parameters: None

Output parameter:

data class NestStatusInfoBean(
/**
*Power module status
*/
var power: PowerStatus? = null,
/**
* Drone status
*/
var uav: BatteryStatus? = null,
/**
*Charging module status
*/
var chg0: ChargeStatus? = null,
/**
*Charging module status
*/
var chg1: ChargeStatus? = null,
/**
* Backup battery status
*/
var bat_stby: BatteryStandbyStatus? = null,
/**
* Motor board status
*/
var motor: MotorStatus? = null,
/**
* Temperature and humidity conditions
*/
var temp0: TemperatureStatus? = null,
/**
* Temperature and humidity conditions
*/
var temp1: TemperatureStatus? = null,
/**
* Weather station status
*/
var atmos: AtmosStatus? = null,
/**
* Vibrator status
*/
var mpu: MpuStatus? = null,
/**
*Water sensor status
*/
var water: WaterStatus? = null,
/**
*Semiconductor air conditioning status
*/
var tec: TecStatus? = null,
/**
*Indicator status
*/
var led: LedStatus? = null,
/**
*System mode information
*/
var sys_mode: SystemMode? = null,
/**
*Fan status
*/
var fan_status: FanStatus? = null,

)

Type: Listen

KeyNestBatteryDynamicStatus ​

Description: Battery dynamic information notification

Input parameters: None

Output parameter:

data class NestBatteryDynamicStatusBean(
/**
*Communication status
*/
var status: Int = 0,
/**
* Security status information
*/
var safe_status: Int = 0,
/**
*Current total voltage, in mV
*/
var voltage: Int = 0,
/**
*Current total current, unit: mA
*/
var current: Int = 0,
/**
*Battery remaining capacity, unit: mAh
*/
var remain_cap: Int = 0,
/**
*Battery full charge capacity, unit: mAh
*/
var full_cap : Int = 0,
/**
*Battery temperature, unit 0.1 degrees Celsius
*/
var temperature: Int = 0,
/**
*Battery Cell
*/
var cell_vol: List<Int>? = null,
/**
*Remaining battery percentage, range 0-100
*/
var rsoc : Int = 0,
/**
*Number of cells
*/
var cell_num: Int = 0,
/**
* Remaining charging time
*/
var remain_time: Int = 0,
)

Type: Listen

KeyNestBackupBatteryStatus ​

Description: Machine Nest backup battery information notification

Input parameters: None

Output parameter:

data class NestBackupBatteryStatusBean(
/**
*Current total voltage, in mV
*/
var voltage: Int = 0,
/**
*Current total current, unit: mA
*/
var current: Int = 0,
/**
*Battery remaining capacity, unit: mAh
*/
var remain_cap: Int = 0,
/**
*Number of cells
*/
var rsoc : Int = 0,
/**
*Battery design capacity
*/
var cell_num: Int = 0,
/**
* design cap
*/
var design_cap: Int = 0,
/**
* Cycle count
*/
var cycle_cnt: Int = 0,
/**
* date about manus
*/
var manus_date: Int = 0,
/**
* balance status length
*/
var balance_sta_l: Int = 0,
/**
* balance status height
*/
var balance_sta_h: Int = 0,
/**
* protect status
*/
var protect_stat: Int = 0,
/**
* software version
*/
var soft_ver: Int = 0,
/**
* fet status
*/
var fet_sta: Int = 0,
/**
* ntc status of bit value
*/
var ntc_num: Int = 0,
/**
*temperature
*/
var temperature: List<Int>? = null,
/**
* bat cell voltage
*/
var bat_cell_voltage: List<Int>? = null,
/**
* Backup battery charge status
*/
var fetStaCharge:Int?=0,
/**
* Backup battery discharge status
*/
var fetStaDisCharge:Int?=0
)

Type: Listen

KeyNestSystemSelfCheck ​

Description: Machine nest system self-check message notification

Input parameters: None

Output parameter:

data class NestSystemSelfCheckBean(
/**
*Self-test results of machine nest components
*/
var nest_result: Int = 0,
/**
*Fan self-test results
*/
var fan_result: Int = 0,
/**
*Self-test flag 0-Not started 1-Self-test in progress Self-test completed
*/
var self_check: Int = 0,
)

Type: Listen

KeyNestAutoCommandFinish ​

Description: Automatic command completion notification

Input parameters: None

Output parameter:

data class NestAutoCommandFinishBean(
/**
*Automatic command type 0x3001: One-key standby command 0x3002: One-key standby command
*/
var autoCommandType: Int = 0,
/**
*0 success 1 failure
*/
var errorCode: Int = 0,
)

Type: Listen

KeyNestTransmitHeartBeat ​

Description: Image transmission heartbeat notification

Input parameters: None

Output parameter:

data class NestTransmitBeatBean(
/**
*Image transmission temperature, ℃
*/
var temprature: Int = 0,
/**
* Flight mode, 0xFFFF means no aircraft
*/
var flightmode: Int = 0,
/**
*UNIX time, little endian format
*/
var timestamp: Int = 0,
/**
* Command center connection status, 1-online, 0-offline
*/
var nettyConnectStatus: Int = 0,
/**
*Internal APP connection status, 1-online, 0-offline
*/
var appConnectStatus: Int = 0,
)

Type: Listen

KeyNestZRodReadyStatus ​

Description: Z-bar ready status notification

Input parameters: None

Output parameter: None

Type: Listen

KeyNestBatteryStaticStatus ​

Description: Battery static information notification

Input parameters: None

Output parameter:

data class NestBatteryStaticStatusBean(
/**
* app version code
*/
var app_ver: Int = 0,
/**
* boot version code
*/
var boot_ver: Int = 0,
/**
* Hardware version code
*/
var hw_ver: Int = 0,
/**
* design cap code
*/
var design_cap: Int = 0,
/**
* Cycle count
*/
var cyc_cnt: Int = 0,
/**
* soh
*/
var soh: Int = 0,
/**
* sn list of integers
*/
var sn: List<Int>? = null,

)

Type: Listen

KeyNestMotorDriveStateNtfy ​

Description: Motor driver board status reporting

Input parameters: None

Output parameter:

data class NestMotorDriverStatusBean(
/**
* door status of nest
*/
var door_status: Int = 0,
/**
*
*/
var door_angle: Int = 0,
/**
* Door limit software status
*/
var door_limit_sw_status: Int = 0,
/**
* x bar status
*/
var xbar_status: Int = 0,
/**
* x bar angle value
*/
var xbar_angle: Int = 0,
/**
* x bar limit software status
*/
var xbar_limit_sw_status: Int = 0,
/**
* y bar status
*/
var ybar_status: Int = 0,
/**
* y bar angle
*/
var ybar_angle: Int = 0,
/**
* y bar limit software status
*/
var ybar_limit_sw_status: Int = 0,
/**
* z bar status
*/
var zbar_status: Int = 0,
/**
* z bar angle
*/
var zbar_angle: Int = 0,
/**
* z bar limit software status
*/
var zbar_limit_sw_status: Int = 0,
)

Type: Listen

KeyNestSystemInfoNtfy ​

Description: Reporting of machine nest system information

Input parameters: None

Output parameter:

data class NestSystemInfoBean(
/**
* working status 1
*/
var work_status1: Int = 0,
/**
* working status 2
*/
var work_status2: Int = 0,
/**
* device type
*/
var device_type: Int = 0,
/**
* work mode defines
*/
var work_mode: Int = 0,
/**
* CPU usage value
*/
var cpu_usage: Int = 0,
/**
* memory usage value
*/
var mem_usage: Int = 0,
/**
* CPU temperature value
*/
var cpu_temp : Int = 0
)

Type: Listen

KeyNestRTKInfoNtfy ​

Description: Report local RTK information on the machine nest

Input parameters: None

Output parameter:

class NestRtkStatusNotifyBean {
/**
* uint32_t fix_status; //Single point positioning result
0 -- SOL_COMPUTED, solved
1 -- INSUFFICIENT_OBS, insufficient observation data
2 -- NO_CONVERGENCE, no convergence
4 -- COV_TRACE, the trace of the covariance matrix exceeds the maximum value
3--INVALID_FIX
*/
var fixStatus: Int = 3 //fix status
var latitude: Double = 0.0 // longitude
var longitude: Double = 0.0 // latitude
var altitude: Double = 0.0 // altitude
var setLatitude: Double = 0.0 //Set longitude
var setLongitude: Double = 0.0 //Set latitude
var setAltitude: Double = 0.0 //Set the height
var workMode = 0 //Working mode 0. Self-positioning mode, 1. Setting coordinate mode (parameters longitude, latitude, altitude), 2. Mobile mode, 3. Mobile station mode
var rtcmIsValid = false //RTCM parsing status - is the data valid?
var rtcmSwitch = false //RTCM switch
var rtkDebug = false //Whether to enable debugging
}

Type: Listen

KeyNestWarning ​

Description: Alarm notification

Input parameters: None

Output parameter: List<WarningAtom>

data class WarningAtom(

/**
* Component Type
*/
var componentType: DroneComponentEnum = DroneComponentEnum.UNKNOWN,

/**
* Component ID
*/
var componentId: DroneComponentIdEnum = DroneComponentIdEnum.NONE,

/**
* Alarm ID
*/
var warningId: WaringIdEnum = WaringIdEnum.UNKNOWN,
)

Type: Listen

KeyNestRtkOnOffMsg ​

Description: RTK RTCM switch

Input parameters:

class NestRtkSwitch {
var rtkSwitch = false
}

Output parameter: None

Type: Action

KeyNestRtkModeMsg ​

Description: Machine Nest RTK Set RTK mode

Input parameters:

class NestRtkModeCommand {
var workMode = 0 //Working mode 0. Self-positioning mode, 1. Setting coordinate mode (parameters longitude, latitude, altitude), 2. Mobile mode, 3. Mobile station mode

var latitude = 0.0 // longitude

var longitude = 0.0 // latitude

var altitude = 0.0 //Altitude
}

Output parameter: None

Type: Action

KeyNestFineDropReadyMsg ​

Description: Notification of machine nest precision landing readiness

Input parameters:

class FineDropReadyBean {
var fineDropReady = false
}

Output parameter: None

Type: Action

KeyNestWatchDogMsg ​

Description: Machine nest watchdog control command

Input parameters:

data class WatchDogBean(
var command: Int = 1,
var overtime: Int = 15,
var mode: Int = 1
)

Output parameter: Int

Type: Action

KeyNestExternalPowerSwitchMsg ​

Description: Direct power supply from the machine nest

Input parameters:

data class WatchDogBean(
var command: Int = 1,
var overtime: Int = 15,
var mode: Int = 1
)

Output parameter: Int

Type: Action

KeyNestSetAntennaeMode ​

Description: Set the antenna mode of the machine nest

Input parameters:

data class NestAntennaeModeSwitchMsgBean(
val mode: AntennaeIOMode
)
enum class AntennaeIOMode(val value: Int) {
UNKNOWN(0),
SISO(1), // single input single output
MIMO_2(2), // Multiple Input Multiple Output 2X2
MIMO_4(3), // Multiple Input Multiple Output 4X4
MIMO_8(4) // Multiple Input Multiple Output 8X8
}

Output parameter: None

Type: Action

KeyNestGetAntennaeMode ​

Description: Get the current antenna mode of the machine nest

Input parameters: None

Output parameter:

data class NestAntennaeModeSwitchMsgBean(
val mode: AntennaeIOMode
)

Type: Action

KeyNestFillLightSwitch ​

Description: Fill light switch control message

Input parameters:

data class NestCommonSwitchMsgBean(
val command: Int // 1: open, 2: close
)

Output parameter: None

Type: Action

KeyNestGetApiType ​

Description: Get the API type of the machine nest

Input parameters: None

Output parameter:

data class NestApiTypeBean(
val apiType: NestApiType // 1:Autel, 2: CSG
)
enum class NestApiType(val apiType: Int) {
Autel(1),
CSG(2),
UNKNOWN(0)
}

Type: Action

KeyNestGetMaintenanceStatistics ​

Description: Get maintenance statistics

Input parameters: None

Output parameter:

data class NestMaintenanceStatisticsBean(
val activateStatus: Int, //0: not activated, 1: activated
val activateTimeStamp: Long, //activation timestamp, milliseconds
val totalRoutineMaintainCount: Int, // Total number of routine maintenance
val totalDeepMaintainCount: Int, // total number of deep maintenance
val totalTaskCount: Int, // total number of tasks
val finalRoutineMaintainTimeStamp: Long, //Time stamp of the last routine maintenance, milliseconds
val finalRoutineMaintainTotalTaskCount: Int, //Number of tasks during the last routine maintenance
val finalDeepMaintainTimeStamp: Long, // The last deep maintenance timestamp, milliseconds
val finalDeepMaintainTotalTaskCount: Int, //Number of tasks during the last deep maintenance
)

Type: Action

KeyNestSetMaintenanceStatistics ​

Description: Set maintenance statistics

Input parameters:

data class NestMaintenanceStatisticsBean(
val activateStatus: Int, //0: not activated, 1: activated
val activateTimeStamp: Long, //activation timestamp, milliseconds
val totalRoutineMaintainCount: Int, // Total number of routine maintenance
val totalDeepMaintainCount: Int, // total number of deep maintenance
val totalTaskCount: Int, // total number of tasks
val finalRoutineMaintainTimeStamp: Long, //Time stamp of the last routine maintenance, milliseconds
val finalRoutineMaintainTotalTaskCount: Int, //Number of tasks during the last routine maintenance
val finalDeepMaintainTimeStamp: Long, // The last deep maintenance timestamp, milliseconds
val finalDeepMaintainTotalTaskCount: Int, //Number of tasks during the last deep maintenance
)

Output parameter: None

Type: Action

KeyNestGetMaintenanceRecordList ​

Description: Get the maintenance record list

Input parameters: None

Output parameter:

data class NestMaintenanceRecordListBean(
val nestMaintenanceRecord: List<NestMaintenanceRecordBean>?
)
data class NestMaintenanceRecordBean(
val maintainTimeStamp: Long, // Maintenance timestamp, millimeter
val maintainType: MaintainTypeEnum //Maintenance type 1: regular maintenance, 2: deep maintenance
)

Type: Action

KeyNestSetMaintenanceRecordList ​

Description: Add maintenance record

Input parameters:

data class NestMaintenanceStatisticsBean(
val activateStatus: Int, //0: not activated, 1: activated
val activateTimeStamp: Long, //activation timestamp, milliseconds
val totalRoutineMaintainCount: Int, // Total number of routine maintenance
val totalDeepMaintainCount: Int, // total number of deep maintenance
val totalTaskCount: Int, // total number of tasks
val finalRoutineMaintainTimeStamp: Long, //Time stamp of the last routine maintenance, milliseconds
val finalRoutineMaintainTotalTaskCount: Int, //Number of tasks during the last routine maintenance
val finalDeepMaintainTimeStamp: Long, // The last deep maintenance timestamp, milliseconds
val finalDeepMaintainTotalTaskCount: Int, //Number of tasks during the last deep maintenance
)

Output parameter: None

Type: Action

12. PayloadKey ​

KeyAccessPayloadList ​

Description: None

Input parameters: None

Output parameter:

data class PayloadListBean(
val payloadList: List<PayloadInfoBean>
)

Type: Listen

keLowSpeedDataListener ​

Description: None

Input parameters: None

Output parameter: ByteArray

Type: Listen

KeyTracerTopicMessage ​

Description: None

Input parameters: None

Output parameter:

data class TracerMeasureInfoMessageBean(
val frameNum: Int, // frame number
val workStatus: Int, // System working status
val tarNum: Int, // Valid number of targets
val tarInfo: List<SingleTargetInfoBean> // Target information list
)

Type: Listen

KeyTracerWorkModeControlRspMessage ​

Description: None

Input parameters: None

Output parameter:

data class TracerWorkModeControlRspMessageBean(
val seq: Int, // sequence number, corresponding to the request message
val rlt: Int // Response result 0: Success 1: Failure
)

Type: Listen

KeyMsgToTracer ​

Description: None

Input parameters:

data class TracerWorkModeControlMessageBean(
val seq: Int, // sequence number
val workMode: Int, // working status control
val dxNum: Int, // directional target number
val dxFreq: Int, // Directional frequency
val airType: Int // Aircraft type
)

Output parameter: None

Type: Report

KeyTracerSystemInfoMessage ​

Description: None

Input parameters: None

Output parameter:

data class TracerSystemInfoMessageBean(
val sn: String, // serial number
val version: String, // version number
val ssid: String, // wifi name
val ipAddress: String, // IP address
val workStatus: Int, // working status
val faultStatus: Int, // fault status
val netStatus: Int, // Network status
val upTime: Int, // boot time
val cpu: Int, // cpu occupancy
val memory: Int, // memory usage
val disk: List<Int>, // disk usage list
val temperature: Int // Chip temperature
)

Type: Listen

KeyThrowTopicMessage ​

Description: None

Input parameters: None

Output parameter:

data class ThrowerMessageBean(
val type: String, //thrower model
val multiChannelNum: Int, //Supports several channels, 2, 4, 6, 8, 10.....
val channelValidState: List<Boolean>, //channel 1, bit0~bit31, bit0 indicates the 1st channel, bit1 indicates the 2nd channel, and so on, the corresponding bit is 1 for valid, 0 for unvalid
val currentChannelState: List<Boolean>, //Channel 1, bit0~bit31, bit0 indicates channel 1, bit1 indicates channel 2, and so on. The corresponding bit is 1 for thrown, 0 for unthrowed
var timestamp: Long = 0L
)

Type: Listen

KeyThrowAction ​

Description: None

Input parameters:

data class ThrowActionMessageBean(
val channelIndexActive: List<Boolean>
)

Output parameter: None

Type: Report

KeyLightSpeakerControlRsp ​

Description: None

Input parameters: None

Output parameter:

data class LightSpeakerRspMessageBean(
val seq: Int,
val rlt: Int
)

Type: Listen

KeyLightSpeakerControl ​

Description: None

Input parameters:

data class LoudspeakerLightingControlBean(
val seq: Int,
val moduleID: ModuleIDEnum,
val action: Any,
val value: Int,
val strValue: String = ""
)

Output parameter: None

Type: Report

KeyLightSpeakerRunTime ​

Description: None

Input parameters:

data class LoudspeakerRealTimeMsgBean(
val seq: Int,
val value: ByteString = ByteString.EMPTY
)

Output parameter: None

Type: Report

KeyLightSpeakerRuntimeRsp ​

Description: None

Input parameters: None

Output parameter:

data class LightSpeakerRspMessageBean(
val seq: Int,
val rlt: Int
)

Type: Listen

KeyLightSpeakerQueryRsp ​

Description: None

Input parameters: None

Output parameter:

data class LightSpeakerQueryRspMessageBean(
val seq: Int,
val value: Int,
val strValue: String,
val pageContent: List<LightSpeakerPageContentBean>,
val pageIndex: Int
)

Type: Listen

KeyLightSpeakerQuery ​

Description: None

Input parameters:

data class LoudspeakerQueryBean(
val seq: Int,
val moduleID: ModuleIDEnum,
val query: Any,
val pageIndex: Int = 0 // Request the current page number, default is 0, start from 1, maximum 5 items per page
)

Output parameter: None

Type: Report

KeyLightSpeakerVoiceFile ​

Description: None

Input parameters:

data class LoudspeakerRealTimeMsgBean(
val seq: Int,
val value: ByteString = ByteString.EMPTY
)

Output parameter: None

Type: Report

KeyLightSpeakerVoiceFileRsp ​

Description: None

Input parameters: None

Output parameter:

data class LightSpeakerRspMessageBean(
val seq: Int,
val rlt: Int
)

Type: Listen

13. RemoteControllerKey ​

KeyRcDeviceInfo ​

Description: Query remote control device information

Input parameters: None

Output parameter: List<DroneVersionItemBean>

data class DroneVersionItemBean(
/**
* After the aircraft capability set is established, this field will be determined by the order in which the equipment is registered on the aircraft. Modelx aircraft currently has a fixed ID (for example: forward radar ID, rear radar ID)
*/
var componentID: DroneComponentIdEnum = DroneComponentIdEnum.NONE,
/**
* component serial number
*/
var componentSN: String? = null,
/**
* Hardware version
*/
var hardwareVersion: String? = null,
/**
* software version
*/
var softwareVersion: String? = null,
/**
* Integer enumeration value, component device model
*/
var componentModel: Int = 0, //
/**
* Character type component device model, (for example: camera device model XM802)
*/
var strComponentModel: String? = null,
/**
* Aircraft capability set reserved field, describing the information of the current component (for example: front camera, rear camera), which is meaningless for Modelx aircraft.
*/
var label: String? = null,
/**
* Aircraft capability set reserved field, describing the current component type (e.g. camera, gimbal, flight control). ModelX aircraft currently has no meaning
*/
var componentType: DroneComponentEnum = DroneComponentEnum.UNKNOWN,
/**
* MCU bootloader version information
*/
var bootloaderVersion: String? = null,

/**
* Data source, 0 remote controller, 1 aircraft
*/
var dataSource:Int = 0
)

Type: Action

KeyRcSystemTime ​

Description: Set the remote control system time

Input parameters:

data class SystemTimeInfoBean(
/**
* UTC timestamp
*/
var utcTimeInterval: Long = 0,
/**
* The offset in hours relative to the zero time zone, for example, Beijing: UTC+8, timeZone is 8
*/
var timeZone: Float = 0f,
)

Output parameter: None

Type: Action

KeyRCRockerControlMode ​

Description: Joystick control mode

Input parameters:

enum class RcOperateModeEnum(val value: Int) {
/**
* American Hand
*/
AMERICA_HAND(0),

/**
* Chinese Hand
*/
CHINESE_HAND(1),

/**
* Beautiful Japanese hands
*/
JAPANESE_HAND(2);

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyRCEnterCalibration ​

Description: Enter remote control calibration mode

Input parameters: None

Output parameter: None

Type: Action

KeyRCExitCalibration ​

Description: Exit remote control calibration mode

Input parameters: None

Output parameter: None

Type: Action

KeyEnableRemoteUpload ​

Description: Enable remote control fixed frequency reporting

Request parameter: Boolean

Output parameter: None

Type: Action

KeyRcSwitchDroneVideoStream ​

Description: Switch the real-time video stream of the aircraft

Request parameter: Int

Output parameter: None

Type: Action

KeyRCBandInfoTypeNtfy ​

Description: RCType type notification

Input parameters: None

Output parameter:

data class RCBandInfoTypeBean(
/**
* Maximum string length is 63 characters
*/
var bandMode: String? = null,
/**
* Maximum string length is 63 characters
*/
var bandWidth: String? = null,
/**
* district value
*/
var district: Int = 0,
/**
* disable set band mode value
*/
var disableSetBandMode: Int = 0,
/**
* RC Type integer setting
*/
var RCType: Int = 0,
/**
* modem mode value
*/
var modemMode: Int = 0,
/**
* fcm value
*/
var fccMode: Int = 0,
)

Type: Listen

KeyRCHardwareState ​

Description: Remote controller fixed frequency reporting (remote controller fixed frequency reporting needs to be enabled first)

Input parameters: None

Output parameter:

data class RCHardwareStateNtfyBean(

/**
* Left joystick horizontal direction value
*/
var leftHorizontalValue: Int = 0,

/**
* Left joystick vertical direction value
*/
var leftVerticalValue: Int = 0,

/**
* The horizontal direction value of the right joystick
*/
var rightHorizontalValue: Int = 0,

/**
* The vertical direction value of the right joystick
*/
var rightVerticalValue: Int = 0,

/**
* Roller value (PTZ pitch)
*/
var wheelValue1: Int = 0,

/**
* Roller value (PTZ pitch)
*/
var wheelValue2: Int = 0,

/**
* Flight mode, see RemoteControlDefine->RC_FLIGHT_MODE (GPS mode, ATTI mode, IOC mode)
*/
var flightMode: RcFlightModeEnum = RcFlightModeEnum.UNKNOWN,
/**
* Remote controller define -> RC_BUTTON_TYPE
*/
var buttonType: RCButtonTypeEnum = RCButtonTypeEnum.UNKNOWN,

/**
* Key combination
*/
var combinedButtonType: Int = 0,
)

Type: Listen

KeyRCHardwareInfo ​

Description: Remote control button triggers reporting

Input parameters: None

Output parameter:

data class HardwareButtonInfoBean(
/**
* RC pad button type state
*/
var buttonType: RCButtonTypeEnum = RCButtonTypeEnum.UNKNOWN,
/**
* RC pad button clicked type state
*/
var clickType: RcButtonStateEnum = RcButtonStateEnum.UNKNOWN,
/**
*Key value, which can be used to represent the difference between the forward and backward scrolling of the wheel or the amplitude of the zoom key 0-255
*/
var thumbWheelValue: Int = 0
)

Type: Listen

KeyRCState ​

Description: Remote control status reporting

Input parameters: None

Output parameter:

data class RCStateNtfyBean(
/**
*Remote control signal strength, [0-100]
*/
var rcSignalQuality: Int = 0,
/**
*Image transmission signal strength, [0-100]
*/
var dspSignalQuality: Int = 0,
/**
*Remaining battery percentage, [0-100]
*/
var remainPowerPercent: Int = 0,
/**
*Remote controller calibration status (not used, fill in 0)
*/
var calibrationState: Int = 0,
/**
*Remote controller battery temperature, unit: Celsius (not used, fill in 0)
*/
var batteryTemperature: Int = 0,
/**
*Remote controller charging input voltage, unit: mV. (Not available for remote controller with screen)
*/
var chargingVoltage: Int = 0,
/**
*Whether it is in machine nest mode 0: No, 1: In machine nest mode (with screen remote control no)
*/
var isDroneNestMode: Int = 0,

)

Type: Listen

KeyRCRockerCalibrationState ​

Description: Remote controller calibration report

Input parameters: None

Output parameter:

data class RockerCalibrationStateNtfyBean(
/**
* Right stick calibration status information
*/
var rightStickStatus: Int = 0,
/**
* Left stick calibration status information
*/
var leftStickStatus: Int = 0,
/**
* Right wheel calibration status information
*/
var rightThumbWheelStatus: Int = 0,
/**
* Left dial calibration status information
*/
var leftThumbWheelStatus: Int = 0,
/**
* 1: The center position is valid. 0: The joystick or wheel is not centered
*/
var midValibFlag: Int = 0,

var gimYawThumbWheelStatus: Int = 0
)

Type: Listen

KeyRcLedLightSwitchMsg ​

Description: Remote control LED light switch 0: turn off the remote control LED light, 1: turn on the remote control LED light

Request parameter: Int

Output parameter: None

Type: Action

KeyRcRockerSwitchMsg ​

Description: MCU joystick sends switch 0: turn off MCU joystick sending, 1: turn on MCU joystick sending

Request parameter: Int

Output parameter: None

Type: Action

KeyRcSoftEnableSwitchMsg ​

Description: Control the image transmission to perform soft start and soft shutdown 1-soft start, 0-soft shutdown

Request parameter: Int

Output parameter: None

Type: Action

KeyRcGetPairKeyMsg ​

Description: Query the current CP pairing key pairKey cp pairing key

Input parameters: None

Output parameter: String

Type: Action

KeyRcSetPairKeyMsg ​

Description: Set the CP pairing key pairKey cp pairing key

Request parameter: String

Output parameter: None

Type: Action

KeyUavDataEncryptionSet ​

Description: Settings - Remote control data encryption and decryption settings

Input parameters:

data class UavDataEncryptionBean(
val enable: Int, //Data encryption and decryption setting switch, closed by default
val cpPassword: String, // Fill in when enabling frequency encryption
val encryptionList: List<Int> // encryptionList [0] indicates frequency encryption, 0 is off, 1 is on. If it is off, this data does not need to be filled in
)

Output parameter:

data class UavDataEncryptionBean(
val enable: Int, //Data encryption and decryption setting switch, closed by default
val cpPassword: String, // Fill in when enabling frequency encryption
val encryptionList: List<Int> // encryptionList [0] indicates frequency encryption, 0 is off, 1 is on. If it is off, this data does not need to be filled in
)

Type: Action

KeyUavDataEncryptionGet ​

Description: Get-remote control data encryption and decryption settings

Input parameters: None

Output parameter:

data class UavDataEncryptionBean(
val enable: Int, //Data encryption and decryption setting switch, closed by default
val cpPassword: String, // Fill in when enabling frequency encryption
val encryptionList: List<Int> // encryptionList [0] indicates frequency encryption, 0 is off, 1 is on. If it is off, this data does not need to be filled in
)

Type: Action

KeyRemoteWarning ​

Description: Remote controller warning notification (message type is the same as aircraft)

Input parameters: None

Output parameter:

data class WarningAtom(

/**
* Component Type
*/
var componentType: DroneComponentEnum = DroneComponentEnum.UNKNOWN,

/**
* Component ID
*/
var componentId: DroneComponentIdEnum = DroneComponentIdEnum.NONE,

/**
* Alarm ID
*/
var warningId: WaringIdEnum = WaringIdEnum.UNKNOWN,
)

Type: Listen

KeyRemoteRuntimeWarning ​

Description: Real-time warning notification from the remote controller (message type is the same as the aircraft)

Input parameters: None

Output parameter:

data class WarningAtom(

/**
* Component Type
*/
var componentType: DroneComponentEnum = DroneComponentEnum.UNKNOWN,

/**
* Component ID
*/
var componentId: DroneComponentIdEnum = DroneComponentIdEnum.NONE,

/**
* Alarm ID
*/
var warningId: WaringIdEnum = WaringIdEnum.UNKNOWN,
)

Type: Listen

14. RemoteIDKey ​

KeyRidQueryImportStatus ​

Description: dataBlock import status query (Japan)

Input parameters: None

Output parameter: Boolean

Type: Action

KeyRidSetDelete ​

Description: dataBlock write/delete (Japan)

Request parameter: String

Output parameter: None

Type: Action

KeyRidSetDroneId ​

Description: Set aircraft ID

Input parameters:

data class DroneIdBean(
/**
*The market category of the aircraft is currently consistent with the country category
*/
var market: MarketEnum = MarketEnum.UNKNOWN,
/**
*Country of Aircraft Registration
*/
var region: RegionEnum = RegionEnum.UNKNOWN,
/**
*Aircraft ID
*/
var droneId: String? = null,
)

Output parameter: None

Type: Action

KeyRidSetOperatorId ​

Description: Set pilot ID

Input parameters:

data class OperatorIdBean(
/**
* Country of the pilot
*/
var operatorIdType: RegionEnum = RegionEnum.UNKNOWN,
/**
* Pilot ID
*/
var operatorId: String? = null,
)

Output parameter: None

Type: Action

KeyRidSetSelfId ​

Description: Set flight purpose

Input parameters:

data class RIDSetSelfIDBean(
var selfIDMsgType: RidSelfIdEnum = RidSelfIdEnum.TXT_DESC,
var selfIDMsg: String? = null,
)

Output parameter: None

Type: Action

KeyRidSetSwitch ​

Description: Set the RID switch

Request parameter: Boolean

Output parameter: None

Type: Action

KeyRidStatus ​

Description: APP sets/gets aircraft RID switch status 0: Not turned on 1: Turned on and normal status, 2: Abnormal status

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

15. RtcKey ​

KeyRtcPublishSet ​

Description: RTC streaming settings

Input parameters:

data class RtcPublishSettingBean(
val enable: Boolean, // Whether to enable RTC streaming. true means enable, false means disable
val serverUrl: String?, // Server Url (optional)
val roomId: String?, //Room ID (optional), currently should be a full numeric string
val roomName: String?, //Room name (optional)
val roomPwd: String?, //Room password (optional)
val pubId: String?, // Publisher ID (optional) should be a full numeric string
val maxBitrate: Int?, // Maximum bitrate for streaming (optional) Unit (kbps) Default is 4000kbps
val sourceId: Int? // Video source ID (optional) 0) default; 1) wide angle; 2) zoom; 3) infrared; 4) night vision; default is wide angle
)

Output parameter: None

Type: Action

KeyRtmpVideoSource ​

Description: RTMP push stream video source sets the video camera source of RTMP push stream. sourceId: 0) default; 1) wide angle; 2) zoom; 3) infrared; 4) night vision; default is wide angle |

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

16. RtmpKey ​

KeyRtmpModuleEnable ​

Description: RTMP module switch

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyRtmpServerAddress ​

Description: RTMP server address

Request parameter: String

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyRtmpPushType ​

Description: RTMP push mode, see [RtmpPushTypeEnum] for the value

Request parameter: Int

enum class RtmpPushTypeEnum(val value: Int) {

/**
* China Southern Power Grid
*/
CSG(0),
/**
* State Grid
*/
SGCC(1);
}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyRtmpMaxVideoRate ​

Description: RTMP maximum stream bandwidth, unit: Kb/s, default is 750Kb/s

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyRtmpVideoSource ​

Description: RTMP push stream video source sets the video camera source of RTMP push stream. sourceId: 0) default; 1) wide angle; 2) zoom; 3) infrared; 4) night vision; default is wide angle |

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

17. VisionKey ​

KeyReportEmergency ​

Description: Visual radar map alarm

Input parameters: None

Output parameter: List<VisionRadarInfoBean>

data class VisionRadarInfoBean(
/**
*Timestamp
*/
var timeStamp: Long = 0,
/**
* Sensor location
*/
var position: VisionSensorPositionEnum = VisionSensorPositionEnum.FRONT,
/**
* Multiple distances between the sensor and obstacles
*/
var distances: List<Float>? = null

)

Type: Listen

KeyObstacleAvoidActionSet ​

Description: Obstacle avoidance switch Int setting

Input parameters:

enum class ObstacleAvoidActionEnum(val value: Int) {

CLOSE(0), //Close

STOP(1), //brake stop

BYPASS(2); // bypass

}

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyHorizontalBrakeDistance ​

Description: Horizontal obstacle avoidance braking distance

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyHorizontalWarningDistance ​

Description: Horizontal warning distance

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyTopBrakeDistance ​

Description: Upper obstacle avoidance braking distance

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyTopWarningDistance ​

Description: Upper warning distance

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyBottomBrakeDistance ​

Description: Braking distance for obstacle avoidance below

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyBottomWarningDistance ​

Description: Warning distance below

Request parameter: Float

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyRadarDetection ​

Description: Radar switch

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyAutonomyMifWorkStatus ​

Description: MIF visual positioning working status

Request parameter: Boolean

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

KeyAutonomyMifWorkStatusInt ​

Description: MIF visual positioning working status

Request parameter: Int

Output parameter: When a Get request is made, a result will be returned. The result is the same as the request parameter.

Type: Get, Set

18. DFFlightControlKey(DragonFish Flight Control)​

KeySetGimbalAngle ​

Description:Set gimbal angle

Request parameter:GimbalAttitudeBean

Output parameter:none

data class GimbalAttitudeBean(
/**
* Pitch angle
*/
var pitch: Float = 0.0f,
/**
* Roll angle
*/
var roll:Float = 0.0f,
/**
* Yaw angle
*/
var yaw:Float = 0.0f
)

Type:set

KeyDroneHotPointNtfy ​

Description:Hotpoint information report

Request parameter:none

Output parameter:DroneHotPointNtfyBean

data class DroneHotPointNtfyBean(
var timestamp: Long = 0, // timestamp (milliseconds since system boot)

var lat: Double = 0.0, // hot point pos,Latitude (WGS84), in degrees

var lon: Double = 0.0, // hot point pos,Longitude (WGS84), in degrees

var alt: Float = 0f, // // hot point pos,Altitude , in m

var centered: Int = 0, // hot point be centered or not; 0: not; 1:centered

var type: Int = 0, // hot point type; 0: fixed; 1:moving

var curRound: Int = 0, // hot point current round

var status: WaypointStateEnum = WaypointStateEnum.UNKNOWN, // way point status. 0:pause; 1:running; 2:completed; other:as defiens latter

var setSpeed: Float = 0f, // way point speed set, in m/s

var radius: Float = 0f // way point radius
)

Type:Listen

KeyDroneLocalPositionNtfy ​

Description:Hotpoint local information report

Request parameter:none

Output parameter:DroneLocalPositionNedNtfyBean

data class DroneLocalPositionNedNtfyBean(
var timestamp: Long = 0, // timestamp (milliseconds since system boot)

var lat: Double = 0.0, // Latitude (WGS84), in degrees

var lon: Double = 0.0, // Longitude (WGS84), in degrees

var alt: Float = 0f, // alt, in m

var realAlt: Float = 0f, // alt, in m

var homeLat: Double = 0.0, // home Latitude (WGS84), in degrees

var homeLon: Double = 0.0, // home Longitude (WGS84), in degrees

var homeAlt: Float = 0f, // home alt, in m

var vxyz: Float = 0f, // Absolute Speed, root of square X/Y/Z 's sum

var distance: Float = 0f, // distance

var airSpeed: Float = 0f // airspeed, m/s
)

Type:Listen

KeyOnlinePlanningInfoNtfy ​

Description:Hotpoint local information report

Request parameter:none

Output parameter:OnlinePlanningInfoBean

data class OnlinePlanningInfoBean(

var timestamp: Int = 0, //timestamp

var fromLatEst: Double = 0.0, //Starting latitude

var fromLonEst: Double = 0.0, //Starting longitude

var fromAltEst: Double = 0.0, //Starting altitude

var fromRadiusEst: Double = 0.0, //Starting radius, unit: M

var toLatEst: Double = 0.0, //Ending latitude

var toLonEst: Double = 0.0, //Ending longitude

var toAltEst: Double = 0.0, //Ending altitude

var toRadiusEst: Double = 0.0, //Ending radius, unit: M

var auxLat: Double = 0.0, //Auxiliary point latitude

var auxLon: Double = 0.0, //Auxiliary point longitude

var auxAlt: Double = 0.0, //Auxiliary point altitude

var auxRadius: Double = 0.0, //Auxiliary point radius, unit: M

var fromYawEst: Double = 0.0, //Starting yaw angle, unit: degrees

var toYawEst: Double = 0.0, //Ending yaw angle, unit: degrees

var auxYaw: Double = 0.0, //Auxiliary point yaw angle, unit: degrees

// Online planning route type: 1. Return to home 2. Quick task 3. Continue task on return route
var planningType: Int = 0,

// Parameter 18 (59-59, 1 byte unsigned): Valid when parameter 17 equals 1, landing type: 1. Normal landing 2. Vertical landing 3. Slope landing 4. Mobile platform landing
var landType: Int = 0,

// Parameter 19 (60-60, 1 byte unsigned): Valid when parameter 17 equals 1, feedback the ID of the UAV flying to the backup point
var landSiteId: Int = 0,
)

Type:Listen

KeyQueryFileInfo ​

Description:Query file information

Request parameter:FileInfoListDataBean

data class FileInfoListDataBean(
val fileInfoList: List<FileInfoDataBean>
)

/**
* Represents the data class for the FileInfo message.
* @param fileType The file type, agreed between the two devices
* @param fileName The file name, usually containing the absolute path, agreed between the two devices
* @param fileMd5 The MD5 value of the file, typically used to verify file equality, and generally used in conjunction with file version
* @param fileVersion The file version, typically used to verify file equality, and generally used in conjunction with file MD5
*/
data class FileInfoDataBean(
val fileType: Int,
val fileName: String,
val fileMd5: String,
val fileVersion: String
)

Output parameter:Int 0:has no file ;1: has file

Type:Action

KeyCalibProcessInfoNtfy ​

Description:Hotpoint local information report

Request parameter:none

Output parameter:DFCalibProcessInfoNtfyBean

data class DFCalibProcessInfoNtfyBean(

var timestamp: Long = 0,

var magCalibProcess: Int = 0,

var airspeedCalibProcess: Int = 0,

var reserve: Int = 4
)

Type:Listen

KeyAPPHeartBeat ​

Description:APP heartbeat message report 1HZ

Request parameter:DFAppHeartBeatBean

data class DFAppHeartBeatBean(

// timestamp
var timestamp: Long = 0L,

// Time zone, in seconds
var timezone: Long = 0L,

// double type latitude
var latitude: Double = 0.0,

// double type longitude
var longitude: Double= 0.0,

// int32_t type altitude
var altitude: Int= 0,

// 0 -- disconnected, 1 -- connected
var ctrlCenter : Int = 0,

// 1 -- ground device
var gndDevType : Int= 0,

// 0 -- not ready, cannot land, 1 -- land ready, can land
var prepareLand : Int= 0,

// 0 - in the flyable area, 1 - out of the flyable area
var ableFly : Int = 0,
)

Output parameter:none

Type:Report

KeyObstacleInfoNtfy ​

Description:Obstacle information report

Request parameter:none

Output parameter:DFObstacleInfoBean

data class DFObstacleInfoBean(

//timestamp (microseconds since system boot)
var timestamp: Long = 0L,

// distances between UAV and obstacle in different direction, dm
var distanceList: MutableList<Int> = mutableListOf(),

// the source of the obstacle info
var sourceList: MutableList<Int> = mutableListOf(),

// maneuver for obstacle collision avoidance
var maneuver :Int = 0
)

Type: Listen

KeyTrackingTargetInfoNtfy ​

Description:Tracking information report

Request parameter:none

Output parameter:DFTrackingTargetInfoBean

data class DFTrackingTargetInfoBean(
//timestamp (microseconds since system boot)
var timestamp: Long = 0L,

var latEst: Double = 0.0,

var lonEst: Double = 0.0,

/* 0: Quit target tracking;
* 1:tracking now;
* 2:target lost
**/
var trackingStatus :DFTrackingStatusEnum = DFTrackingStatusEnum.UNKNOWN,

var distance: Float= 0f,
var altitude: Float= 0f,
var speed: Float= 0f,

var distanceValid: Int = 0,
var speedValid: Int = 0,
)

Type:Listen

19. DFCommonCmdKey(DragonFish Common Command)​

KeyDroneStartAutoCheck ​

Description:Start self-checking

​ High frequency reporting DroneSystemStateLFNtfyBean -> autoCheckState(self-checking status)

Request parameter:AutoCheckTypeEnum

enum class AutoCheckTypeEnum(var value: Int) {
/**
* 0 - Check front motor
* 1 - Check rear motor
* 2 - Check left motor
* 3 - Check right motor
* 4 - Check left servo
* 5 - Check right servo
* 6 - Check rear servo
* 7 - Check airspeed sensor
* 8 - Check ultrasonic sensor
* 9 - Check RTK
* 10 - Check GPS
* 11 - Check magnetometer
* 12 - Check RC (remote control)
* 13 - Check payload
* 14 - Check barometer 1
* 15 - Check IMU 1
* 16 - Check barometer 2
* 17 - Check IMU 2
* <p>
* 255 - Check all systems
*/
FONT_MOTOR(0),
BEHIND_MOTOR(1),
LEFT_MOTOR(2),
RIGHT_MOTOR(3),
LEFT_STEER(4),
RIGHT_STEER(5),
BEHIND_STEER(6),
AIRSPEED(7),
ULTRASONIC(8),
RTK(9),
GPS(10),
BAROMETER(11),
REMOTE(12),
PAYLOAD(13),
MAGNETOMETER_1(14),
IMU_1(15),
MAGNETOMETER_2(16),
IMU_2(17),
ALL(255);

Output parameter:none

Type:Action

KeyDroneGetAutoCheckResult ​

Description:Get self-checking results

​ High frequency reporting DroneSystemStateLFNtfyBean -> autoCheckState(self-checking status)

Request parameter:none

Output parameter:DFAutoCheckResultBean

data class DFAutoCheckResultBean(
var autoCheckResult: Int = 0,
) {
/**
* Front motor
*/
fun isFontMotorNormal(): Boolean {
return (autoCheckResult and 0x1) == 0
}

fun isBehindMotorNormal(): Boolean {
return (autoCheckResult shr 1 and 0x1) == 0
}

fun isLeftMotorNormal(): Boolean {
return (autoCheckResult shr 2 and 0x1) == 0
}

fun isRightMotorNormal(): Boolean {
return (autoCheckResult shr 3 and 0x1) == 0
}

/**
* Left servo
*/
fun isLeftSteerNormal(): Boolean {
return (autoCheckResult shr 4 and 0x1) == 0
}

fun isRightSteerNormal(): Boolean {
return (autoCheckResult shr 5 and 0x1) == 0
}

fun isBehindSteerNormal(): Boolean {
return (autoCheckResult shr 6 and 0x1) == 0
}

/**
* Airspeed sensor
*/
fun isAirSpeedNormal(): Boolean {
return (autoCheckResult shr 7 and 0x1) == 0
}

/**
* Ultrasonic sensor
*/
fun isUltrasonicNormal(): Boolean {
return (autoCheckResult shr 8 and 0x1) == 0
}

/**
* RTK
*/
fun isRTKNormal(): Boolean {
return (autoCheckResult shr 9 and 0x1) == 0
}

/**
* GPS
*/
fun isGPSNormal(): Boolean {
return (autoCheckResult shr 10 and 0x1) == 0
}

/**
* Barometer
*/
fun isBarometerNormal(): Boolean {
return (autoCheckResult shr 11 and 0x1) == 0
}


fun isRemoteControllerNormal(): Boolean {
return (autoCheckResult shr 12 and 0x1) == 0
}

/**
* Payload
*/
fun isPayloadNormal(): Boolean {
return (autoCheckResult shr 13 and 0x1) == 0
}

/**
* Magnetometer
*/
fun isMagnetometer1normal(): Boolean {
return (autoCheckResult shr 14 and 0x1) == 0
}

/**
* IMU
*/
fun isImu1Normal(): Boolean {
return (autoCheckResult shr 15 and 0x1) == 0
}

/**
* Magnetometer
*/
fun isMagnetometer2normal(): Boolean {
return (autoCheckResult shr 16 and 0x1) == 0
}

fun isImu2Normal(): Boolean {
return (autoCheckResult shr 17 and 0x1) == 0
}

fun isBatteryNormal(): Boolean {
return (autoCheckResult shr 18 and 0x1) == 0
}

fun isGimbalNormal(): Boolean {
return (autoCheckResult shr 19 and 0x1) == 0
}

fun isAttitudeNormal(): Boolean {
return (autoCheckResult shr 20 and 0x1) == 0
}

fun isRTKHeadingNormal(): Boolean {
return (autoCheckResult shr 21 and 0x1) == 0
}

/**
* Navigation attitude
* @return
*/
fun isNavigationAttitudeNormal(): Boolean {
return (autoCheckResult shr 22 and 0x1) == 0
}

/**
* Maintenance reminder
*/
fun isMaintenancReminder(): Boolean {
return (autoCheckResult shr 23 and 0x1) == 0
}

/**
* Version matching
*/
fun isVersionMatching(): Boolean {
return (autoCheckResult shr 24 and 0x1) == 0
}

fun isElectronicFenceNormal(): Boolean {
return (autoCheckResult shr 25 and 0x1) == 0
}

/**
* Whether the magnetic heading and RTK heading are consistent
* @return true-consistent, false-inconsistent
*/
fun isNavigationAndRTKNormal(): Boolean {
return (autoCheckResult shr 31 and 0x1) == 0
}
}

Type:Action

KeyGetMultiBatteryInfo ​

Description:Multi-battery information query

Request parameter:Int

Output parameter:DFMultiBatteryInfoBean

data class DFMultiBatteryInfoBean(

var commandAck: Int = 0,

/**
* Battery number
*/

var port: Int = 0,

/**
* Battery serial number
*/
var sn: String = "",

/**
* App version
*/
var appVersion: String = "",

/**
* boot version
*/
var bootVersion: String = "",

/**
* Hardware version
*/
var hwVersion: String = "",

/**
* Protocol version
*/
var protcVersion: String = "",

/**
* Gauge version
*/
var gaugeVersion: String = "",

/**
* Battery device type number
*/
var devModel: Int = 0,

/**
* Battery cycle count
*/
var cycCount: Int = 0,

/**
* Battery self-discharge days
*/
var selfDsgDay: Int = 0,

/**
* Cell voltage maximum display value
*/
var maxVol: Int = 0,

/**
* Cell voltage minimum display value
*/
var minVol: Int = 0
)

Type:Action

KeyQueryActuatorUsage ​

Description:Actuator parameter query

Request parameter:ActuatorTypeEnum

ActuatorTypeEnum(var value: Int) {
//Left wing
LEFT_WING(1),

//Right wing
RIGHT_WING(2),

//Tail wing
TAIL_WING(3),

UNKNOWN(-1);
)

Output parameter:DFActuatorUsageBean

data class DFActuatorUsageBean(

var actuator: Int = 0,

var valid: Int = 0,

var totalTime: Int = 0
)

Type:Action

KeySetActuatorParam ​

Description:Actuator parameter setting

Request parameter:UavActuatorTypeEnum

enum class UavActuatorTypeEnum(var value: Int)  {
/**
* Front wing
*/
FONT_ESC(0x14),
/**
* Behind wing
*/
BEHIND_ESC(0x15),
/**
* Left wing
*/
LEFT_ESC(0x16),
/**
* Right wing
*/
RIGHT_ESC(0x17),
/**
* Tail wing
*/
TAIL_CONTROL_PANEL(0x23),
/**
* Left wing
*/
LEFT_STEER_PANEL(0x24),
/**
* Right wing
*/
RIGHT_STEER_PANEL(0x25),
/**
* GPS board, compass
*/
GPS_PANEL(0x3C),
/**
* Unknown
*/
UNKNOWN(0);
)

Output parameter:none

Type:Action

KeyUpdateFile ​

Description:Update task

Request parameter:DFUpdateFileBean

data class DFUpdateFileBean(

var fileType: DFFileTypeEnum = DFFileTypeEnum.UNKNOWN,

var missionId: Int = 0
)

Output parameter:none

Type:Action

KeyForceLanding ​

Description:Emergency landing

Request parameter:DFForceLandingBean

data class DFForceLandingBean(

var landingType: DFLandTypeEnum= DFLandTypeEnum.UNKNOWN,

//Entering point latitude
var latitude: Int = 0,

//Entering point longitude
var longitude: Int = 0,

//Entering point altitude, unit: mm, need to multiply by 1E3
var altitude: Int = 0,

//Landing point latitude
var ldLatitude: Int = 0,

//Landing point longitude
var ldLongitude: Int = 0,

//Landing point altitude, unit: mm, need to multiply by 1E3
var ldAltitude: Int = 0,

//Hover radius, unit: dm, need to multiply by 10
var ldRadius: Int = 0,

//Switch height, unit: dm, need to multiply by 10
var ldSwitchAlt: Int = 0,

//Entering point altitude type
var ldEnterAltType: Int = 0,

//Landing point altitude type
var ldAltType: Int = 0,

//Landing method 1-Normal landing 2-Vertical landing 3-Slope landing 4-Mobile platform landing
var ldMethod: DFLandMethodEnum = DFLandMethodEnum.NORMAL,
)

Output parameter:none

Type:Action

KeyAircraftTracking ​

Description:Emergency landing

Request parameter:DFAircraftTrackingBean

data class DFAircraftTrackingBean(

var enable: Boolean = true,

var trackingType: DFTrackingTypeEnum = DFTrackingTypeEnum.STANDARD
)

Output parameter:none

Type:Action

KeyTmpSurvey ​

Description:Temporary observation point

Request parameter:DFTempSurveyPointBean

data class DFTempSurveyPointBean(
// 0 -- Exit temporary observation; 1 -- Enter temporary observation
var enable: Int = 1,
// Observation point longitude
var longitude: Int = 0,
// Observation point latitude
var latitude: Int = 0,
// Observation point height
var height: Int = 0,
// Observation point radius
var radius: Int = 0
)

Output parameter:none

Type:Action

KeyGetCompassCalibrateResult ​

Description:Get compass calibration result

Request parameter:none

Output parameter:DFCompassCalibrateBean

data class DFCompassCalibrateBean(

// length 9
var ellipsoidMatrix: List<Double> = mutableListOf<Double>(),

// length 3
var magBias: List<Double> = mutableListOf<Double>(),

// length 9
var rotateMatrix: List<Double> = mutableListOf<Double>(),

var accuracyLevel: Double = 0.0,

var ellipsoidRadius: Double = 0.0
)

Type:Action

KeyCalibrateAirSpeed​

Description:Calibrate airspeed

Request parameter:none

Output parameter:none

Type:Action

KeyGetAirSpeedCalibrateResult ​

Description:Get airspeed calibration result

Request parameter:none

Output parameter:DFAirSpeedCalibrateBean

data class DFAirSpeedCalibrateBean(
var airspeedBias: Int = 0
)

Type:Action

KeySetFastFlyInfo ​

Description:Set fast task information

Request parameter:DFFastFlyInfoBean

data class DFFastFlyInfoBean(
// 0: Use the current position of the aircraft to set the aircraft Home point. This will ignore the remaining parameters
// 1: Use the remaining parameters to specify the GPS coordinates to set the aircraft Home point
// 2: Emergency landing point
// 3: Temporary waypoint (including height, hover radius)
// 4: Interest point (including height)
// 5: Height adjustment (only height position is valid, the value represents the height to be adjusted)
// 6: Speed adjustment (only speed position is valid, the value represents the expected speed (temporary))
// 7: 8-shaped hover fast task (latitude, longitude, height, radius, heading, reference baseline length)
var locationStatus: FastFlyEnum = FastFlyEnum.DRONE_POINT_AS_HOME_POINT,

var latitude: Double = 0.0,
var longitude: Double = 0.0,
var altitude: Int = 0,
var radius: Int = 0,
var speed: Float = 0f,
var direction: Int = 0,
var distance: Int = 0
)

Output parameter:none

Type:Action

KeyGetLedStatus ​

Description:Get arm light status

Request parameter:none

Output parameter:DFControlLedBean

data class DFControlLedBean(
fun getResult(): NavigationControlLight
)

Type:Action

KeyControlLed ​

Description:Control arm LED light

Request parameter:DFControlLedBean

data class DFControlLedBean(
fun setParam(value: NavigationControlLight)
)

Output parameter:none

Type:Action

KeySetBatteryDischargeDays ​

Description:Set battery self-discharge days

Request parameter:DFSetBatteryIDischargeDaysBean

data class DFSetBatteryIDischargeDaysBean(
// Battery number, range [1, 255]
var batteryId: Int = 0,
// Battery self-discharge days, range [1, 10]
var dischargeDays: Int = 0
)

Output parameter:none

Type:Action

KeyStartCompassCalibrate​

Description:Start compass calibration

Request parameter:none

Output parameter:none

Type:Action

KeyEnableADSBTX​

Description:Send ADSB information switch

Request parameter:Int enable = 1 disable = 0

Output parameter:none

Type:Action

KeySetADSBIcao​

Description:ADSB set ICAO

Request parameter:Int enable = 1 disable = 0

Output parameter:none

Type:Action

KeyGetADSBIcao​

Description:ADSB get ICAO

Request parameter:none

Output parameter:Int enable = 1 disable = 0

Type:Action

KeyCorrectUavPosition​

Description:Correct UAV position

Request parameter:AutelLatLng

Output parameter:none

Type:Action

KeySwitchWaypoint ​

Description:Switch waypoint

Request parameter:DFSwitchWaypointBean

data class DFSwitchWaypointBean(

var data: SwitchWayPointTypeEnum = SwitchWayPointTypeEnum.UNKNOWN,

var airlineId: Int,

var waypointId: Int,

var dispPointId: Int,

)

Output parameter:none

Type:Action

KeyTakeOff ​

Description:One-key takeoff

Request parameter:none

Output parameter:DFCommonAck

data class DFCommonAck(
var ackStatus: Int = 0, //0: Success, otherwise abnormal

var errorCode1: Int = 0,

var errorCode2: Int = 0,
) {

/**
* Whether the request is successful
*/
fun isSuccess():Boolean

/**
* Left steering fault
*/
fun isLeftSteerFault(): Boolean

/**
* Right steering fault
*/
fun isRightSteerFault(): Boolean

/**
* Elevator fault
*/
fun isFontSteerFault(): Boolean

/**
* Airspeed fault
*/
fun isAirSpeedFault(): Boolean

/**
* RTK fault
*/
fun isRtkFault(): Boolean

/**
* GPS fault
*/
fun isGpsFault(): Boolean

/**
* Magnetometer fault
*/
fun isMagnetometerFault(): Boolean

/**
* IMU fault
*/
fun isImuFault(): Boolean

/**
* Barometer fault
*/
fun isBarometerFault(): Boolean

/**
* Remote control not connected
*/
fun isRcDisconnect(): Boolean

/**
* Attitude not available
*/
fun isAttitudeNotUse(): Boolean

/**
* Heading not available
*/
fun isHeadingNotUse(): Boolean

/**
* Speed not available
*/
fun isSpeedNotUse(): Boolean

/**
* Position not available
*/
fun isPositionNotUse(): Boolean

/**
* Height not available
*/
fun isHeightNotUse(): Boolean

/**
* Remaining battery not available
*/
fun isElectricityNotUse(): Boolean
/**
* Speed Euler angle not available
*/
fun isSpeedEulerNotUse(): Boolean
/**
* Mandatory lock
*/
fun isMandatoryLock(): Boolean

/**
* Airspeed calibration fault
*/
fun isAirSpeedCalibrationFault(): Boolean

/**
* Magnetometer calibration fault
*/
fun isMagnetometerCalibrationFault(): Boolean

/**
* UAV is in no-fly zone
*/
fun isNoFlyZone(): Boolean

/**
* Battery 1 high temperature
*/
fun isOneBatteryHighTemp(): Boolean

/**
* Battery 1 low temperature
*/
fun isOneBatteryLowTemp(): Boolean
/**
* Battery 1 damaged
*/
fun isOneBatteryBad(): Boolean

/**
* Battery 2 high temperature
*/
fun isTwoBatteryHighTemp(): Boolean
/**
* Battery 2 low temperature
*/
fun isTwoBatteryLowTemp(): Boolean
/**
* Battery 2 damaged
*/
fun isTwoBatteryBad(): Boolean

/**
* Battery power mismatch
*/
fun isBatteryElectricityNotBalance(): Boolean

/**
* Battery number mismatch
*/
fun isBatteryNumNotBalance(): Boolean

/**
* Navigation attitude is initializing
*/
fun isNavigationInitialization(): Boolean

/**
* Maintenance reminder 30
*/
fun isMaintenancReminder(): Boolean

/**
* Version matching
*/
fun isVersionMatching(): Boolean

/**
* Mobile base station RTK information is valid
* true-valid, false-invalid
*/
fun isBaseStationRTKInvalid(): Boolean


/**
* Mobile base station RTK Heading2 information is valid
* true-valid, false-invalid
*/
fun isBaseStationRTKHeadingTwoInvalid(): Boolean
/**
* Mobile base station RTK Heading information is valid
* true-valid, false-invalid
*/
fun isBaseStationRTKHeadingInvalid(): Boolean

/**
* Mobile base station RTK position information is valid
* true-valid, false-invalid
*/
fun isBaseStationRTKPositionInvalid(): Boolean

/**
* Mobile base station RTK speed information is valid
* true-valid, false-invalid
*/
fun isBaseStationRTKSpeedInvalid(): Boolean

/**
* Mobile base station RTK attitude information is normal
* true-normal, false-abnormal
*/
fun isBaseStationRTKAttitudeInvalid(): Boolean

/**
* Mobile return point information is normal
* true-normal, false-abnormal
*/
fun isMoveHomePositionInvalid(): Boolean

/**
* Mobile base station return point precision difference is normal
* true-normal, false-abnormal
*/
fun isMoveHomePrecisionInvalid(): Boolean

/**
* Close no-fly zone
*/
fun isCloseNFZ(): Boolean

/**
* In no-fly zone
*/
fun isInTheNFZ(): Boolean

/**
* Close fly zone edge
*/
fun isCloseEdgeFlyZone(): Boolean

/**
* In fly zone
*/
fun isOutFlyZone(): Boolean

/**
* UAV close to mandatory fly zone edge
*/
fun isCloseEdgeMandFlyZone(): Boolean

/**
* Whether to synchronize electronic fence information
*/
fun isNeedUploadGenFence(): Boolean

/**
* Battery temperature below 25℃, and battery power below 60%, do not take off
*/
fun isBatteryLowTempAndHeating(): Boolean

/**
* Whether to prohibit unlocking in case of flight controller board or flight control CPU overheating
*/
fun isFlightControllerOverheating(): Boolean


//16-21 reserved for 75KG
/**
* UAV configuration status does not match, prohibit takeoff
*/
fun isStatusMismatch(): Boolean

/**
* Left wing reached maintenance period, prohibit takeoff
*/
fun isLeftWingReachedMaintenance(): Boolean

/**
* Right wing reached maintenance period, prohibit takeoff
*/
fun isRightWingReachedMaintenance(): Boolean

/**
* Elevator reached maintenance period, prohibit takeoff
*/
fun isTailWingReachedMaintenance(): Boolean

/**
* Whether self-inspection is successful
*/
fun isAutoCheckSuc(): Boolean
}

Type:Action

KeyLanding​

Description:One-key landing

Request parameter:none

Output parameter:none

Type:Action

KeyGoHome​

Description:One-key return

Request parameter:none

Output parameter:none

Type:Action

KeyAutoLand​

Description:Automatic landing

Request parameter:none

Output parameter:none

Type:Action

KeyArmDisarm​

Description:Disarm

Request parameter:none

Output parameter:none

Type:Action

KeySetHome​

Description:Set home point

Request parameter:DFFastFlyInfoBean

data class DFFastFlyInfoBean(
// 0: Use the current position of the aircraft as the aircraft Home point. This will ignore the remaining parameters
// 1: Use the remaining parameters to specify the GPS coordinates as the aircraft Home point
// 2: Emergency landing point
// 3: Temporary waypoint (including height, swirling radius)
// 4: Interest point (including height)
// 5: Height adjustment (only height position is valid, the value represents the height to be adjusted)
// 6: Speed adjustment (only speed position is valid, the value represents the expected speed (temporary))
// 7: 8-shaped swirling fast task (latitude, longitude, height, radius, heading, reference baseline length)
var locationStatus: FastFlyEnum = FastFlyEnum.DRONE_POINT_AS_HOME_POINT,

var latitude: Double = 0.0,
var longitude: Double = 0.0,
var altitude: Int = 0,
var radius: Int = 0,
var speed: Float = 0f,
var direction: Int = 0,
var distance: Int = 0
)

Output parameter:none

Type:Action

KeyEnableUSB​

Description:Enable USB

Request parameter:none

Output parameter:none

Type:Action

KeyLockWing​

Description:Lock wing

Request parameter:none

Output parameter:none

Type:Action

KeySpreadWing​

Description:Spread wing

Request parameter:none

Output parameter:none

Type:Action

KeyStartMission​

Description:Start mission

Request parameter:DFStartMissionBean

data class DFStartMissionBean(
var data0: Int = 0, //Default: 0
var missionId: Int = 0
)

Output parameter:DFCommonAck

Type:Action

KeyStopMission​

Description:Stop mission

Request parameter:none

Output parameter:none

Type:Action

KeyClearFcsLog​

Description:Clear flight control log

Request parameter:none

Output parameter:none

Type:Action

20. DFFlightPropertyKey(Dragonfish aircraft property settings)​

KeyFmsMissionSpeed ​

Description:Fixed-wing cruise speed

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyMinRadius ​

Description:Minimum turning radius

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyMaxHeight ​

Description:Maximum flight height

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyMinHeight ​

Description:Maximum flight height

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyMaxRange ​

Description:Maximum flight distance

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyReturnHeight ​

Description:Automatic return height

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyHorizontalSpeed ​

Description:Horizontal speed

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyAscendSpeed ​

Description:Ascend speed

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyDescendSpeed ​

Description:Descend speed

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyFreshManModeSwitch ​

Description:Newcomer mode switch 1: On 0: Off

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

KeySDLogFrequency ​

Description:SD card read frequency

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyAttiModeSwitch ​

Description:Whether to use ATTI mode 1: On 0: Off

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

KeyYawAngleSensitivity ​

Description:Yaw angle sensitivity

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeySafeHeight ​

Description:Safe height

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyCriticalBatteryWarning ​

Description:Critical low battery setting Ranges from 0.1 to 0.25

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyLowBatteryWarning ​

Description:Low battery setting Ranges from 0 to 0.50

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyMaxRp ​

Description:Query maximum tilt

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyRtkEnable ​

Description:use RTK or not 1: use 0: not use

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

KeyVTakeoffAltitude ​

Description:Vertical takeoff height

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyControlMissionPath ​

Description:Force lock Propeller 0-close,99-open 10-attitude

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

KeyMovingHomeEnable ​

Description:Support moving base station mode 0-not support,1-support; Tracking antenna only supports,WiFi base station does not support

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

KeyTrackEnable ​

Description:Aircraft following 0-not follow,1-follow

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

KeyRadarOCAEnable ​

Description:Enable terrain obstacle avoidance 0-close,1-open

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

KeyLostAction ​

Description:Lost action 0: continue task;1: return

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

KeyAirportCode ​

Description:Airport data unlock 0, not unlock 584213

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

KeyTrackRadius ​

Description:Tracking swirl radius

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyTrackDistance ​

Description:Tracking distance

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyTrackAngleType ​

Description:Tracking angle type 1: absolute angle 2: relative angle

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyTrackAngle ​

Description:Tracking angle

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyTrackDirection ​

Description:Tracking swirl direction 1: counterclockwise; 0: automatic; -1: clockwise

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyDroneMaintainDuration ​

Description:Get aircraft maintenance duration

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

KeyNoGnssSwitch ​

Description:Whether to enable NoGNSS function 1-open NoGNSS flight, 0-close NoGNSS flight

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

KeyNoGnssTrackRadius ​

Description:Tracking radius in NoGNSS case, unit: meter

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyTargetNearDistance ​

Description:Determine the distance value at which the target enters the specified range, unit: meter

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyAutoQuitEnable ​

Description:Whether to automatically exit NoGNSS guidance after completion (open Int 1, default open)

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

KeyQuickGuideGimbalPitch ​

Description:Determine the gimbal angle threshold for completing NoGNSS guidance (value range -55 to -120, default value -85)

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyDefaultRTLYaw ​

Description:Default yaw angle, unit: degree (value range 0-360, default value 0)

Request parameter:Float

Output parameter:Float

Type:Support Get/Set

KeyIntelligentLowBatteryEnable ​

Description:Intelligent low battery function 0: not open 1: open

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

KeyFmsTFEnable ​

Description:Terrain obstacle avoidance function 0: not open 1: open

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

KeyDropStateControl ​

Description:Control dropper state 0 - close, 1 - open (reset to 0 after power on)

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

KeyDropOnPwm ​

Description:Control dropper PWM value when in open state

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

KeyDropOffPwm ​

Description:Control dropper PWM value when in closed state

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

KeyNoGnssTakeoffSwitch ​

Description:NoGNSS takeoff switch 0-close, 1-open

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

KeyNoGNSSModeEnable ​

Description:GNSS switch

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

KeyFcsLogStop ​

Description:Flight control log switch 0 - normal log recording, 1 - stop log recording

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

KeyFmsAirportMode ​

Description:Set nest mode

Request parameter:Int

Output parameter:Int

Type:Support Get/Set

21. DFMeshKey(Dragonfish Two-Control One-Group Mesh Network)​

KeyMeshDeviceRegister ​

Description:Remote control registration, APP registers with aircraft

Request parameter:DFMeshDeviceRegisterBean

data class DFMeshDeviceRegisterBean(
var id: String, //Registration ID
var deviceName: String //Device name, length not greater than 64 bytes
)

Output parameter:DFMeshDeviceResultBean

data class DFMeshDeviceResultBean(
var id: String, //Registration ID
var result: Int //Operation success 0, failure 1
)

Type:Support Action

KeyMeshChangePriority ​

Description:Long machine switch, remote control switch priority 0-highest, 1-next, 2-next

Request parameter:DFMeshDeviceRegisterBean

data class DFMeshDevicePriorityBean(

var deviceID: String, //Registration ID

var priority: Int ///Set priority 0-highest, 1-next, 2-next
)

Output parameter:DFMeshDeviceResultBean

data class DFMeshDeviceResultBean(
var id: String, //Registration ID
var result: Int //Operation success 0, failure 1
)

Type:Support Action

KeyAPPHeartBeat ​

Description:Long machine switch, remote control switch priority 0-highest, 1-next, 2-next

Request parameter:DFMeshHeartBeatBean

data class DFMeshHeartBeatBean(
var id: String //Registration ID
)

Output parameter:none

Type:Support Report

22. WifiBaseStationKey(Dragonfish WIFI Base Station)​

KeySetBaseStation ​

Description:Wifi base station setting

Request parameter:WifiBaseStationSettingReq

data class WifiBaseStationSettingReq(
var req: ByteArray
)

Output parameter:WifiBaseStationSettingRsp

data class WifiBaseStationSettingRsp(
var rsp: ByteArray
)

Type:Support Action

KeySetBaseStationPosition ​

Description:Base station precise position setting

Request parameter:AutelLatLng

class AutelLatLng implements Cloneable, Serializable {
private double latitude;
private double longitude;
private float altitude = 0;
}

Output parameter:Int: 0-success, 1-failure

Type:Support Action

KeyGetBaseStationPosition ​

Description:Base station precise position acquisition

Request parameter:none

Output parameter:AutelLatLng

class AutelLatLng implements Cloneable, Serializable {
private double latitude;
private double longitude;
private float altitude = 0;
}

Type:Support Action

KeyBaseStationStatusNtfy ​

Description:Report base station status information

Request parameter:none

Output parameter:WifiBaseStationStatusNtfyBean

data class WifiBaseStationStatusNtfyBean(
val satellitesNum: Int, //Base station RTK satellite number
val status: Int, //Base station status information bit 0 Base station shutdown flag 1-about to shut down. 0-normal operation. bit 1-31 Reserve
val reserve: Int, //Reserved
val batteryLevel: Int, //Base station battery information, range 0-100
val rtkSignalQuality: Int, //Base station RTK signal quality, range 0-5
)

Type:Support Listen

KeyBaseStationRTKSolveNtfy ​

Description:Report base station RTK solution information

Request parameter:none

Output parameter:WifiBaseStationRTKSolveNtfyBean

data class WifiBaseStationRTKSolveNtfyBean(
val sol: ByteArray, //Solution information
)

Type:Support Listen

KeyBaseStationRTKNtfy ​

Description:Report base station RTK information

Request parameter:none

Output parameter:WifiBaseStationRTKNtfyBean

data class WifiBaseStationRTKNtfyBean(
val latitude: Double, // latitude, 10E-7deg
val longitude: Double, // longitude, 10E-7deg
val altitude: Double, // altitude, 10E-3deg
val velX: Float, // velocity northward, 10E-2m/s
val velY: Float, // velocity eastward, 10E-2m/s
val velZ: Float, // velocity downward, 10E-2m/s
val pitch: Float, // pitch, 10E-3 rad
val roll: Float, // roll, 10E-3 rad
val yaw: Float, // yaw, 10E-3 rad
val yawRate: Float, // yaw_rate, 10E-3 rad/s
val antHeading: Int, // heading info of dual antennas, 0.1deg clockwise [0,360)deg
val reserve: Int, // reserved
val posType: Int, // position type
val posStat: Int, // position solution status
val velType: Int, // velocity type
val velStat: Int, // velocity solution status
)

Type:Support Listen

KeySetBaseStationMode ​

Description:Set base station mode

Request parameter:Int 1-Self-positioning fixed base station; 2-Set coordinates fixed base station; 3-Mobile base station mode

Output parameter:none

Type:Support Action

KeyGetBaseStationMode ​

Description:Get base station mode

Request parameter:none

Output parameter:Int 1-Self-positioning fixed base station; 2-Set coordinates fixed base station; 3-Mobile base station mode

Type:Support Action

KeySetRouteWifi​

Description:Set wifi base station password

Request parameter:

data class SetRouteWifiBean(
var ssid : String,
var password : String
)

Output parameter:None

Type:Support Action