Skip to main content

Live Flight Controls

Event

Flyto execution result event notification

Topic: thing/product/{gateway_sn}/events

Direction: up

Method: fly_to_point_progress

Data:

ColumnNameTypeconstraintDescription
fly_to_idFlyto target point IDtext
statusStateenum_string{"wayline_cancel":"Cancel flying to target point","wayline_failed":"Execution failed","wayline_ok":"Executed successfully, flown to target point","wayline_progress":"Executing"}
resultReturn codeintNon-zero represents an error
way_point_indexCurrently executing the nth waypointint
remaining_distanceRemaining mission distancefloat{"step":0.1,"unit_name":"Meters / m"}
remaining_timeRemaining mission timefloat{"step":0.1,"unit_name":"Seconds / s"}
planned_path_pointsList of planned trajectory pointsarray{"size": -, "item_type": struct}
»latitudeLatitude of the trajectory pointdouble{"max":90,"min":-90}Latitude of the trajectory point, angle value, negative for south latitude, positive for north latitude, accurate to 6 decimal places
»longitudeLongitude of the trajectory pointdouble{"max":180,"min":-180}Longitude of the trajectory point, angle value, east longitude is positive, west longitude is negative, accurate to 6 decimal places
»heightTrajectory point heightfloat{"step":0.1,"unit_name":"Meters / m"}Trajectory point height, ellipsoid height

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"fly_to_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"planned_path_points": [
{
"height": 123.234,
"latitude": 13.23,
"longitude": 123.234
}
],
"remaining_distance": 0,
"remaining_time": 0,
"result": 0,
"status": "wayline_progress",
"way_point_index": 0
},
"need_reply": 1,
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 16540709686556,
"method": "fly_to_point_progress"
}

One-key takeoff result event notification

Topic: thing/product/{gateway_sn}/events

Direction: up

Method: takeoff_to_point_progress

Data:

ColumnNameTypeconstraintDescription
statusTask stateenum_string{"task_finish":"One-key takeoff mission completed","task_ready":"Ready for takeoff","wayline_cancel":"Cancel flying to target point","wayline_failed":"Execution failed","wayline_ok":"Executed successfully, flown to target point","wayline_progress":"Executing"}
resultReturn codeintNon-zero represents an error
flight_idOne-key takeoff mission UUIDtext
track_idTrack IDtext
way_point_indexCurrently executing the nth waypointint
remaining_distanceRemaining mission distancefloat{"step":0.1,"unit_name":"Meters / m"}
remaining_timeRemaining mission timefloat{"step":0.1,"unit_name":"Seconds / s"}
planned_path_pointsList of planned trajectory pointsarray{"size": -, "item_type": struct}
»latitudeLatitude of the trajectory pointdouble{"max":90,"min":-90}Latitude of the trajectory point, angle value, negative for south latitude, positive for north latitude, accurate to 6 decimal places
»longitudeLongitude of the trajectory pointdouble{"max":180,"min":-180}Longitude of the trajectory point, angle value, east longitude is positive, west longitude is negative, accurate to 6 decimal places
»heightTrajectory point heightfloat{"step":0.1,"unit_name":"Meters / m"}Trajectory point height, ellipsoid height

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"flight_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"planned_path_points": [
{
"height": 123.234,
"latitude": 13.23,
"longitude": 123.234
}
],
"remaining_distance": 0,
"remaining_time": 0,
"result": 0,
"status": "wayline_ok",
"track_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"way_point_index": 1
},
"need_reply": 1,
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 16540709686556,
"method": "takeoff_to_point_progress"
}

Note: This protocol is no longer maintained and is inaccurate. For more accurate DRC link status, use the device property "drc_state" reported by the Dock or the "DRC heartbeat".

Topic: thing/product/{gateway_sn}/events

Direction: up

Method: drc_status_notify

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero represents an error
drc_stateDRC stateenum_int{"0":"Not connected","1":"Connecting","2":"Connected"}

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"drc_state": 2,
"result": 0
},
"need_reply": 1,
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "drc_status_notify"
}

DRC - flight control invalidity reason notification

DRC - flight control is an integrated drone control feature. If it is unavailable, the flight control capability cannot be used.

Topic: thing/product/{gateway_sn}/events

Direction: up

Method: joystick_invalid_notify

Data:

ColumnNameTypeconstraintDescription
reasonTask stateint{"0":"Remote controller lost connection","1":"Low battery return","2":"Low battery landing","3":"Close to the flight restriction zone","4":"Remote controller takes over control authority (for example, return triggered, Controller B takes over)"}

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"reason": 0
},
"need_reply": 1,
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "joystick_invalid_notify"
}

Report capture progress

When a photo-capturing action needs to continue, this event reports the progress. Currently only supported in: panorama photo mode

Topic: thing/product/{gateway_sn}/events

Direction: up

Method: camera_photo_take_progress

Data:

ColumnNameTypeconstraintDescription
outputOutputstruct
»statusCapturing stateenum_string{"fail":"Failed","in_progress":"Executing","ok":"Completed"}
»progressProgressstruct
»»current_stepExecution stepenum_int{"3000":"Panorama photo capturing has not started or has finished","3002":"Panorama photo is capturing","3005":"Panorama photo is synthesizing"}
»»percentProgress valueint{"max":"100","min":"0","step":"1"}
»extExtended contentstruct
»»camera_modeCurrent camera modeenum_int{"3":"Panorama"}
resultReturn codeintNon-zero represents an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"output": {
"ext": {
"camera_mode": 3
},
"progress": {
"current_step": 0,
"percent": 100
},
"status": "ok"
},
"result": 0
},
"need_reply": 1,
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_photo_take_progress"
}

Service

Grabbing flight control authority

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: flight_authority_grab

Data: null

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "flight_authority_grab"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: flight_authority_grab

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero represents an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "flight_authority_grab"
}

Grabbing payload control authority

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: payload_authority_grab

Data:

ColumnNameTypeconstraintDescription
payload_indexPayload enumeration valuetextEnumeration of camera payload and mounting position. Non-standard device_mode_key, formatted as {type-subtype-gimbalindex}. Refer to Product Support

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"payload_index": "39-0-7"
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "payload_authority_grab"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: payload_authority_grab

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero represents an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "payload_authority_grab"
}

Enter Live Flight Controls Mode

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: drc_mode_enter

Data:

ColumnNameTypeconstraintDescription
mqtt_brokerBroker connection informationstructGet the address and authentication information of the MQTT relay service
»addressServer connection addresstextServer connection address, for example: 192.0.2.1:8883, mqtt.dji.com:8883
»client_idClient IDtextCustomizable MQTT client ID. It is recommended to use the device's SN, which can also be combined with a meaningful prefix, for example, drc-4J4R101
»usernameUsernametextUsername used when establishing the connection
»passwordPasswordtextPassword required for authentication when establishing the connection
»expire_timeAuthentication information expiration timeint{"unit_name":"Seconds / s"}Authentication information can be reused within the validity period. In addition, the expiration of authentication information does not affect devices that have already established a connection
»enable_tlsWhether to enable TLSboolEnabling TLS encrypts the MQTT link
osd_frequencyOSD frequencyint{"max":30,"min":1,"unit_name":"Hertz / Hz"}Set the OSD reporting frequency
hsi_frequencyHSI frequencyint{"max":30,"min":1,"unit_name":"Hertz / Hz"}Set the HSI reporting frequency

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"hsi_frequency": 1,
"mqtt_broker": {
"address": "mqtt.dji.com:8883",
"client_id": "sn_a",
"enable_tls": true,
"expire_time": 1672744922,
"password": "jwt_token",
"username": "sn_a_username"
},
"osd_frequency": 10
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "drc_mode_enter"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: drc_mode_enter

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero represents an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "drc_mode_enter"
}

Exit Live Flight Controls Mode

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: drc_mode_exit

Data: null

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "drc_mode_exit"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: drc_mode_exit

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero represents an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "drc_mode_exit"
}

One-Key Takeoff

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: takeoff_to_point

Data:

ColumnNameTypeconstraintDescription
target_latitudeTarget point latitudedouble{"max":90,"min":-90}Target point latitude, in degree values. Negative for south, positive for north. Precision up to 6 decimal places
target_longitudeTarget point longitudedouble{"max":180,"min":-180}Target point longitude, in degree values. Positive for east, negative for west. Precision up to 6 decimal places
target_heightTarget point heightfloat{"max":1500,"min":2,"step":0.1,"unit_name":"Meters / m"}Target point height (ellipsoidal height), using the WGS84 model. Default behavior after the aircraft reaches the point: hovering
security_takeoff_heightSafe takeoff heightfloat{"max":1500,"min":20,"step":0.1,"unit_name":"Meters / m"}Altitude relative to the (Dock) takeoff point (ALT). The aircraft first ascends to a specific height, then flies toward the target point.
rth_mode[Required] Return home mode setting valueenum_int{"0":"Intelligent altitude","1":"Preset altitude"}In intelligent return home mode, the aircraft will automatically plan the optimal return home altitude. The DJI Dock currently does not support setting the return home altitude mode and can only choose the 'Preset altitude' mode. When the environment or lighting does not meet the requirements of the visual system (such as direct sunlight in the evening, weak or no light at night), the aircraft will use the return home altitude you set for straight-line return home
rth_altitudeReturn home altitudeint{"max":1500,"min":2,"step":1,"unit_name":"Meters / m"}Altitude relative to the (Dock) takeoff point, relative altitude ALT
rc_lost_actionRemote controller lost control actionenum_int{"0":"Hovering","1":"Landing","2":"Returning to home"}Remote controller lost control action
commander_mode_lost_action[Required] To-point flight loss of control actionenum_int{"0":"Continue with the to-point flight mission","1":"Exit the to-point flight mission and perform normal loss of control behavior"}
commander_flight_mode[Required] To-point flight mode setting valueenum_int{"0":"Intelligent altitude flight","1":"Preset altitude flight"}
commander_flight_height[Required] To-point flight heightfloat{"max":3000,"min":2,"step":0.1,"unit_name":"Meters / m"}Altitude relative to the (Dock) takeoff point, relative altitude ALT
flight_idOne-key takeoff mission UUIDtextMission UUID, globally unique, used for coloring so that the cloud can distinguish whether this value is a regular planned mission or a one-key takeoff mission
max_speedMaximum speed achievable during the one-key takeoff flightint{"max":15,"min":1,"unit_name":"Meters per second / m/s"}
simulate_missionWhether to execute the mission in the simulatorstructOptional field, used for simulated mission debugging indoors.
>Note: Before performing simulated flights, be sure to remove the propellers to prevent them from being cut off when the dock cover closes.
»is_enableWhether to enable the simulator missionenum_int{"0":"Do not enable","1":"Enable"}Turn the simulator on or off for this mission
»latitudeLatitudedouble{"max":"90.0","min":"-90.0"}
»longitudeLongitudedouble{"max":"180.0","min":"-180.0"}
flight_safety_advance_checkFlight safety pre-checkbool{"0":"Closed","1":"Opened"}Set whether flight safety is pre-checked during one-key takeoff and wayline missions. This field is optional and defaults to 0; a value of 0 means closed, and 1 means opened. Flight safety pre-check means: before the aircraft executes a mission, it checks whether its own operating area file is consistent with the cloud; if inconsistent, it pulls the updated file; if consistent, it does nothing

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"flight_id": "ABDEAC21DCADDA",
"max_speed": 12,
"rc_lost_action": 0,
"rth_altitude": 100,
"security_takeoff_height": 100,
"target_height": 100,
"target_latitude": 12.23,
"target_longitude": 12.32,
"commander_mode_lost_action": 1,
"commander_flight_height": 80,
"flight_safety_advance_check": 1
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "takeoff_to_point"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: takeoff_to_point

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero represents an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "takeoff_to_point"
}

