.. _manual_get_robot_mode: get_robot_mode (Manual Mode) ------------------------------------------ This section describes how to use :ref:`get_robot_mode ` during **Manual (Teach)** operations. Returns the mode stored in this CDRFLEx instance (initially ROBOT_MODE_MANUAL). set_robot_mode stores the requested mode. Calls that send a safety mode to the controller also store the mode when the controller accepts it: drl_stop stores Manual mode, set_safety_mode and the initialization and recovery options of set_robot_control store the safety mode they send, and multi_jog, motion and force-control commands store the current safety mode. The stored mode starts as Manual and is not read from the controller; call set_robot_mode(ROBOT_MODE_AUTONOMOUS) before Auto-only functions, even if the controller is already in Auto mode. To confirm that the controller accepted a mode change, check the return value of set_robot_mode. **Typical usage** - Verify the robot’s current operation mode before sending jog or motion commands. - Automatically adjust GUI or input permissions depending on mode. - Prevent unintended auto commands when in manual state. .. Note:: - Typical values: |br| - ``ROBOT_MODE_MANUAL``: Teach pendant or manual control. |br| - ``ROBOT_MODE_AUTONOMOUS``: Program or external control. |br| - In manual teaching, this should return **ROBOT_MODE_MANUAL**. .. Caution:: set_robot_mode stores the requested mode even when it returns false. get_robot_mode then returns the requested mode, and functions that require Auto or Manual mode accept calls although the controller did not change mode. If set_robot_mode returns false, do not use mode-gated functions until a later set_robot_mode call returns true. **Example: Ensure Robot is in Manual Mode** .. code-block:: cpp ROBOT_MODE mode = drfl.get_robot_mode(); if (mode == ROBOT_MODE_MANUAL) { printf("Robot is in Manual mode. Jogging enabled.\n"); drfl.jog(JOG_AXIS_TASK_Y, MOVE_REFERENCE_BASE, 10.0f); } else { printf("Robot is not in Manual mode. Jogging disabled.\n"); } **Tips** - Always confirm **Manual mode** before manual motion or teaching. - For safety, restrict jog or multi_jog commands when in Auto mode. - Integrate this check into any teaching GUI or remote jog control application.