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.
| Method | Function | EVO Nest | Autel Nest2 | Notes |
|---|---|---|---|---|
camera_mode_switch | Payload Control - Camera Mode Switch | ✓ | — | Autel Nest2 supports photo and video at the same time; no switching required |
camera_exposure_set | Camera Exposure Value Setting | — | ✓ | |
camera_exposure_compensation_set | Camera Exposure Compensation Setting | — | ✓ | |
camera_iso_mode_set | Camera ISO Mode Setting | — | ✓ | |
camera_iso_value_set | Camera ISO Value Setting | — | ✓ | |
camera_shutter_mode_set | Camera Shutter Mode Setting | — | ✓ | |
camera_shutter_value_set | Camera Shutter Speed Value Setting | — | ✓ | |
camera_white_balance_mode_set | Camera White Balance Mode Setting | — | ✓ | |
camera_white_balance_value_set | Camera White Balance Color Temperature Value Setting | — | ✓ | |
camera_focus_mode_set | Camera Focus Mode Setting | — | ✓ | |
camera_focus_value_set | Camera Focus Value Setting | — | ✓ | |
camera_brightness_value_set | Camera Brightness Setting | — | ✓ | |
camera_defog_mode_set | Camera Electronic Defog Mode Setting | — | ✓ | |
camera_photo_size_set | Camera Photo Size Setting | — | ✓ | |
camera_video_resolution_set | Camera Video Resolution Setting | — | ✓ | |
camera_ultra_pixel_mode_set | Camera Ultra Sensitivity Mode Setting | — | ✓ | |
camera_screen_split | Camera Screen Split Mode Setting | — | ✓ | |
camera_linkage_zoom | Linkage Zoom Switch | — | ✓ | |
camera_arm_light_set | Arm Light Switch | — | ✓ | |
camera_reset | Reset Camera Settings | — | ✓ | |
camera_ffc | Infrared FFC Calibration | — | ✓ | |
camera_ir_fusion_set | Infrared Dual-Light Fusion Switch | — | ✓ | |
camera_ir_super_resolution_set | Infrared Super Resolution Switch | — | ✓ | |
camera_thermal_image_enhance_set | Infrared Image Enhancement Setting | — | ✓ | |
ir_metering_mode_set | Infrared Temperature Measurement Mode Setting | — | ✓ | |
ir_metering_point_set | Infrared Temperature Measurement Spot Setting | — | ✓ | |
ir_metering_area_set | Infrared Temperature Measurement Region Setting | — | ✓ | |
video_encode_settings | Camera Video Encoding Format Setting | — | ✓ | |
video_format_settings | Camera Video Format Setting | — | ✓ | |
video_subtitle_mode | Camera Video Subtitle Switch | — | ✓ | |
gimbal_pitch_max_speed | Gimbal Pitch Max Speed Setting | — | ✓ | |
mission_pause | Pause the Flyto Mission | — | ✓ | |
mission_recovery | Resume the Flyto Mission | — | ✓ | |
fly_to_point_v2 | Fly to the Target Point V2 | — | ✓ | |
fly_to_point_progress_v2 | Flyto Execution Result Event Notification V2 | — | ✓ | Uplink event |
poi_mode_enter | Enter Point of Interest Orbit | — | ✓ | |
poi_mode_exit | Exit Point of Interest Orbit | — | ✓ | |
poi_circle_speed_set | Set the Point of Interest Orbit Speed Preset | — | ✓ | |
poi_status_notify | Point 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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| fly_to_id | Target Point ID | text | Task ID for flying to the target point | |
| status | Status | enum_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 |
| result | Return Code | int | Non-zero represents an error | |
| percent | Task Progress Percentage | int | {"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_index | Current Waypoint Index | int | Current waypoint index being executed | |
| remaining_distance | Remaining Task Distance | float | {"step":0.1, "unit_name":"meters / m"} | Remaining distance to the target point |
| remaining_time | Remaining Task Time | float | {"step":0.1, "unit_name":"seconds / s"} | Estimated remaining flight time |
| planned_path_points | Planned Path Points | array | {"}size": -, "item_type": struct} | Planned wayline trajectory points |
| »latitude | Trajectory Latitude | double | {"max":90,"min":-90} | Latitude of the trajectory point, accurate to 6 decimal places |
| »longitude | Trajectory Longitude | double | {"max":180,"min":-180} | Longitude of the trajectory point, accurate to 6 decimal places |
| »height | Trajectory Height | float | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| fly_to_id | Flyto Target Point ID | text | Task ID for flying to the target point | |
| status | Status | enum_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_status | Execution Sub-status | int | {0:"Not ready / idle",1:"Flying in progress",2:"Arrived and completed",3:"Exited voluntarily (APP/button)",4:"Paused",5:"Aborted abnormally"} | |
| result | Return Code | int | Non-zero represents an error | |
| percent | Task Progress Percentage | int | {"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_reason | Abnormal Termination Reason | int | 0 on success; see the table below for abnormal reasons | |
| remaining_distance | Remaining Task Distance | int | {"unit_name":"meters / m"} | Remaining distance to the target point |
| remaining_time | Remaining Task Time | int | {"unit_name":"seconds / s"} | Estimated remaining flight time; -1 when there is no position target |
| speed | Speed | int | {"unit_name":"meters per second / m/s"} | Real-time speed |
| pos_frame | Position Coordinate System | int | Active position coordinate system: 0=Body / 1=North-East (NEU) / 2=GPS | |
| yaw_frame | Yaw Coordinate System | int | Active yaw coordinate system: 0=Body / 1=Geographic | |
| gimbal_frame | Gimbal Coordinate System | int | Active gimbal coordinate system: 0=Body / 1=Geographic / 2=GPS look-at point / 3=Image |
stop_reason:
| Name | Value | Common trigger |
|---|---|---|
| ERMM_MISSION_ERROR | 10016 | Insufficient parameters; position/yaw/gimbal groups all invalid |
| ERMM_PLANNER_OVERTIME | 10015 | Planning status not received for a long time |
| ERMM_MISSION_PLANNER_STUCK | 10022 | Planner waypoint execution error |
| ERMM_MISSION_POINTS_IN_NOFLY | 10030 | Target point passes through a no-fly zone |
| ERMM_EXIT_MISSION_NO_ODOM | 10032 | Flight controller position / GPS acquisition continuously failing |
| ERMM_FCS_NOT_TAKEOFF | 10038 | Command 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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| status | Task Status | enum_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 |
| result | Return Code | int | Non-zero indicates an error | |
| percent | Task Progress Percentage | int | {"max":100,"min":0,"step":1} | Progress of the one-click takeoff. 100 when completed |
| flight_id | One-click Takeoff Task UUID | text | Unique identifier of the one-click takeoff task | |
| track_id | Track ID | text | Unique track identifier | |
| way_point_index | Current Waypoint Index | int | Current waypoint index being executed | |
| remaining_distance | Remaining Task Distance | float | {"step":0.1, "unit_name":"meters / m"} | Remaining distance to the target point |
| remaining_time | Remaining Task Time | float | {"step":0.1, "unit_name":"seconds / s"} | Estimated remaining flight time |
| planned_path_points | Planned Path Points | array | {"}size": -, "item_type": struct} | Planned wayline trajectory points |
| »latitude | Trajectory Point Latitude (Degrees) | double | {"max":90,"min":-90} | Latitude of the trajectory point, with 6 decimal place accuracy |
| »longitude | Trajectory Point Longitude (Degrees) | double | {"max":180,"min":-180} | Longitude of the trajectory point, with 6 decimal place accuracy |
| »height | Trajectory Point Altitude | float | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| status | Task Status | enum_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 |
| reason | Result Code | int | {"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_radius | Effective Orbit Radius | float | {"step":0.1, "unit_name":"meters / m"} | The radius actually in effect for this orbit |
| circle_speed | Effective Orbit Speed | float | {"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_speed | Orbit Speed Upper Limit | float | {"step":0.1, "unit_name":"meters per second / m/s"} | The reference range published by the dock, fixed at 15 |
| progress | Task Progress Percentage | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| payload_index | Payload enumeration value | text | Lens 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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| mqtt_broker | Broker Connection Info | struct | Retrieve the MQTT relay service address and authentication information | |
| »address | Server Connection Address | text | Server connection address, e.g., 192.0.2.1:8883, mqtt.autel.com:8883 | |
| »client_id | Client ID | text | Customizable 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 | |
| »username | Username | text | Username used for establishing the connection | |
| »password | Password | text | Password required for authentication when establishing the connection | |
| »expire_time | Authentication Expiry Time | int | {"unit_name":"seconds / s"} | Authentication information can be reused within the validity period, and its expiration does not affect already established connections |
| »enable_tls | Enable TLS | bool | Enable TLS to encrypt the MQTT link | |
| osd_frequency | OSD Frequency | int | {"max":30,"min":1,"unit_name":"Hertz / Hz"} | Set the OSD reporting frequency |
| hsi_frequency | HSI Frequency | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| target_latitude | Target 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_longitude | Target 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_height | Target Height | float | {"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_id | One-click Takeoff Task UUID | text | Task UUID, globally unique, used to identify and distinguish between normal scheduled tasks and one-key takeoff tasks on the cloud. | |
| max_speed | Maximum Speed During One-click Takeoff | int | {"max":15, "min":1, "unit_name":"meters per second / m/s"} | Maximum flight speed |
| precision_type | Task Precision Type | enum_int | {1: RTK, 0: GNSS} | Optional field specifying whether the takeoff task is RTK or GNSS. Defaults to 0 (GNSS). |
| barrier_switch_state | Obstacle avoidance switch | enum_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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| fly_to_id | Flyto Target Point ID | text | Task ID for flying to the target point | |
| max_speed | Maximum Speed During Flyto | int | {"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 |
| points | Flyto Target Points List | array | {"}size": -, "item_type": struct} | Only supports 1 target point |
| »latitude | Target 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 |
| »longitude | Target 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 |
| »height | Target Point Height | float | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| fly_to_id | Flyto Target Point ID | text | Task ID for flying to the target point | |
| pos_frame | Position Coordinate System | int | {"min":0,"max":2} | 0=Body (forward-right-up) / 1=Geographic (North-East-Up) / 2=GPS |
| is_pos_valid | Position Validity | int | {"min":0,"max":1} | Whether position is controlled (1=valid) |
| pos_x | Position X | double | By pos_frame: body = forward (m, relative); NEU = northward (m); GPS = longitude (degrees) | |
| pos_y | Position Y | double | By pos_frame: body = rightward (m, relative); NEU = eastward (m); GPS = latitude (degrees) | |
| pos_z | Position Z | double | By pos_frame: body = upward (m, relative); NEU = up (m, positive upward); GPS = ellipsoidal height (m) | |
| max_vel | Maximum Speed | double | Maximum flight speed (m/s), range (0, 25] | |
| yaw_frame | Yaw Coordinate System | int | {"min":0,"max":1} | 0=Body (relative to current heading) / 1=Geographic (absolute, north=0) |
| is_yaw_valid | Yaw Validity | int | {"min":0,"max":1} | Whether yaw is controlled (1=valid) |
| yaw | Yaw Angle | double | Target yaw (rad); relative in body frame, north=0 in geographic frame | |
| max_yaw_rate | Maximum Yaw Rate | double | Maximum yaw angular rate (rad/s) | |
| gimbal_frame | Gimbal Coordinate System | int | {"min":0,"max":3} | 0=Body / 1=Geographic (fixed roll-pitch-yaw) / 2=GPS (look-at point) / 3=Image (pixels) |
| is_gimbal_valid | Gimbal Validity | int | {"min":0,"max":1} | Whether gimbal is controlled (1=valid) |
| gimbal_x | Gimbal X | double | Gimbal roll (rad); GPS frame = look-at point longitude (degrees); image frame = width ratio | |
| gimbal_y | Gimbal Y | double | Gimbal pitch (rad); GPS frame = look-at point latitude (degrees); image frame = height ratio | |
| gimbal_z | Gimbal Z | double | Gimbal yaw (rad); GPS frame = look-at point height (m); image frame = 0 | |
| max_gimbal_rate | Maximum Gimbal Rate | double | Maximum 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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| latitude | Target 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 |
| longitude | Target 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 |
| height | Target Point Height | float | {"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_ref | Target Point Height Reference | int | {"0":"Absolute altitude", "1":"Height relative to the takeoff point"} | Optional, defaults to 1. Any other value is rejected |
| circle_radius | Orbit Radius | float | {"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_height | Orbit Height | float | {"step":0.1,"unit_name":"meters / m"} | Optional, defaults to 30. Height relative to the target point |
| circle_speed | Orbit Speed | float | {"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_pitch | Gimbal Pitch | float | {"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_count | Number of Circles | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| circle_speed | Orbit Speed | float | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| reason | Failure Reason | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| payload_index | Camera Enum | text | Camera 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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| payload_index | Camera Enum | text | Camera 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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| payload_index | Camera Enum | text | Camera 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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| payload_index | Camera Enum | text | Camera enumeration value. A non-standard device_mode_key, formatted as {type-subtype-gimbalindex}. You can refer to the [Product Support] for details. | |
| locked | Whether the relationship between the drone head and gimbal is locked | bool | {"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_speed | Gimbal pitch speed | double | {"unit_name":"determined by angle_unit"} | Gimbal pitch speed, only supports gimbal rotation |
| yaw_speed | Gimbal yaw speed | double | {"unit_name":"determined by angle_unit"} | Gimbal yaw speed, only supports locked drone head |
| angle_unit | Speed unit | int | {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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| payload_index | Camera Enum | text | Camera enumeration value. A non-standard device_mode_key, formatted as {type-subtype-gimbalindex}. You can refer to the [Product Support] for details. | |
| camera_type | Camera Type | enum_string | {"ir":"Infrared","wide":"Wide Angle","zoom":"Zoom"} | Enum for camera types |
| zoom_factor | Zoom Factor | double | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| payload_index | Camera Enum | text | Camera enumeration value. A non-standard device_mode_key, formatted as {type-subtype-gimbalindex}. You can refer to the [Product Support] for details. | |
| camera_type | Camera Type | enum_string | {"ir":"Infrared","zoom":"Zoom"} | Required. Camera type enum |
| zoom_type | Zoom Action | enum_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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| payload_index | Payload ID | text | Payload ID, camera enumeration value. Non-standard device_mode_key, format is {type-subtype-gimbalindex}, refer to [Product Support] for details | |
| reset_mode | Reset Mode | enum_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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| payload_index | Camera Enum | text | Camera enumeration value. Non-standard device_mode_key, formatted as {type-subtype-gimbalindex}, refer to [Product Support] for details | |
| photo_storage_settings | Photo Storage Settings Collection | array | {"}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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| payload_index | Camera Enum | text | Camera enumeration value. Non-standard device_mode_key, formatted as {type-subtype-gimbalindex}, refer to [Product Support] for details | |
| video_storage_settings | Video Storage Settings Collection | array | {"}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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| latitude | Target Latitude | double | {"max":90,"min":-90} | Angle value. Negative for southern latitudes, positive for northern latitudes, accurate to 6 decimal places. |
| longitude | Target Longitude | double | {"max":180,"min":-180} | Angle value. Positive for eastern longitudes, negative for western longitudes, accurate to 6 decimal places. |
| height | Target Height | float | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Result code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| payload_index | Camera Enum | text | Camera enumeration value. A non-standard device_mode_key, formatted as {type-subtype-gimbalindex}. You can refer to the [Product Support] for details. | |
| camera_type | Camera Type | enum_string | {"ir":"Infrared","zoom":"Zoom"} | Camera type enum |
| locked | Whether the relationship between the drone head and gimbal is locked | bool | {"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 |
| x | Screen X coordinate | float | {"max":1,"min":0} | Optional, defaults to 0.5. Horizontal ratio coordinate of the aim point within the frame, 0~1 |
| y | Screen Y coordinate | float | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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.
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| payload_index | Camera Enum | text | Camera 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_angle | Pitch angle | double | {"max":30,"min":-90,"unit_name":"degrees / deg"} | Gimbal pitch angle, -90 degrees represents downward, 30 degrees represents upward |
| yaw_angle | Yaw angle | double | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| camera_type | Lens type | text | {"enum": ["wide", "zoom", "telezoom", "ir", "nightvision"]} | Required, case-insensitive |
| exposure_value | Exposure value | double | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| camera_type | Lens type | text | {"enum": ["wide", "zoom", "telezoom", "ir", "nightvision"]} | Required, case-insensitive |
| exposure_compensation_value | Exposure compensation | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| iso_mode | ISO mode | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| shutter_mode | Shutter mode | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| mode | Measurement mode | int | {"0": Off, "1": Spot, "2": Region} | Required |
| payload_index | Camera Enum | text | Optional, 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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| x | X coordinate | float | {"max":1,"min":0} | Required, ratio of the frame width |
| y | Y coordinate | float | {"max":1,"min":0} | Required, ratio of the frame height |
| payload_index | Camera Enum | text | Optional, 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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| x | X coordinate | float | {"max":1,"min":0} | Required, ratio of the frame width, top-left corner |
| y | Y coordinate | float | {"max":1,"min":0} | Required, ratio of the frame height, top-left corner |
| width | Region width | float | {"max":1,"min":0} | Required, x + width must not be greater than 1 |
| height | Region height | float | {"max":1,"min":0} | Required, y + height must not be greater than 1 |
| payload_index | Camera Enum | text | Optional, 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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| iso_value | ISO value | int | {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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| shutter_value | Shutter value | text | Format: {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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| white_balance_mode | White balance mode | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| white_balance_value | Color temperature | int | 2000-10000, step 100 | Required. 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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| focus_mode | Focus mode | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| focus_value | Focus object distance | int | 0-50, unit: mm | Required. 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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| brightness_value | Brightness | int | 0-60 | Required |
| camera_type | Lens type | text | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| camera_type | Lens type | text | {"zoom", "ir"} | Required |
| photo_size | Photo size | text | Format: {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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| camera_type | Lens type | text | {"zoom", "ir"} | Required |
| video_resolution | Video resolution | text | Format: {width}x{height} | Required |
| video_fps | Frame rate | int | Greater than or equal to 0 | Optional. 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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| defog_mode | Defog mode | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| ultra_pixel_mode | Ultra pixel mode | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| linkage_zoom_mode | Linkage zoom | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| ir_fusion_mode | Dual-light fusion | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| ir_super_resolution_mode | Infrared super resolution | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| thermal_image_enhance_mode | Thermal image enhancement switch | int | {"0": Off, "1": On} | At least one of this field and thermal_image_enhance_value is required |
| thermal_image_enhance_value | Enhancement level | int | 1-8 | At 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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| split_mode | Screen split mode | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| arm_light | Arm light | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| video_format_type | Video format | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| video_encode_type | Video encoding format | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| video_subtitle_enable | Video subtitle | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| payload_index | Payload index | text | Required | |
| gimbal_pitch_max_speed | Gimbal pitch max speed | int | 0-100 | Required |
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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| req_id | Request ID | int | Request ID, consistent with the request ID passed during pointing | |
| status | Point result | int | 0: Failed 1: Successful | Video transmission point result status |
| latitude | Latitude | double | Precision: 10e-7 | |
| longitude | Longitude | double | Precision: 10e-7 | |
| altitude | Relative altitude | double | Relative altitude of the target point |
Video Transmission Point
Topic: thing/product/{gateway_sn}/services
Direction: down
Method: intelligent_point
Data:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| x | X coordinate | double | {"max":1.0,"min":0"} | Ratio of the point in the video frame, center point is 0.5 |
| y | Y coordinate | double | {"max":1.0,"min":0"} | Ratio of the point in the video frame, center point is 0.5 |
| width | Video resolution width | int | Video frame width | |
| height | Video resolution height | int | Video frame height | |
| lens_type | Lens type | int | 0: Zoom, 1: Infrared, 2: Wide angle, 3: Tele zoom, 4: Long-range infrared, 5: Night vision, 6: Visible light, 7: Telephoto | Lens type enum |
| req_id | Request ID | int | Consecutive 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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| seq | Command Sequence | int | Incremental sequence number to ensure commands are executed in order. If the x, y, h, or w parameters change, seq must start increasing from 0. | |
| x | Forward/Backward Speed | double | {"max":17, "min":-17, "unit_name":"meters per second / m/s"} | Maximum forward/backward speed, negative values indicate backward movement |
| y | Left/Right Speed | double | {"max":17, "min":-17, "unit_name":"meters per second / m/s"} | Maximum left/right speed, negative values indicate leftward movement |
| h | Up/Down Speed | double | {"max":5, "min":-4, "unit_name":"meters per second / m/s"} | Maximum up/down speed, negative values indicate downward movement |
| w | Yaw Angular Speed | double | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-zero indicates an error, exceptional cases include: no flight control, no virtual joystick permission, incorrect data packet sequence | |
| output | Output | struct | Output of the drone control command | |
| »seq | Command Sequence | int | Incremental 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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| result | Return Code | int | Non-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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| seq | DRC-Obstacle Avoidance Information Reporting | int | Incremental sequence number to ensure the command is executed in order | |
| timestamp | Heartbeat Timestamp | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| seq | Command Sequence | int | Incremental sequence number to ensure the command is executed in order | |
| timestamp | Heartbeat Timestamp | int | {"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:
| Column | Name | Type | constraint | Description |
|---|---|---|---|---|
| down_distance | Distance to obstacle below | int | Unit: mm | Distance to the obstacle below |
| up_distance | Distance to obstacle above | int | Unit: mm | Distance to the obstacle above |
| front1_distance | Distance to obstacle from front radar 1 | int | Unit: mm | Front radar 1 detection distance |
| front2_distance | Distance to obstacle from front radar 2 | int | Unit: mm | Front radar 2 detection distance |
| front3_distance | Distance to obstacle from front radar 3 | int | Unit: mm | Front radar 3 detection distance |
| front4_distance | Distance to obstacle from front radar 4 | int | Unit: mm | Front radar 4 detection distance |
| left1_distance | Distance to obstacle from left radar 1 | int | Unit: mm | Left radar 1 detection distance |
| left2_distance | Distance to obstacle from left radar 2 | int | Unit: mm | Left radar 2 detection distance |
| left3_distance | Distance to obstacle from left radar 3 | int | Unit: mm | Left radar 3 detection distance |
| rear1_distance | Distance to obstacle from rear radar 1 | int | Unit: mm | Rear radar 1 detection distance |
| rear2_distance | Distance to obstacle from rear radar 2 | int | Unit: mm | Rear radar 2 detection distance |
| rear3_distance | Distance to obstacle from rear radar 3 | int | Unit: mm | Rear radar 3 detection distance |
| rear4_distance | Distance to obstacle from rear radar 4 | int | Unit: mm | Rear radar 4 detection distance |
| right1_distance | Distance to obstacle from right radar 1 | int | Unit: mm | Right radar 1 detection distance |
| right2_distance | Distance to obstacle from right radar 2 | int | Unit: mm | Right radar 2 detection distance |
| right3_distance | Distance to obstacle from right radar 3 | int | Unit: mm | Right radar 3 detection distance |
| radar_enable | Obstacle avoidance switch | boolean | Obstacle 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"
}