flyto Fly to Target Point

Special note: The aircraft has a minimum flight altitude (20m) safety guarantee mechanism. If the altitude of the aircraft relative to the takeoff point is lower than 20m, it will first ascend to 20m.

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: fly_to_point

Data:

ColumnNameTypeconstraintDescription
fly_to_idFly to target point IDtext
max_speedMaximum speed achievable during the flyto flightint{"max":15,"min":0,"unit_name":"Meters per second / m/s"}
pointsList of flyto target pointsarray{"size": -, "item_type": struct}Only supports 1 target point
»latitudeTarget point latitudedouble{"max":90,"min":-90}Target point latitude, in degree values. Negative for south, positive for north. Precision up to 6 decimal places
»longitudeTarget point longitudedouble{"max":180,"min":-180}Target point longitude, in degree values. Positive for east, negative for west. Precision up to 6 decimal places
»heightTarget point heightfloat{"max":10000,"min":2,"step":0.1,"unit_name":"Meters / m"}Target point height (ellipsoidal height), using the WGS84 model

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"fly_to_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"max_speed": 12,
"points": [
{
"height": 100,
"latitude": 12.23,
"longitude": 12.23
}
]
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "fly_to_point"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: fly_to_point

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero represents an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "fly_to_point"
}

Stop the flyto Fly to Target Point Task

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: fly_to_point_stop

Data: null

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "fly_to_point_stop"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: fly_to_point_stop

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero represents an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "fly_to_point_stop"
}

Update the flyto Target Point

During the process of one-key takeoff or flyto fly to target point, the target point can be quickly updated through this command

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: fly_to_point_update

Data:

ColumnNameTypeconstraintDescription
max_speedMaximum speed achievable during the live flight controls flightint{"max":15,"min":1,"unit_name":"Meters per second / m/s"}
pointsList of updated target pointsarray{"size": -, "item_type": struct}Only supports 1 target point
»latitudeTarget point latitudedouble{"max":90,"min":-90}Target point latitude, in degree values. Negative for south, positive for north. Precision up to 6 decimal places
»longitudeTarget point longitudedouble{"max":180,"min":-180}Target point longitude, in degree values. Positive for east, negative for west. Precision up to 6 decimal places
»heightTarget point heightfloat{"max":10000,"min":2,"step":0.1,"unit_name":"Meters / m"}Target point height (ellipsoidal height), using the WGS84 model

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"max_speed": 12,
"points": [
{
"height": 100,
"latitude": 12.23,
"longitude": 12.23
}
]
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "fly_to_point_update"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: fly_to_point_update

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero represents an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "fly_to_point_update"
}

Payload control - subject zoom

The subject zoom function enables you to select and frame a target area within the camera lens's field of view. When activated, the camera screen will automatically switch to the target frame, zoom in, and rotate the gimbal.

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_frame_zoom

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumerationtext
camera_typeCamera typeenum_string{"ir":"Infrared","wide":"Wide-angle","zoom":"Zoom"}
lockedWhether the relative relationship between the aircraft heading and the gimbal is lockedbool{"0":"Only the gimbal turns, the aircraft body does not turn","1":"Lock the aircraft heading, the gimbal and the aircraft body turn together"}
xUpper-left coordinate x of the target framefloat{"max":"1","min":"0","step":"0.000001","unit_name":"None / "}
yUpper-left coordinate y of the target framefloat{"max":"1","min":"0","step":"0.000001","unit_name":"None / "}
widthWidth of the target framefloat{"max":"1","min":"0","step":"0.000001","unit_name":"None / "}
heightHeight of the target framefloat{"max":"1","min":"0","step":"0.000001","unit_name":"None / "}

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"camera_type": "zoom",
"height": 0.2,
"locked": true,
"payload_index": "39-0-7",
"width": 0.2,
"x": 0.5,
"y": 0.5
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_frame_zoom"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_frame_zoom

