跳到主要内容

Command Flight and Gimbal Control

Interface Changes​

The camera_*, ir_metering_*, video_* and gimbal_* entries below all belong to payload control.

✓ available, — not available. Interfaces not listed are identical on EVO Nest and Autel Nest2.

MethodFunctionEVO NestAutel Nest2Notes
camera_mode_switchPayload Control - Camera Mode Switch✓—Autel Nest2 supports photo and video at the same time; no switching required
camera_exposure_setCamera Exposure Value Setting—✓
camera_exposure_compensation_setCamera Exposure Compensation Setting—✓
camera_iso_mode_setCamera ISO Mode Setting—✓
camera_iso_value_setCamera ISO Value Setting—✓
camera_shutter_mode_setCamera Shutter Mode Setting—✓
camera_shutter_value_setCamera Shutter Speed Value Setting—✓
camera_white_balance_mode_setCamera White Balance Mode Setting—✓
camera_white_balance_value_setCamera White Balance Color Temperature Value Setting—✓
camera_focus_mode_setCamera Focus Mode Setting—✓
camera_focus_value_setCamera Focus Value Setting—✓
camera_brightness_value_setCamera Brightness Setting—✓
camera_defog_mode_setCamera Electronic Defog Mode Setting—✓
camera_photo_size_setCamera Photo Size Setting—✓
camera_video_resolution_setCamera Video Resolution Setting—✓
camera_ultra_pixel_mode_setCamera Ultra Sensitivity Mode Setting—✓
camera_screen_splitCamera Screen Split Mode Setting—✓
camera_linkage_zoomLinkage Zoom Switch—✓
camera_arm_light_setArm Light Switch—✓
camera_resetReset Camera Settings—✓
camera_ffcInfrared FFC Calibration—✓
camera_ir_fusion_setInfrared Dual-Light Fusion Switch—✓
camera_ir_super_resolution_setInfrared Super Resolution Switch—✓
camera_thermal_image_enhance_setInfrared Image Enhancement Setting—✓
ir_metering_mode_setInfrared Temperature Measurement Mode Setting—✓
ir_metering_point_setInfrared Temperature Measurement Spot Setting—✓
ir_metering_area_setInfrared Temperature Measurement Region Setting—✓
video_encode_settingsCamera Video Encoding Format Setting—✓
video_format_settingsCamera Video Format Setting—✓
video_subtitle_modeCamera Video Subtitle Switch—✓
gimbal_pitch_max_speedGimbal Pitch Max Speed Setting—✓
mission_pausePause the Flyto Mission—✓
mission_recoveryResume the Flyto Mission—✓
fly_to_point_v2Fly to the Target Point V2—✓
fly_to_point_progress_v2Flyto Execution Result Event Notification V2—✓Uplink event
poi_mode_enterEnter Point of Interest Orbit—✓
poi_mode_exitExit Point of Interest Orbit—✓
poi_circle_speed_setSet the Point of Interest Orbit Speed Preset—✓
poi_status_notifyPoint of Interest Orbit Status Notification—✓Uplink event

Flyto Execution Result Event Notification​

Topic: thing/product/{gateway_sn}/events

Direction: up

Method: fly_to_point_progress

Data:

ColumnNameTypeconstraintDescription
fly_to_idTarget Point IDtextTask ID for flying to the target point
statusStatusenum_string{"wayline_cancel":"Fly to target point canceled", "wayline_failed":"Execution failed", "wayline_ok":"Execution successful, reached target point", "wayline_paused":"Paused and hovering", "wayline_progress":"In progress"}Task execution status
resultReturn CodeintNon-zero represents an error
percentTask Progress Percentageint{"max":100,"min":0,"step":1}Progress of flying to the target point. Monotonically non-decreasing; 100 on arrival, and frozen at the value captured at pause time while paused
way_point_indexCurrent Waypoint IndexintCurrent waypoint index being executed
remaining_distanceRemaining Task Distancefloat{"step":0.1, "unit_name":"meters / m"}Remaining distance to the target point
remaining_timeRemaining Task Timefloat{"step":0.1, "unit_name":"seconds / s"}Estimated remaining flight time
planned_path_pointsPlanned Path Pointsarray{"}size": -, "item_type": struct}Planned wayline trajectory points
»latitudeTrajectory Latitudedouble{"max":90,"min":-90}Latitude of the trajectory point, accurate to 6 decimal places
»longitudeTrajectory Longitudedouble{"max":180,"min":-180}Longitude of the trajectory point, accurate to 6 decimal places
»heightTrajectory Heightfloat{"step":0.1,"unit_name":"meters / m"}Height of the trajectory point, in meters

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"fly_to_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"percent": 63,
"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"
}

Flyto Execution Result Event Notification V2​

Topic: thing/product/{gateway_sn}/events

Direction: up

Method: fly_to_point_progress_v2

Data:

ColumnNameTypeconstraintDescription
fly_to_idFlyto Target Point IDtextTask ID for flying to the target point
statusStatusenum_string{"wayline_cancel":"Fly to target point canceled", "wayline_failed":"Execution failed", "wayline_ok":"Execution successful, reached target point", "wayline_paused":"Paused and hovering", "wayline_progress":"In progress"}Task execution status
sub_statusExecution Sub-statusint{0:"Not ready / idle",1:"Flying in progress",2:"Arrived and completed",3:"Exited voluntarily (APP/button)",4:"Paused",5:"Aborted abnormally"}
resultReturn CodeintNon-zero represents an error
percentTask Progress Percentageint{"max":100,"min":0,"step":1}Progress of flying to the target point. Monotonically non-decreasing; 100 on arrival, and frozen at the value captured at pause time while paused
stop_reasonAbnormal Termination Reasonint0 on success; see the table below for abnormal reasons
remaining_distanceRemaining Task Distanceint{"unit_name":"meters / m"}Remaining distance to the target point
remaining_timeRemaining Task Timeint{"unit_name":"seconds / s"}Estimated remaining flight time; -1 when there is no position target
speedSpeedint{"unit_name":"meters per second / m/s"}Real-time speed
pos_framePosition Coordinate SystemintActive position coordinate system: 0=Body / 1=North-East (NEU) / 2=GPS
yaw_frameYaw Coordinate SystemintActive yaw coordinate system: 0=Body / 1=Geographic
gimbal_frameGimbal Coordinate SystemintActive gimbal coordinate system: 0=Body / 1=Geographic / 2=GPS look-at point / 3=Image

