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. AccessoriesProxyKey

KeyJettisionGearControl

Description: Thrower control

Input parameters:

data class JettisionGearControlBean(
/**
* Throwing device id
*/
var moduleID: Int = 0,
/**
* Each throw position status 0: not throw, 1: throw.
*/
val action: MutableList<ThrowingGearActionEnum> = mutableListOf(), //Each throwing bit status 0: not throwing, 1: throwing.
)

Output parameter: None

Type: Action

KeyJettisionGearStatus

Description: Report the status of the thrower

Input parameters: None

Output parameter:

data class JettisionGearStatusBean(
/**
* Throwing device id
*/
var moduleID: Int = 0,
/**
* Is the channel valid? 0: invalid (not in use) 1: valid (in use),
*/
var validFlag: MutableList<ThrowingGearValidEnum>? = null,
/**
* Channel status 0: not yet thrown 1: already thrown
*/
var status: MutableList<ThrowingGearStatusEnum>? = null,

var timestamp: Long = 0L
)

Type: Listen

KeyMsgToTracer

Description: Tracer message sending interface App->Aircraft (Accessory Gateway)

Input parameters:

data class TracerUavMessageBean(
var msgChannel: String = "",
var msgType: TracerMessageType = TracerMessageType.TRACERUAVMSG_HEART_BEAT,
var msgName: String? = null,
var msgHandle: Int = 0,
var msgSeq: Int = 0,
var workMode: CtrlWorkModeBean? = null,
var flyStatus: FlyStatusBean? = null,
var measureInfo: MeasureInfoBean? = null
)

Output parameter: None

Type: Report

KeyMsgFromTracer

Description: Tracer message reporting interface aircraft (accessory gateway) -> App

Input parameters: None

Output parameter:

data class TracerUavMessageBean(
var msgChannel: String = "",
var msgType: TracerMessageType = TracerMessageType.TRACERUAVMSG_HEART_BEAT,
var msgName: String? = null,
var msgHandle: Int = 0,
var msgSeq: Int = 0,
var workMode: CtrlWorkModeBean? = null,
var flyStatus: FlyStatusBean? = null,
var measureInfo: MeasureInfoBean? = null
)

Type: Listen

KeyJZLoudSpeakerLightingControl

Description: APP controls the ultimate shouting lighting all-in-one machine

Input parameters:

data class LoudspeakerLightingJzControlBean(
val moduleID: ModuleIDEnum,
val action: Any,
val value: Int
)

Output parameter: None

Type: Action

KeyJZSPEAKEControl

Description: Extreme shouting lighting all-in-one machine opus real-time shouting data message

Input parameters:

data class LoudspeakerLightingJzSpeakRealtimeMsgBean(
val seqNum: Long,
val value: ByteString = ByteString.EMPTY
)

Output parameter: None

Type: Action

KeyJZLoudSpeakerLightingQuery

