Skip to content

enter_exec_mode

Runs at once IDLE or EXEC mode Enabled Homed Takes control

Switch to EXEC mode, where the robot runs queued moves. In EXEC mode the robot plays the moves a program queues, in the order they were sent. On entry it holds the arm where it is. Calling it in EXEC mode changes nothing.

Syntax

robot.enter_exec_mode(wait=None)

Arguments

Name Type Default Description
wait bool | None None Wait until the robot reports EXEC mode, up to 10 s. None follows the client's sync setting.

Returns

Nothing.

Examples

robot.enter_exec_mode(wait=True)
robot.move_joints(90, -105, 165, 0, -30, 180)
robot.wait_idle()
Usage restrictions 4 codes

This command runs at once; it is not queued. The robot accepts it only when it is in IDLE or EXEC mode, enabled and homed, from the client that holds control or when no client does.

It answers with one of these codes when it does not carry the command out:

  • [6010] Command not allowed now — the message names the mode or state it needs
  • [6101] Control held by another client — another client holds control; the message names it
  • [6025] RTI not running or not answering — rTI did not answer within 1 s: it is not running or not responding. The command may still have taken effect
  • [6014] Mode change refused — rTI refused EXEC: an error is latched, or the arm is not enabled or not homed. The message says why

In Python, a code above raises CommandRejected; its number is the code. The call raises:

  • CommandRejected: The robot refused it: it is not in IDLE or EXEC mode, not enabled or not homed, or another client holds control. Or RTI refused it or did not answer within 1 s (Errors:).
  • RobotTimeout: The robot did not answer within 5 s, or, with wait, did not report EXEC mode within 10 s.
  • RobotConnectionError: The client is not connected.

If the connection drops while the call waits for the robot's answer, it raises CommandRejected with the code CONNECTION_LOST (DISCONNECTED after disconnect()); while it waits for the robot's status, RobotConnectionError.

Like every immediate command, it also answers BAD_ARGS when a raw client sends a value the robot cannot read at all, and INTERNAL when it fails inside the robot.

Protocol

A client that does not use robotclient sends this over the TCP command protocol (port 29000) for the example above:

{"id": "c1", "cmd": "enter_exec_mode", "args": []}

See also