stop_reason:

NameValueCommon trigger
ERMM_MISSION_ERROR10016Insufficient parameters; position/yaw/gimbal groups all invalid
ERMM_PLANNER_OVERTIME10015Planning status not received for a long time
ERMM_MISSION_PLANNER_STUCK10022Planner waypoint execution error
ERMM_MISSION_POINTS_IN_NOFLY10030Target point passes through a no-fly zone
ERMM_EXIT_MISSION_NO_ODOM10032Flight controller position / GPS acquisition continuously failing
ERMM_FCS_NOT_TAKEOFF10038Command sent while on the ground (not takeoff)

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"fly_to_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"percent": 63,
"status": "wayline_progress",
"result": 0,
"sub_status": 1,
"stop_reason": 0,
"remaining_distance": 15,
"remaining_time": 12,
"speed": 3,
"pos_frame": 2,
"yaw_frame": 0,
"gimbal_frame": 0
},
"need_reply": 1,
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 16540709686556,
"method": "fly_to_point_progress_v2"
}

One-click Takeoff Result Event Notification​

Topic: thing/product/{gateway_sn}/events

Direction: up

Method: takeoff_to_point_progress

Data:

ColumnNameTypeconstraintDescription
statusTask Statusenum_string{"task_finish":"One-key takeoff task completed", "task_ready":"Ready for takeoff", "wayline_cancel":"Target waypoint flight canceled", "wayline_failed":"Execution failed", "wayline_ok":"Execution successful, target waypoint reached", "wayline_progress":"In progress"}Task execution status
resultReturn CodeintNon-zero indicates an error
percentTask Progress Percentageint{"max":100,"min":0,"step":1}Progress of the one-click takeoff. 100 when completed
flight_idOne-click Takeoff Task UUIDtextUnique identifier of the one-click takeoff task
track_idTrack IDtextUnique track identifier
way_point_indexCurrent Waypoint IndexintCurrent waypoint index being executed
remaining_distanceRemaining Task Distancefloat{"step":0.1, "unit_name":"meters / m"}Remaining distance to the target point
remaining_timeRemaining Task Timefloat{"step":0.1, "unit_name":"seconds / s"}Estimated remaining flight time
planned_path_pointsPlanned Path Pointsarray{"}size": -, "item_type": struct}Planned wayline trajectory points
»latitudeTrajectory Point Latitude (Degrees)double{"max":90,"min":-90}Latitude of the trajectory point, with 6 decimal place accuracy
»longitudeTrajectory Point Longitude (Degrees)double{"max":180,"min":-180}Longitude of the trajectory point, with 6 decimal place accuracy
»heightTrajectory Point Altitudefloat{"step":0.1, "unit_name":"meters / m"}Altitude of the trajectory point, 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
}
],
"percent": 100,
"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"
}

Point of Interest Orbit Status Notification​

Reported by the dock on its own initiative. Once poi_mode_enter is accepted, the status is reported at 1 Hz, plus one extra push when a terminal state is reached. A wayline_failed message is also pushed when the command is rejected.

Topic: thing/product/{gateway_sn}/events

Direction: up

Method: poi_status_notify

Data:

ColumnNameTypeconstraintDescription
statusTask Statusenum_string{"in_progress":"Orbiting", "wayline_failed":"Execution failed (terminal)", "wayline_ok":"Finished normally (terminal)"}Terminal states share the wayline_* code space with flyto. Note the in-progress state is in_progress, not wayline_progress
reasonResult Codeint{"0":"Normal", "3":"Illegal command (parameter validation failure / concurrency conflict)", "4":"Positioning failed", "5":"Drone has not taken off", "6":"Wrong flight mode (AI tracking / orbit tracking in progress)", "7":"Unavailable in the current mode (returning / landing / wayline task in progress)", "8":"Remote controller or image transmission signal lost (including telemetry unavailable)"}A different code space from the result of services_reply; the two are two expressions of the same rejection
circle_radiusEffective Orbit Radiusfloat{"step":0.1, "unit_name":"meters / m"}The radius actually in effect for this orbit
circle_speedEffective Orbit Speedfloat{"step":0.1, "unit_name":"meters per second / m/s"}The effective value, resolved when poi_mode_enter is accepted in the order "poi_circle_speed_set preset > value carried in this command > default 5", and fixed for the rest of the orbit. When a preset exists, the preset value is reported instead of the value carried in the command. Negative is clockwise, positive is counterclockwise
max_circle_speedOrbit Speed Upper Limitfloat{"step":0.1, "unit_name":"meters per second / m/s"}The reference range published by the dock, fixed at 15
progressTask Progress Percentageint{"max":100,"min":0,"step":1}Reported by the drone. Monotonically non-decreasing; 100 in the terminal state

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"circle_radius": 50,
"circle_speed": 5,
"max_circle_speed": 15,
"progress": 60,
"reason": 0,
"status": "in_progress"
},
"need_reply": 1,
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "poi_status_notify"
}

Flight Control Grab​

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"
}

Load Control Grab​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: payload_authority_grab

Data:

ColumnNameTypeconstraintDescription
payload_indexPayload enumeration valuetextLens Payload and Mounting Position Enumeration Values
Non-standard device_mode_key, format: {type-subtype-gimbalindex}. Please refer to the product support page for details.

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"payload_index": "10902-0-0"
},
"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 Command Flight Control Mode​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: drc_mode_enter

Data:

