Program Control
Start Task
Start a new task, wait for the new task to start running, and return the new task's task_id.
Serial tasks execute in sequence, with at most one serial task running at a time. Subsequent tasks will only run after the previous task completes, fails, or is terminated.
Parallel tasks execute immediately. Multiple parallel tasks can run simultaneously with independent environment variables, similar to multi-threaded execution.
WARNING
- When the scene being started contains motion related interfaces, it must be started as a serial task (
is_parallelisfalse) - In serial tasks, it must be started as a parallel task (
is_parallelistrue), otherwise it will block
- Function name: Method
start_taskunder [Robot] - Parameters:
- scene: [str] Scene ID
- params: [list[str]] Parameters, string array. Optional, default empty
- dir: [str] Workspace name. Optional, default root directory
- is_parallel: [bool] Whether to execute in parallel. Optional, default serial
- loop_to: [int] Repeat execution count. Optional, default 1 time, 0 means infinite
- Return: [int] Task ID
JSON-RPC
// Request:
{ "jsonrpc": "2.0", "method": "start_task", "params": [{"name": "", "params": [""], "dir": "", "is_parallel": false, "loop_to": 1}], "id": 1 }
// Response:
{ "jsonrpc": "2.0", "result": {"id": 1}, "id": 1 }
Example Program
task_id = lebai:start_task("10000", {}, "", false, 1)
task_id = lebai.start_task("10000", [], "", False, 1)
Get All Task IDs
- Function name: Method
get_task_listunder [Robot] - Parameters: None
- Return: [list[int]] IDs of all unfinished tasks
JSON-RPC
// Request:
{ "jsonrpc": "2.0", "method": "load_task_list", "params": [{}], "id": 1 }
// Response:
{ "jsonrpc": "2.0", "result": {"ids": []}, "id": 1 }
Example Program
tasks = lebai:get_task_list()
tasks = lebai.get_task_list()
Get Serial Task ID
- Function name: Method
get_main_task_idunder [Robot] - Parameters: None
- Return: [int] Serial task ID. Returns
Nonewhen no serial task
Example Program
task = lebai:get_main_task_id()
task = lebai.get_main_task_id()
Wait for Task Completion
Block wait for task to end, return task status string and all output.
- Function name: Method
wait_taskunder [Robot] - Parameters:
- id: [int] task_id returned by start_task. Optional, default serial task
- Return: [str] Task status string
JSON-RPC
// Request:
{ "jsonrpc": "2.0", "method": "wait_task", "params": [{"id": 1}], "id": 1 }
// Response:
{ "jsonrpc": "2.0", "result": {"done": true, "stdout": ""}, "id": 1 }
Example Program
task_id = lebai:start_task("10000", {}, "", false, 1)
stdout = lebai:wait_task(task_id)
task_id = lebai.start_task("10000", [], "", False, 1)
stdout = lebai.wait_task(task_id)
Get Task Status
- Function name: Method
get_task_stateunder [Robot] - Parameters:
- id: [int] Task ID. Optional, default serial task
- Return: [str] Task status: "NONE" no task; "WAIT" queued; "RUNNING" running; "PAUSE" paused; "SUCCESS" success; "INTERRUPTING" stopping; "INTERRUPT" stopped; "FAIL" failed
JSON-RPC
// Request:
{ "jsonrpc": "2.0", "method": "load_task", "params": [{"id": 1}], "id": 1 }
// Response:
{ "jsonrpc": "2.0", "result": {"state": ""}, "id": 1 }
Example Program
task_id = lebai:start_task("10000", {}, "", false, 1)
state = lebai:get_task_state(task_id)
task_id = lebai.start_task("10000", [], "", False, 1)
state = lebai.get_task_state(task_id)
Stop Task
Stop the specified task. When stopping a serial task, stop_move is automatically called to stop motion.
- Function name: Method
cancel_taskunder [Robot] - Parameters:
- id: [int] Task ID. Optional, default serial task
- Return: None
JSON-RPC
// Request:
{ "jsonrpc": "2.0", "method": "cancel_task", "params": [{"id": 1}], "id": 1 }
// Response:
{ "jsonrpc": "2.0", "result": {}, "id": 1 }
Example Program
lebai:cancel_task(task_id)
lebai.cancel_task(task_id)
Pause Task
Pause the specified task. When pausing a serial task, pause_move is automatically called to pause motion.
- Function name: Method
pause_taskunder [Robot] - Parameters:
- id: [int] Task ID. Optional, default serial task
- Return: None
JSON-RPC
// Request:
{ "jsonrpc": "2.0", "method": "pause_task", "params": [{"id": 1}], "id": 1 }
// Response:
{ "jsonrpc": "2.0", "result": {}, "id": 1 }
Example Program
lebai:pause_task(task_id)
lebai.pause_task(task_id)
Resume Task
Resume the specified task. When resuming a serial task, resume_move is automatically called to resume motion.
- Function name: Method
resume_taskunder [Robot] - Parameters:
- id: [int] Task ID. Optional, default serial task
- Return: None
JSON-RPC
// Request:
{ "jsonrpc": "2.0", "method": "resume_task", "params": [{"id": 1}], "id": 1 }
// Response:
{ "jsonrpc": "2.0", "result": {}, "id": 1 }
Example Program
lebai:resume_task(task_id)
lebai.resume_task(task_id)
