跳到主要内容

Wayline Management

Interface Changes​

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

MethodFunctionEVO NestAutel Nest2Notes
flighttask_stopStop Task—✓Used for frog jump tasks
flighttask_progress_getQuery Task Progress—✓Used for frog jump tasks
return_specific_homeReturn to Specified Dock—✓Used for frog jump tasks
flight_task_poiPOI Task✓✓
flight_task_poi_progressPOI Task Execution Result Event Notification✓✓
cancel_flight_task_poiCancel POI Task✓✓

Report Wayline Task Progress​

Topic: thing/product/{gateway_sn}/events

Direction: up

Method: flighttask_progress

Data:

ColumnNameTypeconstraintDescription
outputContentstructTask progress output result
»extExtension contentstructTask progress extension info
»»current_waypoint_indexCurrent waypoint index being executedintIndex of current waypoint being executed
»»media_countNumber of media files generated during this wayline task executionintNumber of media files captured in this task
»»flight_idTask IDtextAssociated wayline task ID
»»break_pointWayline breakpoint infostructOptional field, used to report breakpoint info for this wayline task to the cloudOptional field, used to report breakpoint info
»»»indexBreakpoint indexintWayline breakpoint index
»»»stateBreakpoint stateenum_int{"0":"On way segment","1":"On waypoint"}Breakpoint state enum value
»»»progressCurrent way segment progressint{"max":"100","min":"0"}Current way segment execution progress percentage
»»»wayline_idWayline IDintWayline ID where breakpoint is located
»»»latitudeBreakpoint latitudefloat{"max":"90","min":"-90","unit":"degrees / °"}Breakpoint position latitude
»»»longitudeBreakpoint longitudefloat{"max":"180","min":"-180","unit":"degrees / °"}Breakpoint position longitude
»»»heightBreakpoint height relative to earth ellipsoidfloat{"unit":"meters / m"}Breakpoint height relative to ellipsoid
»statusTask statusenum_string{"pending":"Start execution","canceled":"Canceled or terminated","failed":"Failed","in_progress":"Executing","ok":"Execution successful","partially_done":"Partially completed","paused":"Paused","return":"Return"}Task execution status
»progressProgressstructTask execution progress
»»current_stepExecution stepenum_int{"0":"Initial state","1":"Pre-startup check, whether aircraft is executing wayline","2":"Pre-startup check, whether dock has exited work mode","3":"Pre-startup check, wayline execution in progress","4":"Pre-startup check, returning home","5":"Wayline execution enters preparation state, waiting for task dispatch","6":"Dock enters work state","7":"Enter startup check preparation and cover opening preparation","8":"Wait for flight system to be ready, push connection establishment","9":"Wait for RTK source monitoring to report values","10":"Check if RTK is ready","14":"Download task file","15":"Task file uploading","17":"Aircraft takeoff parameter settings, alternate landing point settings, takeoff altitude settings","18":"Aircraft flyto takeoff parameter settings","19":"Home point settings","20":"Trigger wayline execution","21":"Wayline execution in progress","22":"Return home","23":"Aircraft landing at dock","24":"Close cover after landing","29":"Get media file count","46":"Upload images","47":"Task completed","0xFFFD":"Wait for service response after completion","0xFFFE":"No specific status","0xFFFF":"UNKNOWN"}Current execution step
»»percentProgress valueint{"max":"100","min":"0"}Current progress percentage
resultResultintReturn 0 for success, non-zero for failure (see error codes for failure reasons)Return code, non-0 represents error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"output": {
"ext": {
"current_waypoint_index": 3,
"flight_id": "flight_id",
"media_count": 6
},
"progress": {
"current_step": 19,
"percent": 100
},
"status": "ok"
},
"result": 0
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1654070968655,
"method": "flighttask_progress"
}

Issue Task​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: flighttask_prepare

Data:

ColumnNameTypeconstraintDescription
flight_idPlan IDtextWayline task ID to prepare
execute_timeStart execution timeint{"length":13}Task start execution time in milliseconds timestamp. Required.
task_typeTask typeenum_int{"0":"Immediate task","1":"Scheduled task"}Immediate tasks and scheduled tasks are both executed at the time specified by execute_time. Immediate task media upload has the highest priority.
wayline_typeWayline typeenum_int{"0":"Normal waypoint wayline"}Optional, defaults to 0. Wayline type
fileWayline file objectstructWayline file info
»urlFile URLtextWayline file download URL
»fingerprintFile MD5 signaturetextWayline file MD5 checksum
rth_altitudeReturn home altitudeint{"max":1500,"min":20,"unit_name":"meters / m"}Optional. Relative to ground height
out_of_control_actionRC loss of control actionenum_int{"0":"Return home","1":"Hover","2":"Land"}Optional. Loss of control action, current fixed value is 0, i.e., return home. Note that this enumeration value definition is inconsistent with flight controller and dock definitions, dock side will convert.
exit_wayline_when_rc_lostWayline loss of control actionenum_int{"0":"Continue executing wayline task","1":"Exit wayline task, execute RC loss of control action"}Keep consistent with KMZ file
wayline_precision_typeWayline precision typeenum_int{0:"GPS task", 1: "High precision RTK task"}Wayline precision type
barrier_switch_stateObstacle avoidance switchenum_int{0: Turn off obstacle avoidance, 1: Turn on obstacle avoidance}
takeoff_altitudeTakeoff altitudeintRelative to ground height
first_waypoint_speedSpeed to first waypointintSpeed when flying to first waypoint
return_speedReturn speedintReturn home speed
media_upload_methodMedia file upload methodenum_int{0: Ground upload, 1: Upload while flying}Media file upload method
rth_modeReturn home modeenum_int{"0":"Smart altitude return","1":"Preset altitude return"}Optional field, defaults to 0
wayline_file_typeWayline file typeenum_int{"0":"Waypoint wayline file"}Optional field, defaults to 0
break_pointWayline breakpoint infostructOptional field, for breakpoint resume. If this field is sent, wayline task will start from the breakpoint position specified in the field.Optional. Breakpoint info for breakpoint resume
»indexBreakpoint indexintBreakpoint index
»stateBreakpoint stateenum_int{"0":"On way segment","1":"On waypoint"}Breakpoint state enum value
»progressCurrent way segment progressint{"max":100,"min":0}Current way segment execution progress percentage
»latitudeBreakpoint latitudefloat{"max":90,"min":-90,"unit_name":"degrees / °"}Breakpoint position latitude
»longitudeBreakpoint longitudefloat{"max":180,"min":-180,"unit_name":"degrees / °"}Breakpoint position longitude
»heightBreakpoint heightfloat{"unit_name":"meters / m"}Breakpoint height relative to the ellipsoid
»wayline_idWayline IDintMust include this ID from progress report when issuing breakpoint executionWayline ID where breakpoint is located
flight_safety_advance_checkFlight safety pre-checkbool{"0":"Disabled","1":"Enabled"}Optional, defaults to 0. Sets whether flight safety is pre-checked before one-key takeoff and wayline tasks. Value 0 means disabled, 1 means enabled. Flight safety pre-check means: before executing a task, the aircraft checks whether its working area files are consistent with the cloud, pulls file updates if inconsistent, does nothing if consistent.

Example:

{
"timestamp" : "1715693761421",
"data" : {
"flight_id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"execute_time" : "1715693761357",
"task_type" : 0,
"wayline_type" : 0,
"file" : {
"url" : "https://storage.example.com/wayline/example-wayline.aut",
"fingerprint" : "ebf5f3c1ee5228edd96943ade9dda33d"
},
"rth_altitude" : 100,
"exit_wayline_when_rc_lost" : 0,
"alternate_land_point" : {
"longitude" : 114.2304316,
"latitude" : 23.0358027,
"safe_land_height" : 10,
"is_configured" : 1
},
"wayline_precision_type" : 1,
"takeoff_altitude" : 100,
"first_waypoint_speed" : 10,
"return_speed" : 10,
"media_upload_method" : 0
},
"method" : "flighttask_prepare",
"tid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"bid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"gateway" : "NM1923371013"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: flighttask_prepare

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-0 represents error

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"result": 0
},
"gateway": "NM1923371013",
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1715693761468,
"method": "flighttask_prepare"
}

Execute Task​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: flighttask_execute

Data:

ColumnNameTypeconstraintDescription
flight_idPlan IDtextWayline task ID to execute
max_speedMaximum flight speeddouble{"unit_name":"meters per second / m/s"}Optional field, defaults to 10
multi_dock_taskFrog jump task infostructOptional field, used for frog jump tasks that take off from dock A and land at dock B
»dock_infosDock listarray{"size": -, "item_type": struct}Info of the docks participating in this task
»»snDock serial numbertextDock SN
»»dock_typeDock roleenum_string{"takeoff":"Takeoff dock","landing":"Landing dock"}Role this dock plays in the task
»»home_positionHome pointstructHome point of this dock
»»»home_position_is_validWhether home point is validenum_int{"0":"Invalid","1":"Valid"}Home point validity
»»»latitudeHome point latitudedouble{"max":90,"min":-90}Home point latitude
»»»longitudeHome point longitudedouble{"max":180,"min":-180}Home point longitude
»»»heightHome point heightdouble{"unit_name":"meters / m"}Home point height
»»alternate_land_pointAlternate landing pointstructAlternate landing point of this dock, same fields as in flighttask_prepare
»wireless_link_topoVideo link pairing infostructOptional field, video link pairing parameters for the frog jump task
»»mesh_keyMesh keytextBoth docks must use the same mesh key
»»pair_typePairing typeintPairing type
»»pair_methodPairing methodintPairing method
»»node_idNode IDintNode ID of this dock in the mesh

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"flight_id": "xxxxxxx"
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1234567890123,
"method": "flighttask_execute"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: flighttask_execute

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-0 represents error

Example:

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

One-click Return Home​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: return_home

Data: null

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: return_home

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-0 represents error
outputOutputstructService execution output result
»statusTask statusenum_string{"canceled":"Canceled or terminated","failed":"Failed","in_progress":"Executing","ok":"Execution successful","paused":"Paused","rejected":"Rejected","sent":"Sent","timeout":"Timeout"}Return home task execution status

Wayline Pause​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: flighttask_pause

Data: null

Example:

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: flighttask_pause

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-0 represents error

Wayline Resume​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: flighttask_recovery

Data: null

Example:

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: flighttask_recovery

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-0 represents error

Cancel Task​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: flighttask_undo

Data:

ColumnNameTypeconstraintDescription
flight_idsPlan IDarray{"size": -, "item_type": text}List of wayline task IDs to cancel

Example:

{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"flight_ids": [
"aaaaaaa",
"bbbbbbb"
]
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1234567890123,
"method": "flighttask_undo"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: flighttask_undo

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-0 represents error

Example:

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

Cancel Return Home​

After return home, the aircraft will exit wayline mode. At this point, canceling return home will cause the aircraft to hover.

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: return_home_cancel

Data: null

Example:

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: return_home_cancel

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-0 represents error

One-click Landing​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: landing

Data:

ColumnNameTypeconstraintDescription
flight_idPlan IDtextOptional field, defaults to the task currently being executed
precision_landingWhether to use precision landingboolOptional field, defaults to false

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: landing

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-0 represents error

Return to Specified Dock​

Used for frog jump tasks that take off from dock A and land at dock B, specifying which dock the aircraft returns to. Only the local dock or the peer dock of the current frog jump task can be specified; any other SN is rejected.

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: return_specific_home

Data:

ColumnNameTypeconstraintDescription
home_dock_snReturn dock serial numbertextRequired, SN of the target return dock

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: return_specific_home

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-0 represents error
outputOutputstructService execution output result
»statusExecution statusenum_string{"ok":"Execution successful","rejected":"Rejected"}Command execution status
»reasonRejection reasontextReturned only when rejected

Stop Task​

In a frog jump task, once the task on one dock has finished, this command must be sent to the other dock to stop its task. If the specified task is the current task of this dock, the dock runs the cancel flow to complete the rollback; if it is not the current task, the dock only returns the result without taking action.

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: flighttask_stop

Data:

ColumnNameTypeconstraintDescription
flight_idPlan IDtextRequired, ID of the wayline task to stop
reasonStop reasonintOptional field, defaults to 0

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: flighttask_stop

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-0 represents error
outputOutputstructService execution output result
»statusExecution statusenum_string{"ok":"Execution successful","rejected":"Rejected"}Command execution status
»flight_idPlan IDtextTask ID from the request
»stoppedWhether stoppedboolWhether the specified task was the current task and has been stopped

Query Task Progress​

In a frog jump task, one dock queries the execution status and progress of the wayline task on the other dock.

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: flighttask_progress_get

Data:

ColumnNameTypeconstraintDescription
flight_idPlan IDtextOptional field, ID of the wayline task to query
target_snTarget dock serial numbertextOptional field, echoed back in the reply

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: flighttask_progress_get

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-0 represents error
outputOutputstructService execution output result
»flight_idPlan IDtextTask ID from the request
»target_snTarget dock serial numbertextTarget dock SN from the request
»busyWhether a task is executingboolWhether the dock is currently executing a wayline task
»current_flight_idCurrent task IDtextID of the task the dock is currently executing, empty when idle
»is_same_flightWhether it is the same taskboolWhether the requested task ID is the task currently being executed
»statusTask statusenum_string{"idle":"Idle","pending":"Start execution","in_progress":"Executing","paused":"Paused","return":"Return","ok":"Execution successful","partially_done":"Partially completed","failed":"Failed","canceled":"Canceled or terminated"}Current task status
»progressProgressstructCurrent task progress
»»current_stepCurrent waypoint indexintIndex of the waypoint currently being executed
»»percentProgress valueint{"max":100,"min":0}Task execution percentage
»last_terminalLast task terminal statestructOptional field, lets the caller determine the last task result even after the dock returns to idle
»»flight_idPlan IDtextID of the last task
»»outcomeOutcometextTerminal state of the last task

POI Task Execution Result Event Notification​

Topic: thing/product/{gateway_sn}/events

Direction: up

Method: flight_task_poi_progress

Data:

ColumnNameTypeconstraintDescription
fly_to_idFly-to target point IDtextFly-to target point task ID
statusStatusenum_string{"wayline_cancel":"Cancel fly-to target point","wayline_failed":"Execution failed","wayline_ok":"Execution successful, flown to target point","wayline_progress":"Executing"}POI orbit task status
resultReturn codeintNon-0 represents error
remaining_distanceRemaining task distancefloat{"step":0.1,"unit_name":"meters / m"}Remaining distance to fly-to target point
remaining_timeRemaining task timefloat{"step":0.1,"unit_name":"seconds / s"}Remaining time to fly-to target point
planned_path_pointsPlanned trajectory point listarray{"size": -, "item_type": struct}List of planned flight trajectory points
»latitudeTrajectory point latitude (angle value)double{"max":90,"min":-90}Trajectory point latitude, angle value, south is negative, north is positive, precision to 6 decimal places
»longitudeTrajectory point longitude (angle value)double{"max":180,"min":-180}Trajectory point longitude, angle value, east is positive, west is negative, precision to 6 decimal places
»heightTrajectory point heightfloat{"step":0.1,"unit_name":"meters / m"}Trajectory point height, ellipsoid height

Example:

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

POI Task​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: flight_task_poi

Data:

ColumnNameTypeconstraintDescription
idTask IDintPOI task unique identifier
typeTask typeenum_int{1: Aircraft faces POI, stationary, 3: Fly to POI position then face POI}POI task type
latLatitudelongPOI task latitude (WGS84), latitude * 1E7, little-endian encoding, i.e., low significant byte firstPOI target point latitude
lonLongitudelongPOI task longitude (WGS84), longitude * 1E7, little-endian encoding, i.e., low significant byte firstPOI target point longitude
altAltitudelongPOI task point altitude unit mm, little-endian encoding, i.e., low significant byte firstPOI target point altitude

Example:

{
"data" : {
"id" : 1001,
"type" : 1,
"lat" : 23.0000000,
"lon" : 113.0000000,
"alt" : 10
},
"method" : "flight_task_poi",
"tid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"bid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: flight_task_poi

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-0 represents error

Example:

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

Cancel POI Task​

Topic: thing/product/{gateway_sn}/services

Direction: down

Method: cancel_flight_task_poi

Data:

Example:

{
"data" : {
},
"method" : "cancel_flight_task_poi",
"tid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"bid" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"
}

Topic: thing/product/{gateway_sn}/services_reply

Direction: up

Method: cancel_flight_task_poi

Data:

ColumnNameTypeconstraintDescription
resultReturn codeintNon-0 represents error

Example:

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