ColumnNameTypeconstraintDescription
mqtt_brokerBroker Connection InfostructRetrieve the MQTT relay service address and authentication information
»addressServer Connection AddresstextServer connection address, e.g., 192.0.2.1:8883, mqtt.autel.com:8883
»client_idClient IDtextCustomizable MQTT client ID. It is recommended to use the device SN code as the prefix followed by a suffix, e.g., 4J4R101-drc. Using the device SN code alone is not recommended, as clients with the same ID force each other offline
»usernameUsernametextUsername used for establishing the connection
»passwordPasswordtextPassword required for authentication when establishing the connection
»expire_timeAuthentication Expiry Timeint{"unit_name":"seconds / s"}Authentication information can be reused within the validity period, and its expiration does not affect already established connections
»enable_tlsEnable TLSboolEnable TLS to encrypt 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.autel.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 Command Flight Control 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-click Takeoff​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: takeoff_to_point

Data:

ColumnNameTypeconstraintDescription
target_latitudeTarget Latitude (Degrees)double{"max":90,"min":-90}Target point latitude, in degrees. Negative for south, positive for north. Precision up to six decimal places.
target_longitudeTarget Longitude (Degrees)double{"max":180,"min":-180}Target point longitude, in degrees. Negative for west, positive for east. Precision up to six decimal places.
target_heightTarget Heightfloat{"max":1500, "min":2, "step":0.1, "unit_name":"meters / m"}Target point height (relative height). The default action for the drone after reaching the point is to hover.
flight_idOne-click Takeoff Task UUIDtextTask UUID, globally unique, used to identify and distinguish between normal scheduled tasks and one-key takeoff tasks on the cloud.
max_speedMaximum Speed During One-click Takeoffint{"max":15, "min":1, "unit_name":"meters per second / m/s"}Maximum flight speed
precision_typeTask Precision Typeenum_int{1: RTK, 0: GNSS}Optional field specifying whether the takeoff task is RTK or GNSS. Defaults to 0 (GNSS).
barrier_switch_stateObstacle avoidance switchenum_int{0: Turn off obstacle avoidance, 1: Turn on obstacle avoidance}Optional field, obstacle avoidance switch state.

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"flight_id": "ABDEAC21DCADDA",
"max_speed": 12,
"target_height": 100,
"target_latitude": 12.23,
"target_longitude": 12.32
},
"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 the Target Point​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: fly_to_point

Data:

ColumnNameTypeconstraintDescription
fly_to_idFlyto Target Point IDtextTask ID for flying to the target point
max_speedMaximum Speed During Flytoint{"max":15, "min":1, "unit_name":"meters per second / m/s"}Maximum flight speed. Must be greater than 0, otherwise a parameter error is returned
pointsFlyto Target Points Listarray{"}size": -, "item_type": struct}Only supports 1 target point
»latitudeTarget Point Latitude (Degrees)double{"max":90,"min":-90}Target point latitude, in degrees. Negative for south, positive for north. Precision up to six decimal places
»longitudeTarget Point Longitude (Degrees)double{"max":180,"min":-180}Target point longitude, in degrees. Negative for west, positive for east. Precision up to six decimal places
»heightTarget Point Heightfloat{"max":10000, "min":2, "step":0.1, "unit_name":"meters / m"}Target point height (related height)

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"
}

Fly to the Target Point V2​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: fly_to_point_v2

Data:

ColumnNameTypeconstraintDescription
fly_to_idFlyto Target Point IDtextTask ID for flying to the target point
pos_framePosition Coordinate Systemint{"min":0,"max":2}0=Body (forward-right-up) / 1=Geographic (North-East-Up) / 2=GPS
is_pos_validPosition Validityint{"min":0,"max":1}Whether position is controlled (1=valid)
pos_xPosition XdoubleBy pos_frame: body = forward (m, relative); NEU = northward (m); GPS = longitude (degrees)
pos_yPosition YdoubleBy pos_frame: body = rightward (m, relative); NEU = eastward (m); GPS = latitude (degrees)
pos_zPosition ZdoubleBy pos_frame: body = upward (m, relative); NEU = up (m, positive upward); GPS = ellipsoidal height (m)
max_velMaximum SpeeddoubleMaximum flight speed (m/s), range (0, 25]
yaw_frameYaw Coordinate Systemint{"min":0,"max":1}0=Body (relative to current heading) / 1=Geographic (absolute, north=0)
is_yaw_validYaw Validityint{"min":0,"max":1}Whether yaw is controlled (1=valid)
yawYaw AngledoubleTarget yaw (rad); relative in body frame, north=0 in geographic frame
max_yaw_rateMaximum Yaw RatedoubleMaximum yaw angular rate (rad/s)
gimbal_frameGimbal Coordinate Systemint{"min":0,"max":3}0=Body / 1=Geographic (fixed roll-pitch-yaw) / 2=GPS (look-at point) / 3=Image (pixels)
is_gimbal_validGimbal Validityint{"min":0,"max":1}Whether gimbal is controlled (1=valid)
gimbal_xGimbal XdoubleGimbal roll (rad); GPS frame = look-at point longitude (degrees); image frame = width ratio
gimbal_yGimbal YdoubleGimbal pitch (rad); GPS frame = look-at point latitude (degrees); image frame = height ratio
gimbal_zGimbal ZdoubleGimbal yaw (rad); GPS frame = look-at point height (m); image frame = 0
max_gimbal_rateMaximum Gimbal RatedoubleMaximum gimbal angular rate (rad/s)

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"fly_to_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"pos_frame": 1,
"is_pos_valid": 1,
"pos_x": 0.0,
"pos_y": 0.0,
"pos_z": -35.0,
"max_vel": 0.0,
"yaw_frame": 0,
"is_yaw_valid": 0,
"yaw": 0.0,
"max_yaw_rate": 0.0,
"gimbal_frame": 0,
"is_gimbal_valid": 0,
"gimbal_x": 0.0,
"gimbal_y": 0.0,
"gimbal_z": 0.0,
"max_gimbal_rate": 0.0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "fly_to_point_v2"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: fly_to_point_v2

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_v2"
}

End the Flyto Mission​

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"
}

Pause the Flyto Mission​