Description: Extreme call lighting all-in-one machine query interface Specific value Searchlight brightness level (-1 invalid, 1, 2, 3 normal // Pitch angle -1 invalid, -90 ~ 30 normal 4: PTZ linkage status 1 on 2 off Specific value of the megaphone volume (-1 is invalid, 0 ~ 100 is normal)

Input parameters:

data class LoudspeakerLightingJzQueryBean(
val moduleID: ModuleIDEnum,
val query: Any,
)

Output parameter: Int

Type: Action

KeyJZNormalHeartbeat

Description: General heartbeat status reporting of accessories Accessory type 1 Extreme shouting lighting all-in-one machine

Input parameters: None

Output parameter:

data class AccessoriesNormalHeartbeatBean(
val accessoriestType: Int, //Accessory type 1 Extreme shouting and lighting all-in-one machine
val accessoriestName: String //Specific model of accessories
)

Type: Listen

2. 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

KeyAirlinkResetMatchFlag

Description: Reset the frequency binding flag

Input parameters: None

Output parameter: None

Type: Action

KeyALinkConnectConfirm

Function Description: User clicks on the battery to confirm the connection notification

Input parameters: None

Output parameter: None

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

KeyAirlinkAppSplitScreenInfo

Description: App image transmission display mode

Input parameters: List<GimbalTransmissionBean>

data class GimbalTransmissionBean(
/**
* PTZ label
*/
var label: String? = null,
/**
* camera_id corresponding to visible light, infrared, night vision and other cameras
*/
var cameraId: Int = 0,

)

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

KeyAirlinkTriggerCpOff

Description: The main remote controller sends a forced out-of-step message to the aircraft

Input parameters: None

Output parameter: None

Type: Action

KeyAirLinkFrequencySet

Description: Set the frequency band list of the image transmission. In some SS scenarios, users require to force certain frequency bands to be enabled or blocked.

Input parameters:

data class FrequencySetBean(
val operation: Int, // Operation type (0: turn on the frequency band, 1: turn off the frequency band)

val frequencyList: List<FrequencyInfoBean>, //frequency band list

val cyCode:String, //country code

//Indicates the source of the operation, 0: sent by the APP background, 1: sent manually by the customer
val indicatorOperationSource: Int,

//Defense flag: 0: non-defense, 1: defense
val defenseFlag:Int
)

Output parameter: None

Type: Action

KeyAirFrequencyGet

Description: Get the frequency band list of the image transmission. Get the frequency band list of the image transmission. The APP obtains the frequency band setting information from the aircraft and displays it.

Input parameters: None

Output parameter:

data class FrequencyGetBean(
val disableFrequencyList: List<FrequencyInfoBean>, //User-specified frequency band list to be disabled
val frequencyList: List<FrequencyInfoBean>, //User-specified frequency band list
val hdSupportFrequencyList: List<FrequencyInfoBean>, //Hardware supported frequency band list
val operation: Int, //Operation type 0: open the frequency band 1: close the frequency band
val cyCode: String, //country code
val indicatOperationSource: Int, //Indicates the operation source, 0: sent by the APP background, 1: sent manually by the customer
val defenseFlag: Int //Defense flag: 0: non-defense, 1: defense
)

Type: Action

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

3. AIServiceKey

KeyAiDetectTarget

Description: After the user selects a target on the App, the aircraft locks on the target and sends the tracking frame to the App Object detection type settings The aircraft detects the target and sends the detection frame to the App

Input parameters: None

Output parameter:

data class DetectTrackNotifyBean(
var timestamp: Long = 0, // timestamp

var frameId: Int = 0, //id
/**
* Resolution width
*/
var resolutionWidth: Int = 0,
/**
* Resolution height
*/
var resolutionHeight: Int = 0,
/**
* quantity
*/
var objNum: Int = 0,
/**
* Tracking box array
*/
var infoList: List<DetectObjectBean> = emptyList(),
var imageId: Int = 0, //Unique ID of the image (unique for this boot), if no image is saved this time, set it to 0
var imageUrl: String = "", //Image path, if no image is saved this time, set it to an empty string
/**
* Lens ID
*/
var lensId: Int = 0
)

Type: Set, Listen, Action

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

KeyTrackingTargetTypeConfig

Description: Target detection type setting

Input parameters:

data class AIDetectObjectConfigBean(
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
)

Output parameter: None

Type: Set, Action

KeyExtendedDetect

Description: Extended recognition model acquisition

Input parameters: None

Output parameter:

data class ExtendedDetectCapBean(
var modelId:Long,
var capList :MutableList<ExtendedDetectBean>
)

Type: Action

KeyExtendedDetectReport

Description: AIService reports the current recognition extension capability set to App

Input parameters: None

Output parameter:

data class ExtendedDetectCapBean(
var modelId:Long,
var capList :MutableList<ExtendedDetectBean>
)

Type: Listen

plannerRosBagRecordEnable

Description: Planner bag record 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

KeyDetectTakePhotoInfoNtfy

Description: The aircraft detects the target and takes photos and reports

Input parameters: None

Output parameter:

data class DetectTakePhotoInfoBean(
var timestamp: Long = 0,
var photoPath: String = "",
var infoList: List<MeshAIDetectObjectBean> = arrayListOf()
)

Type: Listen

KeyWayPointDetectTakePhotoInfoNtfy

Description: Notification of AI detection target photo information during inspection tasks

Input parameters: None

Output parameter:

data class AIRecognitionPhotoInfoBean(
var eventId: Long = 0L, // event ID
var fileId: String = "", // Unique file identifier
var path: String = "", // URL address of the file
var shootingType: Int = 0, // Linked shooting mode
var fileExpand: AIFileExpandInfoBean? = null, // file expansion content
var metadata: AIMetadataInfoBean? = null, // Media metadata
var objNum: Int = 0, // Number of detected targets in one frame
var objInfo: List<AIPhotoDetectObjectInfoBean> = emptyList() // Detection target array
)

Type: Listen

KeyWayPointRecordNtfy

Description: Notification of AI waypoint linkage video event in inspection mission

Input parameters: None

Output parameter:

data class AIWaypointRecordBean(
val taskId: Int,
val waypointId: Int,
val recordUrl: String,
val startTimestamp: Long,
val videoDuration: Int,
val eventIds: List<Long>,
val planeGpsLat: Float, // New: aircraft GPS latitude
val planeGpsLon: Float, // New: Aircraft GPS longitude
val planeGpsAlt: Float // New: Aircraft GPS altitude, unit: m
)

Type: Listen

4. 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

KeyIntelligentLockEnter

Description: Enter smart lock

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

KeyIntelligentLockStart

Description: Start smart lock

Input parameters:

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
)

Output parameter: None

Type: Action

KeyIntelligentLockExit

Description: Exit smart lock

Input parameters: None

Output parameter: None

Type: Action

5. 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

KeyDisplayMode

Description: Display mode

Input parameters: None

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

Type: Get, Set, Listen

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