Data:

ColumnNameTypeconstraintDescription
resultReturn codeint

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_frame_zoom"
}

Payload control - Switch Camera Mode

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_mode_switch

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumerationtextCamera enumeration value. Non-standard device_mode_key, formatted as {type-subtype-gimbalindex}. Refer to Product Support
camera_modeCamera modeenum_int{"0":"Capturing","1":"Recording","2":"Smart Low-Light","3":"Panorama"}

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"camera_mode": 0,
"payload_index": "39-0-7"
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_mode_switch"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_mode_switch

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero represents an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_mode_switch"
}

Payload control - Start capturing

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_photo_take

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumerationtextCamera enumeration value. Non-standard device_mode_key, formatted as {type-subtype-gimbalindex}. Refer to Product Support

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"payload_index": "39-0-7"
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_photo_take"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_photo_take

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero represents an error
outputOutputstruct
»statusTask stateenum_string{"in_progress":"Executing"}When panorama photo capturing or other persistent photo capturing is in progress, state information will be reported, indicating that further persistent progress events will follow. For details, refer to the camera_photo_take_progress event

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_photo_take"
}

Payload control - Stop capturing

Command to stop capturing. Currently, only panorama mode is supported.

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_photo_stop

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumerationtextCamera enumeration value. Non-standard device_mode_key, formatted as {type-subtype-gimbalindex}. Refer to Product Support

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"payload_index": "39-0-7"
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_photo_stop"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_photo_stop

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero represents an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_photo_stop"
}

Payload control - Start Recording

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_recording_start

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumerationtextCamera enumeration value. Non-standard device_mode_key, formatted as {type-subtype-gimbalindex}. Refer to Product Support

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"payload_index": "39-0-7"
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_recording_start"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_recording_start

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero represents an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_recording_start"
}

Payload control - Stop Recording

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_recording_stop

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumerationtextCamera enumeration value. Non-standard device_mode_key, formatted as {type-subtype-gimbalindex}. Refer to Product Support

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"payload_index": "39-0-7"
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_recording_stop"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_recording_stop

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero represents an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_recording_stop"
}

Payload Control—Screen Drag Control

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_screen_drag

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumerationtextCamera enumeration value. A non-standard device_mode_key, in the format {type-subtype-gimbalindex}. See Product Support
lockedWhether the relative relationship between the aircraft heading and the gimbal is lockedbool{"false":"Only the gimbal rotates, the aircraft body does not","true":"Lock the aircraft heading; the gimbal and aircraft body rotate together"}
pitch_speedGimbal pitch speeddouble{"unit_name":"degree per second / degree/s"}Gimbal pitch speed
yaw_speedGimbal yaw speeddouble{"unit_name":"degree per second / degree/s"}Gimbal yaw speed; takes effect only when the aircraft heading is not locked

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"locked": true,
"payload_index": "39-0-7",
"pitch_speed": 0.1,
"yaw_speed": 0.1
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_screen_drag"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_screen_drag

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintA non-zero value indicates an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_screen_drag"
}

Payload Control—Double-tap to AIM

The double-tap AIM feature: within the field of view of the camera lens, double-tap a target point in the lens, and that target point becomes the center of the lens field of view.

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_aim

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumerationtextCamera enumeration value. A non-standard device_mode_key, in the format {type-subtype-gimbalindex}. See Product Support
camera_typeCamera typeenum_string{"ir":"Infrared","wide":"Wide-angle","zoom":"Zoom"}
lockedWhether the relative relationship between the aircraft heading and the gimbal is lockedbool{"false":"Only the gimbal rotates, the aircraft body does not","true":"Lock the aircraft heading; the gimbal and aircraft body rotate together"}
xTarget coordinate xdouble{"max":1,"min":0}Target coordinate x, with the top-left corner of the lens as the coordinate origin and the horizontal direction as x
yTarget coordinate ydouble{"max":1,"min":0}Target coordinate y, with the top-left corner of the lens as the coordinate origin and the vertical direction as y

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"camera_type": "zoom",
"locked": true,
"payload_index": "39-0-7",
"x": 0.5,
"y": 0.5
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_aim"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_aim

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintA non-zero value indicates an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_aim"
}

Payload Control—Zoom

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_focal_length_set

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumerationtextCamera enumeration value. A non-standard device_mode_key, in the format {type-subtype-gimbalindex}. See Product Support
camera_typeCamera typeenum_string{"ir":"Infrared","wide":"Wide-angle","zoom":"Zoom"}Camera type enumeration
zoom_factorZoom factordouble{"max":200,"min":2}Zoom factor. Visible light is 2-200; infrared is 2-20

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"camera_type": "zoom",
"payload_index": "39-0-7",
"zoom_factor": 5
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_focal_length_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_focal_length_set

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintA non-zero value indicates an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_focal_length_set"
}