Pauses the current flyto mission. The drone hovers in place and the mission is not terminated. This only applies to flyto missions; use flighttask_pause to pause a wayline task. While paused, the status of fly_to_point_progress becomes wayline_paused and percent is frozen at the value captured at pause time.

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: mission_pause

Data: null

Example:

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

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: mission_pause

Data:

ColumnNameTypeconstraintDescription
resultReturn CodeintNon-zero represents an error. Returns non-zero when there is no flyto mission in progress, the mission is already paused, or telemetry is unavailable

Example:

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

Resume the Flyto Mission​

Continues flying to the original target point from the paused position. There is no need to send the target point again. Only available when the mission is currently paused.

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: mission_recovery

Data: null

Example:

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

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: mission_recovery

Data:

ColumnNameTypeconstraintDescription
resultReturn CodeintNon-zero represents an error. Returns non-zero when there is no flyto mission in progress, the mission is not paused, or telemetry is unavailable

Example:

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

Enter Point of Interest Orbit​

Makes the drone circle around the latitude and longitude given by the cloud. The drone must already be airborne, and it must not be in AI tracking or orbit tracking. While orbiting, the OSD mode_code is 23 and the status is reported through poi_status_notify.

A minimal command only needs latitude / longitude / height; the remaining fields fall back to the values listed below when omitted. When the command is rejected, you receive both a services_reply with a non-zero result and a poi_status_notify whose status is wayline_failed.

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: poi_mode_enter

Data:

ColumnNameTypeconstraintDescription
latitudeTarget Point Latitude (Degrees)double{"max":90,"min":-90}Required. Latitude of the target point, in degrees, negative for south and positive for north, accurate to 6 decimal places
longitudeTarget Point Longitude (Degrees)double{"max":180,"min":-180}Required. Longitude of the target point, in degrees, positive for east and negative for west, accurate to 6 decimal places
heightTarget Point Heightfloat{"max":10000,"min":2,"step":0.1,"unit_name":"meters / m"}Required. Height of the target point; the reference is specified by height_ref
height_refTarget Point Height Referenceint{"0":"Absolute altitude", "1":"Height relative to the takeoff point"}Optional, defaults to 1. Any other value is rejected
circle_radiusOrbit Radiusfloat{"min":0,"step":0.1,"unit_name":"meters / m"}Optional, defaults to 30. Must be greater than 0. The reference range is [5, 500]; values outside it are still passed through to the drone as-is
orbit_heightOrbit Heightfloat{"step":0.1,"unit_name":"meters / m"}Optional, defaults to 30. Height relative to the target point
circle_speedOrbit Speedfloat{"step":0.1,"unit_name":"meters per second / m/s"}Optional. Negative is clockwise, positive is counterclockwise. The reference range is |value| ≤ 15; all values including 0 are passed through as-is without numeric validation. See the priority note below for the effective value
gimbal_pitchGimbal Pitchfloat{"max":0,"min":-90,"step":0.1,"unit_name":"degrees / °"}Optional. Gimbal pitch during the approach phase. Omitting it keeps the current gimbal angle
circle_countNumber of Circlesint{"min":0}Optional. Omitted or 0 means orbit indefinitely; the drone stops automatically once the configured number of circles is completed

The effective circle_speed is resolved with the priority preset > command > configured default (5 m/s): once a preset has been set through poi_circle_speed_set, it overrides the circle_speed carried in this command. The effective value is the circle_speed reported by poi_status_notify.

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"circle_count": 3,
"circle_radius": 50,
"circle_speed": 5,
"gimbal_pitch": -30,
"height": 80,
"height_ref": 1,
"latitude": 22.5678901,
"longitude": 113.9012345,
"orbit_height": 10
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "poi_mode_enter"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: poi_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": "poi_mode_enter"
}

Exit Point of Interest Orbit​

Ends the current point of interest orbit and the drone hovers in place. The drone side has no dedicated "exit orbit" command, so this method sends exactly the same payload to the drone as drone_emergency_stop.

The command is sent even when the dock has no local record of an orbit mission (for example after a dock restart), since this is the cloud's only way to stop the drone. It is rejected when telemetry is unavailable, however, to avoid sending a global mission terminator blindly; in that case the reason of poi_status_notify is 8. It is likewise rejected while the drone is executing a wayline task, returning home, or landing, with reason 7.

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: poi_mode_exit

Data: null

Example:

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

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: poi_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": "poi_mode_exit"
}

Set the Point of Interest Orbit Speed Preset​

Presets the orbit speed for the next point of interest orbit.

This method only takes effect on the next poi_mode_enter (it does not change an orbit that is already in progress, so the UI should not present it as a live slider while orbiting), and it takes priority over the circle_speed carried in poi_mode_enter. The preset does not survive a dock restart. The effective value is the circle_speed reported by poi_status_notify.

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: poi_circle_speed_set

Data:

ColumnNameTypeconstraintDescription
circle_speedOrbit Speedfloat{"step":0.1,"unit_name":"meters per second / m/s"}Required. Negative is clockwise, positive is counterclockwise. The reference range is |value| ≤ 15; all values including 0 are passed through as-is without numeric validation

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"circle_speed": -3
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "poi_circle_speed_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: poi_circle_speed_set

Data:

ColumnNameTypeconstraintDescription
resultReturn CodeintNon-zero represents an error. Returns non-zero when circle_speed is missing or is not a number

Example:

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

Joystick Control Invalid Reason Notification​

The joystick is a comprehensive control feature for the drone. If it is unavailable, the drone_control capability will not be functional, preventing manual control.

Topic: thing/product/{gateway_sn}/events

Direction: up

Method: joystick_invalid_notify

Data:

ColumnNameTypeconstraintDescription
reasonFailure Reasonint{"0":"Unknown reason","1":"No flight control authority","2":"Aircraft not connected","3":"Aircraft not in flight","4":"DRC mode not active","5":"Emergency stop in progress","6":"Signal lost","7":"Battery too low","8":"Geofence limit"}Reason for joystick control invalidation

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"
}

