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