Payload Control—Reset Gimbal

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: gimbal_reset

Data:

ColumnNameTypeconstraintDescription
payload_indexPayload indextextPayload index, camera enumeration value. A non-standard device_mode_key, in the format {type-subtype-gimbalindex}. See Product Support
reset_modeReset mode typeenum_int{"0":"Recenter","1":"Down","2":"Yaw recenter","3":"Pitch down"}

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"payload_index": "39-0-7",
"reset_mode": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "gimbal_reset"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: gimbal_reset

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintA non-zero value indicates an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "gimbal_reset"
}

Payload Control—Look At

The Look At feature turns the aircraft from its current orientation toward the point specified by the actual latitude, longitude, and altitude. On the M30/M30T model, locking the aircraft heading is recommended; in gimbal-only rotation scenarios, the Look At feature behaves abnormally after the gimbal reaches its limit angle.

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_look_at

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumerationtextCamera enumeration value. A non-standard device_mode_key, in the format {type-subtype-gimbalindex}. See Product Support
lockedWhether the relative relationship between the aircraft heading and the gimbal is lockedbool{"false":"Only the gimbal rotates, the aircraft body does not","true":"Lock the aircraft heading; the gimbal and aircraft body rotate together"}
latitudeTarget point latitudedouble{"max":90,"min":-90}Angle value. South latitude is negative, north latitude is positive, accurate to 6 decimal places.
longitudeTarget point longitudedouble{"max":180,"min":-180}Angle value. East longitude is positive, west longitude is negative, accurate to 6 decimal places.
heightTarget point altitudefloat{"max":10000,"min":2,"step":0.1,"unit_name":"meter / m"}Target point altitude (ellipsoidal height)

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"height": 100,
"latitude": 12.23,
"locked": true,
"longitude": 12.23,
"payload_index": "39-0-7"
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_look_at"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_look_at

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintA non-zero value indicates an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_look_at"
}

Payload Control—Split Screen

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_screen_split

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumerationtextCamera enumeration value. A non-standard device_mode_key, in the format {type-subtype-gimbalindex}. See Product Support
enableWhether to enable split screenboolTurn split screen on or off

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"enable": true,
"payload_index": "39-0-7"
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_screen_split"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_screen_split

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintA non-zero value indicates an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_screen_split"
}

Payload control - Photo storage settings

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: photo_storage_set

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumerationtextCamera enumeration value. A non-standard device_mode_key, in the format {type-subtype-gimbalindex}. Refer to Product Support
photo_storage_settingsPhoto storage settings collectionarray{"size": -, "item_type": enum_string}Photo storage type {current, vision, ir}; multiple selections allowed

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"payload_index": "39-0-7",
"photo_storage_settings": [
"current",
"wide",
"zoom",
"ir"
]
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "photo_storage_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: photo_storage_set

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero indicates an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "photo_storage_set"
}

Payload control - Video storage settings

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: video_storage_set

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumerationtextCamera enumeration value. A non-standard device_mode_key, in the format {type-subtype-gimbalindex}. Refer to Product Support
video_storage_settingsVideo storage settings collectionarray{"size": -, "item_type": enum_string}Video storage type {current, wide, zoom, ir}; multiple selections allowed

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"payload_index": "39-0-7",
"video_storage_settings": [
"current",
"wide",
"zoom",
"ir"
]
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "video_storage_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: video_storage_set

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero indicates an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "video_storage_set"
}

Payload control - Camera exposure mode settings

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_exposure_mode_set

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumerationtextCamera enumeration value. A non-standard device_mode_key, in the format {type-subtype-gimbalindex}. Refer to Product Support
camera_typeCamera typeenum_string{"wide":"Wide-angle","zoom":"Zoom"}Camera type enumeration
exposure_modeExposure modeenum_int{"1":"Auto","2":"Shutter Priority","3":"Aperture Priority","4":"Manual"}

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"camera_type": "zoom",
"exposure_mode": 1,
"payload_index": "39-0-7"
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_exposure_mode_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_exposure_mode_set

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero indicates an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_exposure_mode_set"
}

Payload control - Camera exposure value adjustment

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_exposure_set

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumerationtextCamera enumeration value. A non-standard device_mode_key, in the format {type-subtype-gimbalindex}. Refer to Product Support
camera_typeCamera typeenum_string{"wide":"Wide-angle","zoom":"Zoom"}
exposure_valueExposure valueenum_string{"1":"-5.0EV","2":"-4.7EV","3":"-4.3EV","4":"-4.0EV","5":"-3.7EV","6":"-3.3EV","7":"-3.0EV","8":"-2.7EV","9":"-2.3EV","10":"-2.0EV","11":"-1.7EV","12":"-1.3EV","13":"-1.0EV","14":"-0.7EV","15":"-0.3EV","16":"0EV","17":"0.3EV","18":"0.7EV","19":"1.0EV","20":"1.3EV","21":"1.7EV","22":"2.0EV","23":"2.3EV","24":"2.7EV","25":"3.0EV","26":"3.3EV","27":"3.7EV","28":"4.0EV","29":"4.3EV","30":"4.7EV","31":"5.0EV","255":"FIXED"}

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"camera_type": "zoom",
"exposure_value": 5,
"payload_index": "39-0-7"
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_exposure_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_exposure_set

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero indicates an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_exposure_set"
}