Payload Control—Single Shot​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_photo_take

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera EnumtextCamera enumeration value. A non-standard device_mode_key, formatted as {type-subtype-gimbalindex}. You can refer to the [Product Support] for details.

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"payload_index": "10902-0-0"
},
"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

Example:

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

Payload Control—Start Recording​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_recording_start

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera EnumtextCamera enumeration value. A non-standard device_mode_key, formatted as {type-subtype-gimbalindex}. You can refer to the [Product Support] for details.

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"payload_index": "10902-0-0"
},
"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 EnumtextCamera enumeration value. A non-standard device_mode_key, formatted as {type-subtype-gimbalindex}. You can refer to the [Product Support] for details.

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"payload_index": "10902-0-0"
},
"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 EnumtextCamera enumeration value. A non-standard device_mode_key, formatted as {type-subtype-gimbalindex}. You can refer to the [Product Support] for details.
lockedWhether the relationship between the drone head and gimbal is lockedbool{"false":"Only the gimbal rotates, the drone body does not rotate","true":"Lock the drone head, both the gimbal and body rotate together"}When locked, the gimbal and body rotate together
pitch_speedGimbal pitch speeddouble{"unit_name":"determined by angle_unit"}Gimbal pitch speed, only supports gimbal rotation
yaw_speedGimbal yaw speeddouble{"unit_name":"determined by angle_unit"}Gimbal yaw speed, only supports locked drone head
angle_unitSpeed unitint{0: radians per second rad/s, 1: degrees per second deg/s}Optional, defaults to 0 (radians per second)

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"locked": false,
"payload_index": "10902-0-0",
"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 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_screen_drag"
}

Payload Control—Zoom​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_focal_length_set

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera EnumtextCamera enumeration value. A non-standard device_mode_key, formatted as {type-subtype-gimbalindex}. You can refer to the [Product Support] for details.
camera_typeCamera Typeenum_string{"ir":"Infrared","wide":"Wide Angle","zoom":"Zoom"}Enum for camera types
zoom_factorZoom Factordouble{"max":200,"min":2}Zoom factor, visible light range: 2-200, infrared range: 2-20

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"camera_type": "zoom",
"payload_index": "10902-0-0",
"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 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_focal_length_set"
}

Payload Control—Zoom Drag Control​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_focal_length_drag

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera EnumtextCamera enumeration value. A non-standard device_mode_key, formatted as {type-subtype-gimbalindex}. You can refer to the [Product Support] for details.
camera_typeCamera Typeenum_string{"ir":"Infrared","zoom":"Zoom"}Required. Camera type enum
zoom_typeZoom Actionenum_int{"0":"Zoom out","1":"Zoom in","2":"Stop"}Direction of the continuous zoom action, defaults to 2 (stop). Zooming in or out continues until another command with zoom_type=2 is sent

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"payload_index": "10902-0-0",
"camera_type": "zoom",
"zoom_type": 1
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_focal_length_drag"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_focal_length_drag

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_focal_length_drag"
}

Payload Control—Reset Gimbal​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: gimbal_reset

Data:

ColumnNameTypeconstraintDescription
payload_indexPayload IDtextPayload ID, camera enumeration value. Non-standard device_mode_key, format is {type-subtype-gimbalindex}, refer to [Product Support] for details
reset_modeReset Modeenum_int{"0":"Center","1":"Downward","2":"Yaw Center","3":"45 Degrees Downward"}Gimbal reset mode

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"payload_index": "10902-0-0",
"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 CodeintNon-zero represents 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—Photo Storage Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: photo_storage_set

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera EnumtextCamera enumeration value. Non-standard device_mode_key, formatted as {type-subtype-gimbalindex}, refer to [Product Support] for details
photo_storage_settingsPhoto Storage Settings Collectionarray{"}size": -, "item_type": enum_string}Photo storage types {wide, zoom, ir, nightvision}, multiple selections are allowed

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"payload_index": "10902-0-0",
"photo_storage_settings": [
"wide",
"zoom",
"ir",
"nightvision"
]
},
"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 represents 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 Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: video_storage_set

Data:

ColumnNameTypeconstraintDescription
payload_indexCamera EnumtextCamera enumeration value. Non-standard device_mode_key, formatted as {type-subtype-gimbalindex}, refer to [Product Support] for details
video_storage_settingsVideo Storage Settings Collectionarray{"}size": -, "item_type": enum_string}Video storage types {wide, zoom, ir, nightvision}, multiple selections are allowed

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"payload_index": "10902-0-0",
"video_storage_settings": [
"wide",
"zoom",
"ir",
"nightvision"
]
},
"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 represents 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—Look At​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_look_at

Data:

ColumnNameTypeconstraintDescription
latitudeTarget Latitudedouble{"max":90,"min":-90}Angle value. Negative for southern latitudes, positive for northern latitudes, accurate to 6 decimal places.
longitudeTarget Longitudedouble{"max":180,"min":-180}Angle value. Positive for eastern longitudes, negative for western longitudes, accurate to 6 decimal places.
heightTarget Heightfloat{"max":10000,"min":2,"step":0.1,"unit_name":"meters / m"}Height of the target point

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"height": 100,
"latitude": 12.23,
"longitude": 12.23
},
"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
resultResult 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_look_at"
}

Payload Control—Double-Tap to AIM​

The double-tap AIM feature allows you to double-tap a target point within the camera lens field of view, 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 EnumtextCamera enumeration value. A non-standard device_mode_key, formatted as {type-subtype-gimbalindex}. You can refer to the [Product Support] for details.
camera_typeCamera Typeenum_string{"ir":"Infrared","zoom":"Zoom"}Camera type enum
lockedWhether the relationship between the drone head and gimbal is lockedbool{"false":"Only the gimbal rotates, the drone body does not rotate","true":"Lock the drone head, both the gimbal and body rotate together"}Optional, defaults to false. When locked, the gimbal and body rotate together
xScreen X coordinatefloat{"max":1,"min":0}Optional, defaults to 0.5. Horizontal ratio coordinate of the aim point within the frame, 0~1
yScreen Y coordinatefloat{"max":1,"min":0}Optional, defaults to 0.5. Vertical ratio coordinate of the aim point within the frame, 0~1

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"payload_index": "10902-0-0",
"camera_type": "zoom",
"locked": false,
"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 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_aim"
}