KeyPatternMode

Description: Camera interface mode

Input parameters:

enum class PatternModeEnum(var value: Int) {
/**
* Manual flight
*/
MANUAL(0),

/**
* Mission flight
*/
MISSION_FLY(1),

/**
* Intelligent tracking, gesture recognition, and tap-to-fly
*/
TRACK(2),

/**
* Time-lapse photography
*/
DELAY_SHOOT(3),

/**
* Surround Vision
*/
VISION_ORBIT(4),

/**
* Panoramic photography
*/
PANORAMIC(5),

/**
* Task recording
*/
MISSION_RECORDER(6),

/**
* Traffic Police Project
*/
MISSION_POLICE(7),

/**
* Low power consumption
*/
LOW_POWER(8),

/**
* Movie mode
*/
SHORT_VIDEO(9),

/**
* Portrait mode
*/
PORTRAIT(10),

/**
* Night mode
*/
NIGHT(11),

/**
* Professional Mode
*/
MAJOR(12),
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

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

KeyIntervalShotStatus

Description: Timed shooting countdown report

Input parameters: None

Output parameter: Int

Type: Listen

KeyPanoramaStatus

Description: Panoramic status reporting

Input parameters: None

Output parameter:

data class PanoramaStatusBean(
/**
* Panorama status
*/
var state: PanoramaShootStatusEnum = PanoramaShootStatusEnum.UNKNOWN,
/**
* Panorama type
*/
var type: PanoramaEnum = PanoramaEnum.UNKNOWN,
/**
* Overall steps
*/
var totalStep: Int = 0,
/**
* Current number of steps for panoramic photo taking
*/
var currentStep: Int = 0,
/**
* The current completion ratio of panoramic photography
*/
var proportion: Float = 0f,
)

Type: Listen

KeyDelayShotStatus

Description: Time-lapse photography status reporting

Input parameters: None

Output parameter:

data class DelayShotStatusBean(
/**
* The remaining time in seconds
*/
var remainTime: Int = 0,
/**
* Countdown to taking the next photo, in seconds
*/
var countDown: Int = 0,
/**
* Number of photos taken
*/
var captured: Int = 0,
)

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

6. CommonKey

KeyHeartBeatPhone

Description: Aircraft keep-alive heartbeat

Input parameters: None

Output parameter: None

Type: Listen

KeyHeartBeatApp

Description: APP keep-alive heartbeat app->Business gateway fixed frequency reporting

Input parameters: None

Output parameter: None

Type: Report

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(

// var droneVersion: String? = null, // Aircraft package version (the package version information has removed the system initialization data)

/**
* 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(
/**
* 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

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(
/**
* 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: 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

KeyDroneWarning

Description: Aircraft warning notification

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

KeyDroneRuntimeWarning

Description: Real-time aircraft warning notification

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

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

KeyDroneSetFlyZoneCommand

Description: Set the flyable area code

Input parameters:

data class DroneSetFlyZoneCommandBean(
val flyZoneList: List<FlyZoneBean>
)

Output parameter: None

Type: Action

KeyDroneSetFlyRegionCommand

Description: Set the flight area and nearby country and region codes

Input parameters:

data class DroneSetFlyRegionCommandBean(
var regionCode: String,
var nearRegionCodeList: List<String>
)

Output parameter: None

Type: Action, Report

7. 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) {
override fun toString(): String {
return "HomeLocation(latitude=$latitude, longitude=$longitude, height=$height, type=$type)"
}
}

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) {
override fun toString(): String {
return "HomeLocationDouble(latitude=$latitude, longitude=$longitude, height=$height, type=$type)"
}
}

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

KeyDroneEmergencyPaddleStop

Description: App notifies the aircraft to stop propellers in an emergency

Input parameters: None

Output parameter: None

Type: Action

8. 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

KeyKmlEnter

Description: None

Input parameters: None

Output parameter: None

Type: Action

KeyKmlExit

Description: Exit waypoint mission

Input parameters: None

Output parameter: None

Type: Action

KeyKmlStart

Description: Start a waypoint mission

Input parameters:

data class MissionKmlGUIDBean(

var kmlMissionId: Int = 0,

var startTime: Int = 0, //Default is 0

)

Output parameter: Int

Type: Action

KeyKmlPause

Description: Pause waypoint mission

Input parameters: None

Output parameter: None

Type: Action

KeyKmlResume

Description: Restore waypoint mission

Input parameters:

data class MissionKmlGUIDBean(

var kmlMissionId: Int = 0,

var startTime: Int = 0, //Default is 0

)

Output parameter: None

Type: Action

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

9. 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

KeyFcsSensMagXscale

Description: Main magnetometer X-axis scale factor

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

KeyFcsSensMagXyscal

Description: None

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

KeyFcsSensMagXzscal

Description: None

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

KeyFcsSensMagYxscal

Description: Main magnetometer Y-axis scale factor

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

KeyFcsSensMagYscale

Description: None

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

KeyFcsSensMagYzscal

Description: None

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

KeyFcsSensMagZxscal

Description: Main magnetometer Z-axis scale factor

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

KeyFcsSensMagZyscal

Description: None

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

KeyFcsSensMagZscale

Description: None

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

KeyFcsSensMagXoff

Description: Main magnetometer X-axis zero bias

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

KeyFcsSensMagYoff

Description: Main magnetometer Y-axis zero bias

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

KeyFcsSensMagZoff

Description: Main magnetometer Z-axis zero bias

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

KeyFcsSensMag1Xscale

Description: Magnetometer X-axis scale factor

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

KeyFcsSensMag1Xyscal

Description: None

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

KeyFcsSensMag1Xzscal

Description: None

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

KeyFcsSensMag1Yxscal

Description: Y-axis scale factor of magnetometer

KeyFcsSensMag1Yscale

Description: Y-axis scale factor of magnetometer

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

KeyFcsSensMag1Yzscal

Description: None

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

KeyFcsSensMag1Zxscal

Description: Magnetometer Z-axis scale factor

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

KeyFcsSensMag1Zyscal

Description: None

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

KeyFcsSensMag1Zscale

Description: None

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

KeyFcsSensMag1Xoff

Description: Prepare magnetometer X-axis zero bias

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

KeyFcsSensMag1Yoff

Description: Y-axis zero bias of magnetometer

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

KeyFcsSensMag1Zoff

Description: Z-axis zero bias of magnetometer

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

KeyFcsSensAmpuXoff

Description: Main accelerometer X-axis zero bias

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

KeyFcsSensAmpuYoff

Description: Main accelerometer Y-axis zero bias

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

KeyFcsSensAmpuZoff

Description: Main accelerometer Z-axis zero bias

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

KeyFcsSensAmpuXscale

Description: Main accelerometer X-axis scale factor

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

KeyFcsSensAmpuXyscal

Description: None

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

KeyFcsSensAmpuXzscal

Description: None

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

KeyFcsSensAmpuYxscal

Description: Main accelerometer Y-axis scale factor

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

KeyFcsSensAmpuYscale

Description: None

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

KeyFcsSensAmpuYzscal

Description: None

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

KeyFcsSensAmpuZxscal

Description: Main accelerometer Z-axis scale factor

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

KeyFcsSensAmpuZyscal

Description: None

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

KeyFcsSensAmpuZscale

Description: None

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

KeyFcsSensGmpuXoff

Description: Main gyroscope X-axis zero bias

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

KeyFcsSensGmpuYoff

Description: Main gyroscope Y-axis zero bias

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

KeyFcsSensGmpuZoff

Description: Main gyroscope Z-axis zero bias

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

KeyFcsSensGmpuXscale

Description: Main gyroscope X-axis scale factor

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

KeyFcsSensGmpuXyscal

Description: None

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

KeyFcsSensGmpuXzscal

Description: None

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

KeyFcsSensGmpuYxscal

Description: Main gyroscope Y-axis scale factor

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

KeyFcsSensGmpuYscale

Description: None

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

KeyFcsSensGmpuYzscal

Description: None

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

KeyFcsSensGmpuZxscal

Description: Main gyroscope Z-axis scale factor

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

KeyFcsSensGmpuZyscal

Description: None

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

KeyFcsSensGmpuZscale

Description: None

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

KeyFcsSensAicmXoff

Description: Prepare accelerometer X-axis zero

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

KeyFcsSensAicmYoff

Description: Prepare accelerometer Y axis zero

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

KeyFcsSensAicmZoff

Description: Accelerometer Z axis zero

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

KeyFcsSensAicmXscale

Description: Prepare the accelerometer X-axis scale factor

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

KeyFcsSensAicmXyscal

Description: None

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

KeyFcsSensAicmXzscal

Description: None

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

KeyFcsSensAicmYxscal

Description: Prepare the accelerometer Y-axis scale factor

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

KeyFcsSensAicmYscalE

Description: None

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

KeyFcsSensAicmYzscal

Description: None

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

KeyFcsSensAicmZxscal

Description: Accelerometer Z-axis scale factor

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

KeyFcsSensAicmZyscal

Description: None

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

KeyFcsSensAicmZscale

Description: None

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

KeyFcsSensGicmXoff

Description: Gyroscope X-axis zero bias

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

KeyFcsSensGicmYoff

Description: Gyroscope Y-axis zero bias

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

KeyFcsSensGicmZoff

Description: Gyroscope Z-axis zero bias

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

KeyFcsSensGicmXscale

Description: Gyroscope X-axis scale factor

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

KeyFcsSensGicmXyscal

Description: None

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

KeyFcsSensGicmXzscal

Description: None

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

KeyFcsSensGicmYxscal

Description: Gyroscope Y-axis scale factor

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

KeyFcsSensGicmYscale

Description: None

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

KeyFcsSensGicmYzscal

Description: None

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

KeyFcsSensGicmZxscal

Description: Gyroscope Z-axis scale factor

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

KeyFcsSensGicmZyscal

Description: None

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

KeyFcsSensGicmZscale

Description: None

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

10. 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

11. HardwareDataSecurityKey

KeyLimitDataGenerationSet

Description: Settings - Limit the generation of business data on the aircraft side

Input parameters:

data class UavDataGenerationLimitBean(
val enable: Int, // Do not save task data switch, closed by default
val limitList: List<Int> // limitList[0] indicates that flight logs are not limited, limitList[1] indicates that media files are not limited,
// limitList[2] indicates the limit of media file generation. Media files contain unnecessary information (such as GPRS). 0 is disabled and 1 is enabled. When disabled, this data does not need to be filled in.
)

Output parameter:

data class UavDataGenerationLimitBean(
val enable: Int, // Do not save task data switch, closed by default
val limitList: List<Int> // limitList[0] indicates that flight logs are not limited, limitList[1] indicates that media files are not limited,
// limitList[2] indicates the limit of media file generation. Media files contain unnecessary information (such as GPRS). 0 is disabled and 1 is enabled. When disabled, this data does not need to be filled in.
)

Type: Action

KeyLimitDataGenerationGet

Description: Get-limit the business data generated on the aircraft side

Input parameters: None

Output parameter:

data class UavDataGenerationLimitBean(
val enable: Int, // Do not save task data switch, closed by default
val limitList: List<Int> // limitList[0] indicates that flight logs are not limited, limitList[1] indicates that media files are not limited,
// limitList[2] indicates the limit of media file generation. Media files contain unnecessary information (such as GPRS). 0 is disabled and 1 is enabled. When disabled, this data does not need to be filled in.
)

Type: Action

KeyUavDataDestroySet

Description: Settings - Data destruction settings

Input parameters:

data class UavDataDestroyListBean(
val enable: Int, //Data destruction setting switch, closed by default
val disConnectDestroyMode: Int, // Enable is 1 to take effect, 0 to disable, 1 to enable the disconnection destruction mode
val missionNoReturnDestroyMode: Int, // Enable is 1, it takes effect, 0 is off, 1 is on mission no return mode
val manualDestroyMode: Int, // Enable takes effect only when it is 1, 0 turns it off, 1 turns on manual destruction mode and destroys all data (trigger by pressing C1+C2 for 3 seconds)
val destroyList: List<Int> // Enable is 1 to take effect, custom destruction data,
// destroyList [0] indicates the destruction of media resources.
// destroyList [1] indicates route file destruction,
// destroyList [2] indicates that the upgrade file is destroyed.
// destroyList [3] indicates log file destruction.
// 0 is off, 1 is on. When off, this data does not need to be filled in
)

Output parameter: None

Type: Action

KeyUavDataDestroyGet

Description: Get-Data destruction settings

Input parameters: None

Output parameter:

data class UavDataDestroyListBean(
val enable: Int, //Data destruction setting switch, closed by default
val disConnectDestroyMode: Int, // Enable is 1 to take effect, 0 to disable, 1 to enable the disconnection destruction mode
val missionNoReturnDestroyMode: Int, // Enable is 1, it takes effect, 0 is off, 1 is on mission no return mode
val manualDestroyMode: Int, // Enable takes effect only when it is 1, 0 turns it off, 1 turns on manual destruction mode and destroys all data (trigger by pressing C1+C2 for 3 seconds)
val destroyList: List<Int> // Enable is 1 to take effect, custom destruction data,
// destroyList [0] indicates the destruction of media resources.
// destroyList [1] indicates route file destruction,
// destroyList [2] indicates that the upgrade file is destroyed.
// destroyList [3] indicates log file destruction.
// 0 is off, 1 is on. When off, this data does not need to be filled in
)

Type: Action

KeyUavDataDestroyListReport

Description: Report data destruction results

Input parameters: None

Output parameter:

data class UavDataDestroyListNtfyBean(
val enable: Int, //Data destruction setting switch, closed by default
val disConnectDestroyFin: Int, // 1 means data is deleted in this mode
val missionNoReturnDestroyFin: Int, // 1 means data deletion is complete in this mode
val manualDestroyFin: Int, // 1 means data deletion is complete in this mode
val destroyListFin: List<Int> // Enable is 1 to take effect, custom destruction data,
// destroyList [0] indicates the destruction of media resources.
// destroyList [1] indicates route file destruction,
// destroyList [2] indicates that the upgrade file is destroyed.
// destroyList [3] indicates log file destruction.
// 1 means deletion is completed. When closed, this data does not need to be filled in
)

Type: Listen

12. 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

13. 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

14. 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

15. 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

KeyRcQuickMatchChooseConnect

Description: Quick pairing confirmation

Request parameter: Int

Output parameter: None

Type: Action

KeyRcQuickMatchClearBlacklist

Description: Quick pairing and clearing blacklist

Input parameters: None

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

KeyRC60GpsInfo

Description: 6.0-inch remote control GPS information reporting monitoring

Input parameters: None

Output parameter:

data class RCGpsInfoMsgBean(
val msgType: RC60GPSInfoMessageTypeEnum,
val latitude: Double, // latitude
val longitude: Double, // longitude
val altitude: Double, // altitude
val utcSec: Long // UTC time
)

Type: Listen

KeyRc60InfoSet

Description: 6.0-inch remote control sets virtual GPS information

Input parameters:

data class RCGpsInfoMsgBean(
val msgType: RC60GPSInfoMessageTypeEnum,
val latitude: Double, // latitude
val longitude: Double, // longitude
val altitude: Double, // altitude
val utcSec: Long // UTC time
)

Output parameter: None

Type: Action

KeyRc60InfoGet

Description: 6.0-inch remote control obtains GPS information

Input parameters: None

Output parameter:

data class RCGpsInfoMsgBean(
val msgType: RC60GPSInfoMessageTypeEnum,
val latitude: Double, // latitude
val longitude: Double, // longitude
val altitude: Double, // altitude
val utcSec: Long // UTC time
)

Type: Action

KeyRC60ImuInfo

Description: 6.0-inch remote control imu report monitoring

Input parameters: None

Output parameter:

data class RcImuAngMsgBean(
val x: Float, //imu X-axis angle, 0~360
val y: Float, //imu Y axis angle, 0~360
val z: Float, //imu Z axis angle, 0~360
val status: IMUStatus, //imu status, 0: normal, 1: abnormal
val calibState: IMUCalibrationState, //imu calibration state, 0: Not calibrated: 1: Calibrated: 2: Calibration successful: 3: Calibration failed
)

Type: Listen

KeyRc60IMUCalibrate

Description: 6.0 inch remote control imu calibration command

Input parameters:

data class Rc60ImuCalibMessageBean(
val calibrationCommand: ImuCalibrationCommandEnum
)
enum class ImuCalibrationCommandEnum(val value: Int) {
ENTER_CALIBRATION_MODE(0),
EXIT_CALIBRATION_MODE(1),
UNKNOWN(-1)
}

Output parameter: None

Type: Action

KeyRCFactoryTestControl

Description: Remote control production test mode switch, 1: start test, 2: stop test

Request parameter: String

Output parameter: None

Type: Action

KeyRCFactoryTestResult

Description: Remote control production test result notification

Input parameters: None

Output parameter:

data class RCFactoryTestBean(
/**
* Remote control production test result data
*/
var data: ByteString = ByteString.EMPTY
)

Type: Listen

KeyRc60ImuDataGet

Description: None

Input parameters: None

Output parameter:

data class Rc60ImuDataBean(
val accelerometer: List<Int>,
val gyroscope: List<Int>,
val magnetometer: List<Int>,
val timestamp: Long
)

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

16. 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

17. 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

18. RtkPropertKey

KeyRtkReportInfo

Description: RTK information reporting

Input parameters: None

Output parameter:

data class RtkReportBean(

var solState: Int = 0,

/**< Solution status, see FlightControlDefine->RTK_SOLUTION_TYPE */
var posType: RTKPositionTypeEnum = RTKPositionTypeEnum.UNKNOWN_POSITION,

/**< Position type, see FlightControlDefine->RTK_POSITION_TYPE */
var lat: Double = 0.0, //latitude, deg/

var lon: Double = 0.0, // longitude, deg/

var hgt: Double = 0.0, // altitude, m/

var latSigma: Float = 0.0f, //< latitude standard deviation

var lonSigma: Float = 0.0f, // longitude standard deviation

var hgtSigma: Float = 0.0f, // height standard deviation

var svCnt: Int = 0, //Number of satellites tracked/

var solnSVs: Int = 0, // Number of satellites used in the solution /

var gpsCnt: Int = 0, // Number of GPS satellites/

var beidouCnt: Int = 0, // Beidou satellite number/

var glonassCnt: Int = 0, //glonass satellite number/

var galileoCnt: Int = 0, //galileo satellite number/

var inPos: Int = 0, // Is the RTK in position? 0 -- Not in position, 1 -- In position

var rtkUsed: Int = 0, // Whether to use RTK positioning / 0 -- not used, 1 -- used

var fixSta: Int = 0, // fix status / 0 -- not fixed, 1 -- fixed

var locationType: Int = 0, // Positioning method / 0 -- GNSS, 1 -- RTK

var signalType: RTKSignalEnum = RTKSignalEnum.SELF_NETWORK, // RTK signal type, see FlightControlDefine->RTK_SIGNAL_TYPE

var coordinateSys: RTKCoordinateEnum = RTKCoordinateEnum.MOBILE_STATION, //RTK coordinate system, see FlightControlDefine->RTK_COORDINATE


)

Type: Listen

KeyRtkRawReportInfo

Description: RTK information reporting

Input parameters: None Output parameter:

data class RtkRawReportBean(
var timestamp:Long = 0, //system timestamp
var gpsTime: Int = 0, //gps time
var lattitude : Double = 0.0, //latitude, precision is 10E-7 degrees
var longitude : Double = 0.0, // longitude, precision is 10E-7 degrees
var altitude: Float = 0.0f, //Altitude (relative to sea level), accuracy is 10E-3 meters
var velNedX: Float = 0.0f, //x speed, accuracy is 10E-3 m/s
var velNedY: Float = 0.0f, //y speed, accuracy is 10E-3 m/s
var velNedZ: Float = 0.0f, //z speed, accuracy is 10E-3 m/s
var accuracyH : Float = 0.0f, //Horizontal accuracy, unit: 10E-3 m
var accuracyV : Float = 0.0f, //Vertical accuracy, unit: 10E-3 m
var accuracyS : Float = 0.0f, //Speed accuracy, unit: 10E-3 m/s
var fixType : Int = 0, //GNSS fix type 0: no fix 1: dead reckoning only 2: 2D fix 3: 3D fix 4: GNSS + Dead Reckoning 5: Time only Fix
var satellitesNum : Int = 0, // Number of satellites to search
)

Type: Listen

KeyRTKLocationEnable

Description: RTK positioning

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

KeyRTKSignalType

Description: RTK signal mode

Input parameters:

enum class RTKSignalEnum(val value: Int) {

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

/**
* RTK Mobile Station
*/
MOBILE_STATION(10),


/**
* Nest RTK
*/
SELF_NETWORK(1),
/**
* Network RTK (remote controller RTK)
*/
NETWORK(2),
/**
* 4G/5G mobile network (airborne RTK)
*/
MOBILE_NETWORK_SERVICES(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

KeyRTKCoordinateSystem

Description: RTK coordinate system

Input parameters:

enum class RTKCoordinateEnum(val value: Int) {

/**
* WGS84
*/
WGS84(0),

/**
* RTK Mobile Station
*/
MOBILE_STATION(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

KeyRTKBaseStationInfo

Description: RTK base station information reporting

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

KeyRTKBaseStationMessageType

Description: RTK service MessageType definition 0x0000A000 ~ 0x00000A0ff

Input parameters:

data class RtkCommandBean(
var rtkSwitch:Boolean = false
)

Output parameter: None

Type: Action

KeyRTKRtcmSent

Description: RTCM data transmission

Input parameters:

data class RtkRtcmDataBean(
var rtcmSource: Int = 0, //RTCM data source (machine nest/network, etc.)
var rtcmPackageSerial: Int = 0, //Serial number of the rtcm data packet (an rtcm packet may be split into multiple sub-packets for network transmission, and the serial numbers of multiple sub-packets are the same)
var rtcmPackageCnt: Int = 0, //The number of unpacked rtcm data
var rtcmPackageIdx: Int = 0, //rtcm data sub-package id
var rtcmData: ByteString = ByteString.EMPTY //RTCM data, maximum length 1029 bytes
)

Output parameter: None

Type: Report

keyBaseStationMode

Description: Configure the RTK base station working mode

Input parameters:

data class RtkWorkModeCommandBean(
var workMode: Int = 1 , //Working mode 0. Self-positioning mode, 1. Setting coordinate mode (parameters longitude, latitude, altitude), 2. Mobile mode, 3. Mobile station mode
var latitude : Double = 0.0 , // longitude
var longitude : Double = 0.0, // latitude
var altitude : Double = 0.0 // altitude
)

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

Type: Get, Set

KeyRTKGppgaInfo

Description: RTK service MessageType definition 0x0000A000 ~ 0x00000A0ff

Input parameters: None

Output parameter:

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
)

Type: Listen

KeyRTKSwitchMode

Description: RTK service MessageType definition 0x0000A000 ~ 0x00000A0ff

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

19. 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

20. SystemManagerKey

KeySystemStatusData

Description: System status data notification

Input parameters: None

Output parameter: List<SystemStatusDataAtomBean>

data class SystemStatusDataAtomBean(
/**
*Platform type, see SYSTEM_DEBUG_PLATFORM
*/
var platform: SystemDebugPlatformEnum = SystemDebugPlatformEnum.UNKNOWN,
/**
*Chip type, see SYSTEM_CORE_TYPE
*/
var coreType: SystemCoreTypeEnum = SystemCoreTypeEnum.UNKNOWN,
/**
*Chip index ID, see SYSTEM_CORE_INDEX
*/
var coreIndex: SystemCoreIndexEnum = SystemCoreIndexEnum.CORE_0,
/**
*Data, [0] load%, temperature °C, frequency Hz, frequency limit Hz. If the data does not exist or is abnormal, the data value is 0
*/
var dataList: List<Float> = mutableListOf(),
)

Type: Listen

KeySystemWorkStatusData

Description: System service status reporting

Input parameters: None

Output parameter:

data class SystemWorkStatusBean(
/**
* Debug platform, see SYSTEM_DEBUG_PLATFORM
*/
var platform: SystemDebugPlatformEnum = SystemDebugPlatformEnum.UNKNOWN,
/**
*System working mode
*/
var systemWorkMode: SystemWorkStatusEnum = SystemWorkStatusEnum.UNKNOWN,
)

Type: Listen

KeySystemManagerDroneCustomName

Description: User-defined aircraft 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

KeySystemManagerStatusReportControl

Description: System service debugging information reporting 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

KeyQuerySystemExceptionMsg

Description: System service exception information query

Input parameters:

data class SystemExceptionReqBean(

var platform: SystemDebugPlatformEnum = SystemDebugPlatformEnum.UNKNOWN,

var errorType: SystemExceptionErrorEnum = SystemExceptionErrorEnum.ERROR_TYPE_ALL
)

Output parameter:

/**
* System abnormal information returned
*
* KP is kernel abnormality, HWDT is CPU freeze, reboot is process restart, DDR_training is parameter training restart, Unknown is unknown, these are all statistics of the entire chip
*/
data class SystemExceptionRspBean(

var statisticStr: String,

)

Type: Action

21. UpgradeServiceKey

KeyUpgradeQuery

Description: Upgrade condition query

Input parameters:

data class UpgradeQueryBean(
/**
*Client type, see CLIENT_TYPE_E enumeration
*/
var clientType: UpgradeClientTypeEnum = UpgradeClientTypeEnum.CLIENT_TYPE_GND,
)

Output parameter: None

Type: Action

KeyUpgradeEnter

Description: Enter the upgrade state

Input parameters:

data class UpgradeQueryBean(
/**
*Client type, see CLIENT_TYPE_E enumeration
*/
var clientType: UpgradeClientTypeEnum = UpgradeClientTypeEnum.CLIENT_TYPE_GND,
)

Output parameter: None

Type: Action

KeyUpgradeTransfer

Description: Product package transfer progress message

Request parameter: Int

Output parameter: None

Type: Action

KeyUpgradeCheck

Description: Product package file verification

Input parameters:

data class UpgradeCheckBean(
/**
* MD5 verification of product package files
*/
var MD5: String = "",
/**
* Product package file name, including full path
*/
var filename: String = "",
)

Output parameter: None

Type: Action

KeyUpgradeRcDeviceInfo

Description: View remote controller firmware 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

KeyUpgradeExecute

Description: Start upgrading

Input parameters:

data class UpgradeExecuteReqBean(
/**
* Forced upgrade flag
*/
var force: Boolean = false,
/**
* Product package file name, including full path
*/
var filename: String = "",
)

Output parameter: Int

Type: Action

KeyUpgradeProgress

Description: Report the overall progress of the upgrade

Input parameters: None

Output parameter: Int

Type: Listen

KeyUpgradeResult

Description: Upgrade result message

Input parameters: None

Output parameter:

data class UpgradeResultBean(
/**
*Upgrade error, see ERROR_TYPE_E enumeration
*/
var errCode: UpgradeErrorTypeEnum = UpgradeErrorTypeEnum.UPGRADE_ERR_NONE,
/**
*Error description
*/
var errDesc: String = "",
/**
*Response result 1-success 2-error
*/
var result: ResponseResultEnum = ResponseResultEnum.UNKNOWN,
)

Type: Listen

KeyUpgradeComponentCheck

Description: Component consistency check warning message

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: Listen

KeyUpgradeComponentRecover

Description: Execute component recovery message

Input parameters: None

Output parameter: None

Type: Action

KeyUpgradeStateQuery

Description: Query upgrade status message

Input parameters: None

Output parameter:

enum class UpgradeStateEnum(var value: Int) {
/**
* Idle
*/
IDLE(0),

/**
* Product package file is being transferred
*/
TRANSFER(1),

/**
* Upgrading
*/
EXECUTING(2),

/**
* Upgrade completed
*/
FINISH(3);

}

Type: Action

KeyUpgradeDiffAbilityCheckMsg

Description: Check whether differential upgrade message is supported

Input parameters: None

Output parameter:

data class UpgradeDiffAbility(var diffUpgrade:Boolean)

Type: Action

KeyAutoUpgradePreCheckReport

Description: Remote controller status detection and reporting before upgrade

Input parameters: None

Output parameter:

data class AutoUpgradePreCheckNtfBean(

var statusCode: AutoUpgradeStatusCode = AutoUpgradeStatusCode.SUCCESS,

var resultCode: AutoUpgradeSResultCode = AutoUpgradeSResultCode.UNKNOWN,
)

Type: Listen

22. UtmissPropertyKey

KeyUtmissEnable

Description: UTMISS 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

KeyManufacturerCode

Description: Manufacturer code unified social credit code

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

KeyRealNameRegistartionNum

Description: Real-name registration number

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

23. 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