Payload control - Camera focus mode settings

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_focus_mode_set

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumerationtextCamera enumeration value. A non-standard device_mode_key, in the format {type-subtype-gimbalindex}. Refer to Product Support
camera_typeCamera typeenum_string{"wide":"Wide-angle","zoom":"Zoom"}Camera type enumeration. Note: The Matrice 30 Series aircraft only supports configuring this parameter under the zoom lens
focus_modeFocus modeenum_int{"0":"MF","1":"AFS","2":"AFC"}

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"camera_type": "zoom",
"focus_mode": 1,
"payload_index": "39-0-7"
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_focus_mode_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_focus_mode_set

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero indicates an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_focus_mode_set"
}

Payload control - Camera focus value settings

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_focus_value_set

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumerationtextCamera enumeration value. A non-standard device_mode_key, in the format {type-subtype-gimbalindex}. Refer to Product Support
camera_typeCamera typeenum_string{"wide":"Wide-angle","zoom":"Zoom"}Camera type enumeration. Note: The Matrice 30 Series aircraft only supports configuring this parameter under the zoom lens
focus_valueFocus valueintFocus value. For the range, refer to the aircraft thing model properties zoom_max_focus_value and zoom_min_focus_value

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"camera_type": "zoom",
"focus_value": 5,
"payload_index": "39-0-7"
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_focus_value_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_focus_value_set

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero indicates an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_focus_value_set"
}

Payload Control - Point Focus

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_point_focus_action

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumtextCamera enum value. A non-standard device_mode_key, in the format {type-subtype-gimbalindex}. Refer to Product Support
camera_typeCamera typeenum_string{"wide":"Wide-angle","zoom":"Zoom"}Camera type enum. Note: Matrice 30 Series aircraft only support configuring this parameter under the zoom lens
xFocus point coordinate xdouble{"max":1,"min":0}The top-left corner of the lens is the coordinate origin; the horizontal direction is x
yFocus point coordinate ydouble{"max":1,"min":0}The top-left corner of the lens is the coordinate origin; the vertical direction is y

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"camera_type": "zoom",
"payload_index": "39-0-7",
"x": 0.5,
"y": 0.5
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_point_focus_action"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_point_focus_action

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero indicates an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_point_focus_action"
}

Payload Control - Infrared Temperature Measurement Mode Setting

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: ir_metering_mode_set

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumtextCamera enum value. A non-standard device_mode_key, in the format {type-subtype-gimbalindex}. Refer to Product Support
modeTemperature measurement modeenum_int{"0":"Disable temperature measurement","1":"Spot temperature measurement","2":"Area temperature measurement"}

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"mode": 1,
"payload_index": "39-0-7"
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "ir_metering_mode_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: ir_metering_mode_set

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero indicates an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "ir_metering_mode_set"
}

Payload Control - Infrared Temperature Measurement Point Setting

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: ir_metering_point_set

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumtextCamera enum value. A non-standard device_mode_key, in the format {type-subtype-gimbalindex}. Refer to Product Support
xTemperature measurement point coordinate xdouble{"max":1,"min":0}The top-left corner of the lens is the coordinate origin; the horizontal direction is x
yTemperature measurement point coordinate ydouble{"max":1,"min":0}The top-left corner of the lens is the coordinate origin; the vertical direction is y

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"payload_index": "39-0-7",
"x": 0.5,
"y": 0.5
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "ir_metering_point_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: ir_metering_point_set

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero indicates an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "ir_metering_point_set"
}

Payload Control - Infrared Temperature Measurement Area Setting

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: ir_metering_area_set

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera enumtextCamera enum value. A non-standard device_mode_key, in the format {type-subtype-gimbalindex}. Refer to Product Support
xTop-left corner coordinate x of the temperature measurement areadouble{"max":1,"min":0}The top-left corner of the lens is the coordinate origin; the horizontal direction is x
yTop-left corner coordinate y of the temperature measurement areadouble{"max":1,"min":0}The top-left corner of the lens is the coordinate origin; the vertical direction is y
widthWidth of the temperature measurement areadouble{"max":1,"min":0}
heightHeight of the temperature measurement areadouble{"max":1,"min":0}

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"height": 0.5,
"payload_index": "39-0-7",
"width": 0.5,
"x": 0.5,
"y": 0.5
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "ir_metering_area_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: ir_metering_area_set

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero indicates an error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "ir_metering_area_set"
}

DRC

DRC - Stick Control

After establishing the DRC link, you can control the aircraft and gimbal attitude through the "DRC - Stick Control" command. The send frequency must be maintained at 5-10 Hz in order to control the aircraft's movement relatively precisely. This protocol has no acknowledgment mechanism.

Topic: thing/product/{gateway_sn}/drc/down

Direction: down

Method: stick_control

Data:

ColumnNameTypeconstraintDescription
rollRoll channelint{"max":"1684","min":"364","unit_name":""}Corresponds to channel A of the remote controller, controlling aircraft roll (manifested as left-right translation). Stick value range [1024±660], with 1024 as the median (no action); increasing the value indicates tilting right, decreasing indicates tilting left.
pitchPitch channelint{"max":"1684","min":"364","unit_name":""}Corresponds to channel E of the remote controller, controlling aircraft pitch (manifested as forward-backward translation). Stick value range [1024±660]**, with 1024 as the median (no action); increasing the value indicates pitching forward (diving), decreasing indicates pitching backward (nose up).
throttleThrottle channelint{"max":"1684","min":"364","unit_name":""}Corresponds to channel T of the remote controller, controlling aircraft ascent and descent. Stick value range [1024±660], with 1024 as the hover state; increasing the value indicates ascending, decreasing indicates descending.
yawYaw channelint{"max":"1684","min":"364","unit_name":""}Corresponds to channel R of the remote controller, controlling aircraft yaw (manifested as left-right rotation). Stick value range [1024±660], with 1024 as the median (no action); increasing the value indicates clockwise rotation, decreasing indicates counterclockwise rotation.

Example:

{
"seq": 1,
"method": "stick_control",
"data": {
"roll": 1024,
"pitch": 1024,
"throttle": 1024,
"yaw": 1024,
"gimbal_pitch": 1024
}
}

DRC - Flight Control (Deprecated)

Note: This protocol is no longer maintained. Use "DRC - Stick Control" for better response performance.

After entering Live Flight Controls mode, this command can be used to control the aircraft's navigation direction and speed. The send frequency must be kept within 5-10 Hz so the device can control speed changes and direction relatively precisely.

Topic: thing/product/{gateway_sn}/drc/down

Direction: down

Method: drone_control

Data:

ColumnNameTypeconstraintDescription
seqCommand sequence numberintAn incrementing sequence number that ensures commands are executed in order. If the x, y, h, or w parameters change, seq must start incrementing from 0.
xSpeed in the forward/backward directiondouble{"max":17,"min":-17,"unit_name":"meters per second / m/s"}Maximum forward/backward speed; a negative value indicates moving backward
ySpeed in the left/right directiondouble{"max":17,"min":-17,"unit_name":"meters per second / m/s"}Maximum left/right speed; a negative value indicates moving left
hSpeed in the up/down directiondouble{"max":5,"min":-4,"unit_name":"meters per second / m/s"}Maximum up/down speed; a negative value indicates moving down
wAircraft body angular velocitydouble{"max":90,"min":-90,"unit_name":"degrees per second / degree/s"}Maximum clockwise/counterclockwise angular velocity; a negative value indicates counterclockwise rotation

Example:

{
"data": {
"h": 2.76,
"seq": 1,
"w": 2.86,
"x": 2.34,
"y": -2.45
},
"method": "drone_control"
}

Topic: thing/product/{gateway_sn}/drc/up

Direction: up

Method: drone_control

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintIf the send is successful, there will be no return code. Non-zero indicates an error. Exception cases: no flight control authority, no virtual stick permission, incorrect data packet sequence number
outputOutputstruct
»seqCommand sequence numberintAn incrementing sequence number that ensures commands are executed in order

Example:

{
"data": {
"output": {
"seq": -1
},
"result": 319033
},
"method": "drone_control"
}

DRC-Aircraft emergency stop

Topic: thing/product/{gateway_sn}/drc/down

Direction: down

Method: drone_emergency_stop

Data: null

Example:

{
"data": {},
"method": "drone_emergency_stop"
}

Topic: thing/product/{gateway_sn}/drc/up

Direction: up

Method: drone_emergency_stop

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-zero indicates an error

Example:

{
"data": {
"result": 0
},
"method": "drone_emergency_stop"
}

DRC-Heartbeat

The seq at the same level as data is an incrementing sequence number that guarantees commands are executed in order.

Topic: thing/product/{gateway_sn}/drc/down

Direction: down

Method: heart_beat

Data:

ColumnNameTypeconstraintDescription
seq[Deprecated] Command sequence numberintIncrementing sequence number that guarantees commands are executed in order
timestampHeartbeat send timestampint{"unit_name":"millisecond / ms"}The application side can use the heartbeat protocol to determine whether the DRC link is active. If no heartbeat response is received within a certain period, the DRC link can be considered abnormal and a retry can be initiated. If the device does not receive a heartbeat protocol sent by the application side for more than 1 minute, the device will consider the DRC link idle and exit the DRC link.

Example:

{
"data": {
"timestamp": 1670415891013
},
"method": "heart_beat",
"seq": 1
}

Topic: thing/product/{gateway_sn}/drc/up

Direction: up

Method: heart_beat

Data:

ColumnNameTypeconstraintDescription
seq[Deprecated] Command sequence numberintIncrementing sequence number that guarantees commands are executed in order
timestampHeartbeat send timestampint{"unit_name":"millisecond / ms"}The application side can use the heartbeat protocol to determine whether the DRC link is active. If no heartbeat response is received within a certain period, the DRC link can be considered abnormal and a retry can be initiated. If the device does not receive a heartbeat protocol sent by the application side for more than 1 minute, the device will consider the DRC link idle and exit the DRC link.