Payload Control—Gimbal Angle Control​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: gimbal_rotate_angle

Data:

pitch_angle and yaw_angle are optional, but at least one of the two must be provided, otherwise a parameter error is returned.

ColumnNameTypeconstraintDescription
payload_indexCamera EnumtextCamera enumeration value. A non-standard device_mode_key, formatted as {type-subtype-gimbalindex}. You can refer to the [Product Support] for details. Not supported by the current firmware.
pitch_anglePitch angledouble{"max":30,"min":-90,"unit_name":"degrees / deg"}Gimbal pitch angle, -90 degrees represents downward, 30 degrees represents upward
yaw_angleYaw angledouble{"max":180,"min":-180,"unit_name":"degrees / deg"}Gimbal yaw angle

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"pitch_angle": -45.0,
"yaw_angle": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "gimbal_rotate_angle"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: gimbal_rotate_angle

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": "gimbal_rotate_angle"
}

Payload Control—Camera Exposure Value Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_exposure_set

Data:

ColumnNameTypeconstraintDescription
camera_typeLens typetext{"enum": ["wide", "zoom", "telezoom", "ir", "nightvision"]}Required, case-insensitive
exposure_valueExposure valuedouble{"unit_name":"EV"}Required, value range comes from the camera capability set

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"camera_type": "zoom",
"exposure_value": 0.3
},
"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 represents 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 Exposure Compensation Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_exposure_compensation_set

Data:

ColumnNameTypeconstraintDescription
camera_typeLens typetext{"enum": ["wide", "zoom", "telezoom", "ir", "nightvision"]}Required, case-insensitive
exposure_compensation_valueExposure compensationint{"unit_name":"EV"}Required, value range comes from the camera capability set

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"camera_type": "zoom",
"exposure_compensation_value": 1
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_exposure_compensation_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_exposure_compensation_set

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_exposure_compensation_set"
}

Payload Control—Camera ISO Mode Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_iso_mode_set

Data:

ColumnNameTypeconstraintDescription
iso_modeISO modeint{"0": Auto, "1": Manual}Required

Example:

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

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_iso_mode_set

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_iso_mode_set"
}

Payload Control—Camera Shutter Mode Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_shutter_mode_set

Data:

ColumnNameTypeconstraintDescription
shutter_modeShutter modeint{"0": Auto, "1": Manual}Required

Example:

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

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_shutter_mode_set

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_shutter_mode_set"
}

Payload Control—Infrared Temperature Measurement Mode Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: ir_metering_mode_set

Data:

ColumnNameTypeconstraintDescription
modeMeasurement modeint{"0": Off, "1": Spot, "2": Region}Required
payload_indexCamera EnumtextOptional, defaults to "0"

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"mode": 1,
"payload_index": "0"
},
"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 represents 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 Spot Setting​

Switches to spot measurement mode automatically after a successful setting.

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: ir_metering_point_set

Data:

ColumnNameTypeconstraintDescription
xX coordinatefloat{"max":1,"min":0}Required, ratio of the frame width
yY coordinatefloat{"max":1,"min":0}Required, ratio of the frame height
payload_indexCamera EnumtextOptional, defaults to "0"

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"x": 0.5,
"y": 0.5,
"payload_index": "0"
},
"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 represents 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 Region Setting​

Switches to region measurement mode automatically after a successful setting.

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: ir_metering_area_set

Data:

ColumnNameTypeconstraintDescription
xX coordinatefloat{"max":1,"min":0}Required, ratio of the frame width, top-left corner
yY coordinatefloat{"max":1,"min":0}Required, ratio of the frame height, top-left corner
widthRegion widthfloat{"max":1,"min":0}Required, x + width must not be greater than 1
heightRegion heightfloat{"max":1,"min":0}Required, y + height must not be greater than 1
payload_indexCamera EnumtextOptional, defaults to "0"

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"x": 0.3,
"y": 0.3,
"width": 0.4,
"height": 0.4,
"payload_index": "0"
},
"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 represents 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"
}

Payload Control—Camera ISO Value Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_iso_value_set

Data:

ColumnNameTypeconstraintDescription
iso_valueISO valueint{100, 200, 400, 800, 1600, 2400, 3200, 4800, 6400, 12800, 25600}Required. Effective in manual ISO mode

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"iso_value": 400
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_iso_value_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_iso_value_set

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_iso_value_set"
}

Payload Control—Camera Shutter Speed Value Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_shutter_value_set

Data:

ColumnNameTypeconstraintDescription
shutter_valueShutter valuetextFormat: {numerator}/{denominator}Required. Effective in manual shutter mode

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"shutter_value": "1/80"
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_shutter_value_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_shutter_value_set

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_shutter_value_set"
}

Payload Control—Camera White Balance Mode Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_white_balance_mode_set

Data:

ColumnNameTypeconstraintDescription
white_balance_modeWhite balance modeint{"0": Auto, "1": Sunny, "2": Cloudy, "3": Incandescent, "4": Fluorescent, "5": Custom}Required

Example:

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

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_white_balance_mode_set

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_white_balance_mode_set"
}

Payload Control—Camera White Balance Color Temperature Value Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_white_balance_value_set

Data:

ColumnNameTypeconstraintDescription
white_balance_valueColor temperatureint2000-10000, step 100Required. Effective when white balance mode is Custom

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"white_balance_value": 5000
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_white_balance_value_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_white_balance_value_set

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_white_balance_value_set"
}

Payload Control—Camera Focus Mode Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_focus_mode_set

Data:

ColumnNameTypeconstraintDescription
focus_modeFocus modeint{"1": Auto focus, "2": Manual focus}Required

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"focus_mode": 1
},
"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 represents 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 Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_focus_value_set

Data:

ColumnNameTypeconstraintDescription
focus_valueFocus object distanceint0-50, unit: mmRequired. Effective in manual focus mode

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"focus_value": 10
},
"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 represents 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—Camera Brightness Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_brightness_value_set