Example:

{
"data": {
"timestamp": 1670415891013
},
"method": "heart_beat",
"seq": 1
}

DRC-Obstacle avoidance information report

Topic: thing/product/{gateway_sn}/drc/up

Direction: up

Method: hsi_info_push

Data:

ColumnNameTypeconstraintDescription
up_distanceDistance of upward obstacleint{"unit_name":"millimeter / mm"}
down_distanceDistance of downward obstacleint{"unit_name":"millimeter / mm"}
up_enableState of upward obstacle sensing switchbool
up_workWorking state of upward obstacle sensingbool
down_enableState of downward obstacle sensing switchbool
down_workWorking state of downward obstacle sensingbool
left_enableState of leftward obstacle sensing switchbool
left_workWorking state of leftward obstacle sensingbool
right_enableState of rightward obstacle sensing switchbool
right_workWorking state of rightward obstacle sensingbool
front_enableState of forward obstacle sensing switchbool
front_workWorking state of forward obstacle sensingbool
back_enableState of backward obstacle sensing switchbool
back_workWorking state of backward obstacle sensingbool
vertical_enableState of vertical obstacle sensing switchbool
vertical_workWorking state of vertical obstacle sensingbool
horizontal_enableState of horizontal obstacle sensing switchbool
horizontal_workWorking state of horizontal obstacle sensingbool
around_distancesSurrounding obstacle distancearray{"size": 360, "item_type": int}Horizontal observation points distributed over the angular range [0,360), where 0 corresponds to straight ahead of the aircraft heading, distributed clockwise; for example, 0 degrees is straight ahead of the aircraft heading and 90 degrees is directly to the right of the aircraft. Each value indicates the distance between the obstacle at that angle and the aircraft; 60000 means there is no obstacle at that angle. If an empty array is reported, it means there are no obstacles at any angle. If an array of 4 values is reported, it means the data is TOF obstacle-sensing data, reported when infrared obstacle sensing fails, such as in nighttime scenarios.

Example:

{
"method": "hsi_info_push",
"timestamp": 1670415891013,
"data": {
"up_distance": 10,
"down_distance": 10,
"around_distance": [
10,
8,
9,
16,
2
],
"up_enable": true,
"up_work": true,
"down_enable": true,
"down_work": true,
"left_enable": true,
"left_work": true,
"right_enable": true,
"right_work": true,
"front_enable": true,
"front_work": true,
"back_enable": true,
"back_work": true,
"vertical_enable": true,
"vertical_work": true,
"horizontal_enable": true,
"horizontal_work": true
}
}

Topic: thing/product/{gateway_sn}/drc/up

Direction: up

Method: delay_info_push

Data:

ColumnNameTypeconstraintDescription
sdr_cmd_delayTransmission protocol command link delayint{"unit_name":"millisecond / ms"}Transmission protocol command link delay
liveview_delay_listVideo stream transmission delayarray{"size": -, "item_type": struct}Video stream transmission delay, multi-channel code stream
»video_idCode stream indextextCode stream index
»liveview_delay_timeCode stream delayint{"unit_name":"millisecond / ms"}Code stream delay

Example:

{
"data": {
"liveview_delay_list": [
{
"liveview_delay_time": 60,
"video_id": "1581BN210004555439234/52-0-0/normal-0"
},
{
"liveview_delay_time": 80,
"video_id": "1581BN210004555439234/53-0-0/normal-0"
}
],
"sdr_cmd_delay": 10
},
"timestamp": 1670415891013
}

DRC-High-frequency osd information report

Topic: thing/product/{gateway_sn}/drc/up

Direction: up

Method: osd_info_push

Data:

ColumnNameTypeconstraintDescription
attitude_headHead angle of aircraft attitudedouble{"unit_name":"degree / °"}Head angle of aircraft attitude
latitudeAircraft latitudedouble{"unit_name":"degree / °"}
longitudeAircraft longitudedouble{"unit_name":"degree / °"}
heightAircraft altitudedouble{"unit_name":"degree / °"}Aircraft altitude above sea level
speed_xCurrent speed of the aircraft in the X coordinate directiondouble{"unit_name":"meter per second / m/s"}Current speed of the aircraft in the X coordinate direction
speed_yCurrent speed of the aircraft in the Y coordinate directiondouble{"unit_name":"meter per second / m/s"}Current speed of the aircraft in the Y coordinate direction
speed_zCurrent speed of the aircraft in the Z coordinate directiondouble{"unit_name":"meter per second / m/s"}
gimbal_pitchGimbal pitch angledouble{"unit_name":"degree / °"}
gimbal_rollGimbal roll angledouble{"unit_name":"degree / °"}
gimbal_yawGimbal yaw angledouble{"unit_name":"degree / °"}

Example:

{
"data": {
"attitude_head": 60,
"gimbal_pitch": 60,
"gimbal_roll": 60,
"gimbal_yaw": 60,
"height": 10,
"latitude": 10,
"longitude": 10,
"speed_x": 10,
"speed_y": 10,
"speed_z": 10
},
"timestamp": 1670415891013
}