Data:

ColumnNameTypeconstraintDescription
brightness_valueBrightnessint0-60Required
camera_typeLens typetext{"wide", "zoom"}Optional. Defaults to zoom

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"brightness_value": 30,
"camera_type": "zoom"
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_brightness_value_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_brightness_value_set

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_brightness_value_set"
}

Payload Control—Camera Photo Size Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_photo_size_set

Data:

ColumnNameTypeconstraintDescription
camera_typeLens typetext{"zoom", "ir"}Required
photo_sizePhoto sizetextFormat: {width}x{height}Required

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"camera_type": "zoom",
"photo_size": "4000x3000"
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_photo_size_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_photo_size_set

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_size_set"
}

Payload Control—Camera Video Resolution Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_video_resolution_set

Data:

ColumnNameTypeconstraintDescription
camera_typeLens typetext{"zoom", "ir"}Required
video_resolutionVideo resolutiontextFormat: {width}x{height}Required
video_fpsFrame rateintGreater than or equal to 0Optional. The current frame rate is retained if omitted

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"camera_type": "zoom",
"video_resolution": "3840x2160",
"video_fps": 30
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_video_resolution_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_video_resolution_set

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_video_resolution_set"
}

Payload Control—Camera Electronic Defog Mode Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_defog_mode_set

Data:

ColumnNameTypeconstraintDescription
defog_modeDefog modeint{"0": Off, "1": Low, "2": Medium, "3": High}Required

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"defog_mode": 1
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_defog_mode_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_defog_mode_set

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_defog_mode_set"
}

Payload Control—Camera Ultra Sensitivity Mode Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_ultra_pixel_mode_set

Data:

ColumnNameTypeconstraintDescription
ultra_pixel_modeUltra pixel modeint{"0": Off, "1": On}Required

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"ultra_pixel_mode": 1
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_ultra_pixel_mode_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_ultra_pixel_mode_set

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_ultra_pixel_mode_set"
}

Payload Control—Infrared FFC Calibration​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_ffc

Data: null

Example:

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

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_ffc

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_ffc"
}

Payload Control—Linkage Zoom Switch​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_linkage_zoom

Data:

ColumnNameTypeconstraintDescription
linkage_zoom_modeLinkage zoomint{"0": Off, "1": On}Required

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"linkage_zoom_mode": 1
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_linkage_zoom"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_linkage_zoom

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_linkage_zoom"
}

Payload Control—Reset Camera Settings​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_reset

Data: null

Example:

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

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_reset

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_reset"
}

Payload Control—Infrared Dual-Light Fusion Switch​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_ir_fusion_set

Data:

ColumnNameTypeconstraintDescription
ir_fusion_modeDual-light fusionint{"0": Off, "1": On}Required

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"ir_fusion_mode": 1
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_ir_fusion_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_ir_fusion_set

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_ir_fusion_set"
}

Payload Control—Infrared Super Resolution Switch​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_ir_super_resolution_set

Data:

ColumnNameTypeconstraintDescription
ir_super_resolution_modeInfrared super resolutionint{"0": Off, "1": On}Required

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"ir_super_resolution_mode": 1
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_ir_super_resolution_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_ir_super_resolution_set

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_ir_super_resolution_set"
}

Payload Control—Infrared Image Enhancement Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_thermal_image_enhance_set

Data:

ColumnNameTypeconstraintDescription
thermal_image_enhance_modeThermal image enhancement switchint{"0": Off, "1": On}At least one of this field and thermal_image_enhance_value is required
thermal_image_enhance_valueEnhancement levelint1-8At least one of this field and thermal_image_enhance_mode is required

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"thermal_image_enhance_mode": 1,
"thermal_image_enhance_value": 4
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_thermal_image_enhance_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_thermal_image_enhance_set

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_thermal_image_enhance_set"
}

Payload Control—Camera Screen Split Mode Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_screen_split

Data:

ColumnNameTypeconstraintDescription
split_modeScreen split modeint{"0": Visible light, "1": Picture in picture, "2": Infrared, "3": Split screen}Required

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"split_mode": 1
},
"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 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_screen_split"
}

Payload Control—Arm Light Switch​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: camera_arm_light_set

Data:

ColumnNameTypeconstraintDescription
arm_lightArm lightint{"0": Turn off automatically, "1": Keep on}Required

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"arm_light": 1
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "camera_arm_light_set"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: camera_arm_light_set

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_arm_light_set"
}

Payload Control—Camera Video Format Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: video_format_settings

Data:

ColumnNameTypeconstraintDescription
video_format_typeVideo formatint{"0": MOV, "1": MP4, "2": TIFF}Required

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"video_format_type": 1
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "video_format_settings"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: video_format_settings

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": "video_format_settings"
}

Payload Control—Camera Video Encoding Format Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: video_encode_settings

Data:

ColumnNameTypeconstraintDescription
video_encode_typeVideo encoding formatint{"0": H264, "1": H265}Required

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"video_encode_type": 1
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "video_encode_settings"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: video_encode_settings

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": "video_encode_settings"
}

Payload Control—Camera Video Subtitle Switch​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: video_subtitle_mode

Data:

ColumnNameTypeconstraintDescription
video_subtitle_enableVideo subtitleint{"0": Off, "1": On}Required

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"video_subtitle_enable": 1
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "video_subtitle_mode"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: video_subtitle_mode

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": "video_subtitle_mode"
}

Payload Control—Gimbal Pitch Max Speed Setting​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: gimbal_pitch_max_speed

Data:

ColumnNameTypeconstraintDescription
payload_indexPayload indextextRequired
gimbal_pitch_max_speedGimbal pitch max speedint0-100Required

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"payload_index": "10902-0-0",
"gimbal_pitch_max_speed": 50
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "gimbal_pitch_max_speed"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: gimbal_pitch_max_speed

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": "gimbal_pitch_max_speed"
}

Video Transmission Point Result Event Notification​

Topic: thing/product/{gateway_sn}/events

Direction: up

Method: intelligent_point

Data:

ColumnNameTypeconstraintDescription
req_idRequest IDintRequest ID, consistent with the request ID passed during pointing
statusPoint resultint0: Failed 1: SuccessfulVideo transmission point result status
latitudeLatitudedoublePrecision: 10e-7
longitudeLongitudedoublePrecision: 10e-7
altitudeRelative altitudedoubleRelative altitude of the target point

Video Transmission Point​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: intelligent_point

Data:

ColumnNameTypeconstraintDescription
xX coordinatedouble{"max":1.0,"min":0"}Ratio of the point in the video frame, center point is 0.5
yY coordinatedouble{"max":1.0,"min":0"}Ratio of the point in the video frame, center point is 0.5
widthVideo resolution widthintVideo frame width
heightVideo resolution heightintVideo frame height
lens_typeLens typeint0: Zoom, 1: Infrared, 2: Wide angle, 3: Tele zoom, 4: Long-range infrared, 5: Night vision, 6: Visible light, 7: TelephotoLens type enum
req_idRequest IDintConsecutive video transmission point req_id must be different

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"x": 0.5,
"y": 0.5,
"width": 1920,
"height": 1080,
"lens_type": 0,
"req_id": 1
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "intelligent_point"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: intelligent_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": "intelligent_point"
}

DRC

DRC-Flight Control​

Once in command flight mode, this instruction allows control of the drone's flight direction and speed. The sending frequency must be maintained between 5-10 Hz to ensure the device can accurately control changes in speed and direction.At the same time, it is necessary to ensure that the aircraft is in a propeller flight state; otherwise, it will be ineffective.

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

Direction: down

Method: drone_control

Data:

ColumnNameTypeconstraintDescription
seqCommand SequenceintIncremental sequence number to ensure commands are executed in order. If the x, y, h, or w parameters change, seq must start increasing from 0.
xForward/Backward Speeddouble{"max":17, "min":-17, "unit_name":"meters per second / m/s"}Maximum forward/backward speed, negative values indicate backward movement
yLeft/Right Speeddouble{"max":17, "min":-17, "unit_name":"meters per second / m/s"}Maximum left/right speed, negative values indicate leftward movement
hUp/Down Speeddouble{"max":5, "min":-4, "unit_name":"meters per second / m/s"}Maximum up/down speed, negative values indicate downward movement
wYaw Angular Speeddouble{"max":65, "min":-65, "unit_name":"degrees per second / deg/s"}Maximum yaw angular speed, negative values indicate counterclockwise rotation. Values beyond the range are clamped

Example:

{
"data": {
"freq": 10,
"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 CodeintNon-zero indicates an error, exceptional cases include: no flight control, no virtual joystick permission, incorrect data packet sequence
outputOutputstructOutput of the drone control command
»seqCommand SequenceintIncremental sequence number to ensure commands are executed in order

Example:

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

DRC-Drone 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 represents an error

Example:

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

DRC-Heartbeat​

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

Direction: down

Method: heart_beat

Data:

ColumnNameTypeconstraintDescription
seqDRC-Obstacle Avoidance Information ReportingintIncremental sequence number to ensure the command is executed in order
timestampHeartbeat Timestampint{"unit_name":"milliseconds / ms"}Timestamp of when the heartbeat was sent, not the device-side time, to help the cloud calculate delay based on send/receive intervals

Example:

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

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

Direction: up

Method: heart_beat

Data:

ColumnNameTypeconstraintDescription
seqCommand SequenceintIncremental sequence number to ensure the command is executed in order
timestampHeartbeat Timestampint{"unit_name":"milliseconds / ms"}Timestamp of when the heartbeat was sent, not the device-side time, to help the cloud calculate delay based on send/receive intervals

Example:

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

DRC-Obstacle Avoidance Information Reporting​

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

Direction: up

Method: hsi_info_push

Data:

ColumnNameTypeconstraintDescription
down_distanceDistance to obstacle belowintUnit: mmDistance to the obstacle below
up_distanceDistance to obstacle aboveintUnit: mmDistance to the obstacle above
front1_distanceDistance to obstacle from front radar 1intUnit: mmFront radar 1 detection distance
front2_distanceDistance to obstacle from front radar 2intUnit: mmFront radar 2 detection distance
front3_distanceDistance to obstacle from front radar 3intUnit: mmFront radar 3 detection distance
front4_distanceDistance to obstacle from front radar 4intUnit: mmFront radar 4 detection distance
left1_distanceDistance to obstacle from left radar 1intUnit: mmLeft radar 1 detection distance
left2_distanceDistance to obstacle from left radar 2intUnit: mmLeft radar 2 detection distance
left3_distanceDistance to obstacle from left radar 3intUnit: mmLeft radar 3 detection distance
rear1_distanceDistance to obstacle from rear radar 1intUnit: mmRear radar 1 detection distance
rear2_distanceDistance to obstacle from rear radar 2intUnit: mmRear radar 2 detection distance
rear3_distanceDistance to obstacle from rear radar 3intUnit: mmRear radar 3 detection distance
rear4_distanceDistance to obstacle from rear radar 4intUnit: mmRear radar 4 detection distance
right1_distanceDistance to obstacle from right radar 1intUnit: mmRight radar 1 detection distance
right2_distanceDistance to obstacle from right radar 2intUnit: mmRight radar 2 detection distance
right3_distanceDistance to obstacle from right radar 3intUnit: mmRight radar 3 detection distance
radar_enableObstacle avoidance switchbooleanObstacle avoidance switch status

Example:

{
"bid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data":{
"down_distance":0,
"front1_distance":0,
"front2_distance":0,
"front3_distance":0,
"front4_distance":0,
"left1_distance":0,
"left2_distance":0,
"left3_distance":0,
"radar_enable":true,
"rear1_distance":0,
"rear2_distance":0,
"rear3_distance":0,
"rear4_distance":0,
"right1_distance":0,
"right2_distance":0,
"right3_distance":0,
"up_distance":0
},
"tid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp":1726131014572,
"method":"hsi_info_push"
}