1.1.2 History of Document Creation/Revision --------------------------------------------- .. list-table:: :header-rows: 1 :widths: 10 70 15 * - **Revision No.** - **Creation / Revision Pages and Contents** - **Revision Date** * - 1.33.5 - Modify version information: GL013305 |br| |br| **Update Features** - Added ``set_rt_thread_priority`` to choose the operating system scheduling priority the library uses to receive real-time data and run real-time callbacks, for example ``SCHED_FIFO`` on Linux or a ``THREAD_PRIORITY_*`` level on Windows. It applies from the next ``connect_rt_control``. **Bug Fixes** - Improved real-time control reliability and response time on Linux. - Fixed ``connect_rt_control`` failing after ``disconnect_rt_control``. - Fixed ``connect_rt_control`` not returning when the controller does not respond. - Fixed the reference pose option of ``ikin`` being ignored. - Fixed ``servoj_g`` and ``movesj_g`` moving the robot when the target pose cannot be reached. They now return ``false``. - Fixed ``set_robot_mode`` returning ``true`` when the mode change failed. - Fixed ``set_safety_mode`` and ``set_robot_control`` returning ``true`` when the controller did not respond or the connection was lost. - Fixed ``get_robot_link_info`` returning ``true`` with empty data when the controller did not respond. - Fixed ``alter_motion`` returning ``true`` without moving the robot when alter motion was not enabled. - Fixed ``flange_serial_open`` setting a wrong baud rate. It returns ``false`` for an unsupported baud rate. - Fixed ``flange_serial_write`` sending data when the size is invalid. It now returns ``false`` instead. - Fixed the result of ``addto`` changing after the call. - Fixed building the library from source with CMake 4. **Updated Sample** - All samples use the current function names in place of the deprecated ones. - ``1_minimal_motion_sample.cpp`` to ``3_send_drl_script_sample.cpp`` can be built for DRCF v3 controllers with ``-DDRCF_VERSION=3``. - Fixed ``2_minimal_rt_monitoring_sample.cpp`` receiving no real-time data. - ``4_minimal_welding_sample.cpp`` builds for DRCF v2 controllers and sets the TCP in Manual mode. - Fixed ``5_minimal_instruction_sample.cpp`` and ``6_realtime_control_sample.cpp`` failing to build for some DRCF versions. - ``6_realtime_control_sample.cpp`` reports which step failed when real-time control cannot start. - Fixed ``7_get_robot_link_info_sample.cpp`` sometimes showing all-zero link information. - Fixed ``API_DRFL_BUILD.sh`` failing to link the samples on Ubuntu 18.04 and 20.04. **Other Changes** - ``movesj_g`` returns ``false`` for more than ``MAX_SPLINE_POINT`` points. - Existing function signatures are unchanged. Windows: replace the DLLs. Linux: relink against ``libDRFL.a``. - Updated the tutorial pages to match the samples. **Notice** - On one connection, call functions that return a value from the controller, such as ``get_current_posx`` and ``ikin``, from one thread, or one at a time. - Keep the output period of ``set_rt_control_output`` shorter than 1 second. If the real-time connection closes, wait at least 5 seconds before calling ``connect_rt_control`` again. On the simulator, restart the simulator instead. - To see why ``connect_rt_control`` fails, register ``set_on_rt_log_alarm`` before calling it. - Before sending real-time commands, check that ``time_stamp`` from ``read_data_rt`` keeps advancing. Call ``get_rt_control_*_list`` only while real-time control is connected. - 2026-11-04 * - 1.33.4 - Modify version information: GL013304 |br| |br| **Bug Fixes** - Fixed a crash or hang when closing a connection. - Fixed monitoring callbacks falling behind under heavy traffic. - Fixed an undetected disconnect during ``open_connection``. - Fixed elevated CPU usage while the library is idle. - Fixed memory corruption on a malformed safety configuration. - Fixed an unexpected alarm, and a session that received no data, after ``close_connection`` followed by ``open_connection``. **Other Changes** - ``get_safety_configuration`` now returns ``NULL`` on an incomplete or malformed configuration. - Headers are identical to GL013303. Windows: replace the DLLs. Linux: relink against ``libDRFL.a``. - Corrected wrong values, units, blocking behaviour and examples across the real-time control, force/compliance, motion, welding and tutorial pages. - Added a Korean translation of the manual. - 2026-09-08 * - 1.33.3 - Modify version information: GL013303 |br| |br| **Update Features** - Added default parameter values for ``_ikin_ex`` and ``_ikin_add_iter_threshold`` in ``DRFLEx.h``. - Added ``_set_stiffnessx_v3`` and ``_set_desired_force_v3`` internal API functions for ``DRCF`` v3 - ``set_stiffnessx`` and ``set_desired_force`` now dispatch to v2 or v3 implementations based on DRCF_VERSION preprocessor flag - ``set_workpiece_weight``, ``set_user_home`` and ``change_collision_sensitivity`` are no longer refused by the library in Auto mode. **Updated Sample** - ``5_minimal_instruction_sample.cpp`` - Translated Korean comments to English. - Fixed the sample stopping in ``OnMonitoringStateCB``. - Added retry logic for control authority acquisition. - Added robust servo-on with state recovery and timeout. - Added ``ikin_norm`` usage example and current pose readout. **Other Changes** - Removed obsolete ``main.cpp``. - ``open_connection`` and ``get_system_version`` no longer wait indefinitely when the controller does not respond. - 2026-03-10 * - 1.33.2 - Modify version information: GL013302 |br| |br| **Update Features** - Merged ``DRFL.h`` and ``DRFLEx.h`` into a unified header. - Legacy CamelCase APIs are now marked **deprecated** (compiler warning via ``DRFL_DEPRECATED``) and are declared in ``DRFLEx.h``; use the snake_case equivalents. **Updated Functions** - Added Hold to Run functions: - ``hold2run`` - ``jog_h2r`` - ``movej_h2r`` - ``movel_h2r`` - Added Ethernet Register functions: - ``set_output_register_bit`` - ``set_output_register_int`` - ``set_output_register_float`` - ``get_output_register_bit`` - ``get_output_register_int`` - ``get_output_register_float`` - ``get_input_register_bit`` - ``get_input_register_int`` - ``get_input_register_float`` - 2026-01-28 * - 1.33.1 - Modify version information: GL013301 |br| |br| **Updated Functions** - Added missing functions - Added DH parameter function: ``get_robot_link_info`` - Added singular function: ``set_singular_handling_force`` **Update Definition** - Added missing Structures - Added DH parameter Structure: ``ROBOT_LINK_INFO`` - Added singular Enum: ``SINGULARITY_FORCE_HANDLING`` **Update Features** - Fixed a heap error in ``open_connection``. - ``set_robot_mode(ROBOT_MODE_AUTONOMOUS)`` now also sends the Auto mode move event (``SAFETY_MODE_EVENT_MOVE``) right after entering Auto mode. - 2025-12-19 * - 1.33 - Modify version information: GL013300 |br| |br| **Update Features** - Fixed the issue where force control monitoring within Monitoring was not displaying correctly. - Updated ``flange_serial`` command for Flange Version rev2. **Updated Functions** - Added LED control functions: - ``state_led_reset`` - ``set_state_led_off`` - ``set_state_led_color`` - ``get_state_led_rule`` - I/O Control Functions: - ``flange_serial_open`` and ``flange_serial_close`` now take a required ``nPort`` first argument (Flange rev2). - 2025-09-03 * - 1.32 - **Update Features** - Add welding-related APIs **Update Definition** - Add multiple structs: - ``ROBOT_WELDING_DATA`` - ``WELDING_CHANNEL`` - ``CONFIG_WELDING_INTERFACE`` - ``CONFIG_WELD_SETTING`` - ``GET_WELDING_SETTING_RESPONSE`` - ``ADJUST_WELDING_SETTING`` - ``CONFIG_TRAPEZOID_WEAVING_SETTING`` - ``CONFIG_ZIGZAG_WEAVING_SETTING`` - ``CONFIG_CIRCULE_WEAVING_SETTING`` - ``CONFIG_SINE_WEAVING_SETTING`` - ``CONFIG_WELDING_DETAIL_INFO`` - ``CONFIG_ANALOG_WELDING_INTERFACE`` - ``CONFIG_ANALOG_WELDING_SETTING`` - ``ANALOG_WELDING_ADJUST_SETTING`` - ``CONFIG_DIGITAL_WELDING_IF_MAPPING_DATA`` - ``CONFIG_DIGITAL_WELDING_INTERFACE_PROCESS`` - ``CONFIG_DIGITAL_WELDING_INTERFACE_MODE`` - ``CONFIG_DIGITAL_WELDING_INTERFACE_TEST`` - ``CONFIG_DIGITAL_WELDING_INTERFACE_CONDITION`` - ``CONFIG_DIGITAL_WELDING_INTERFACE_OPTION`` - ``CONFIG_DIGITAL_WELDING_INTERFACE_PROCESS2`` - ``CONFIG_DIGITAL_WELDING_INTERFACE_MONITORING`` - ``DIGITAL_WELDING_RESET`` - ``CONFIG_DIGITAL_WELDING_MODE`` - ``CONFIG_DIGITAL_WELDING_CONDITION`` - ``CONFIG_DIGITAL_WELDING_ADJUST`` - ``MEASURE_TCP_WELDING`` - ``TACK_WELDING_SETTING`` - ``DIGITAL_FORCE_WRITE_DATA`` - ``ROBOT_DIGITAL_WELDING_DATA`` - ``DIGITAL_WELDING_COMM_STATE`` **Update Functions** - Add monitoring functions: - ``set_on_monitoring_welding_data`` - ``set_on_monitoring_analog_welding_data`` - ``set_on_monitoring_digital_welding_data`` - Add weaving functions: - ``app_weld_weave_cond_trapezoidal`` - ``app_weld_weave_cond_zigzag`` - ``app_weld_weave_cond_circular`` - ``app_weld_weave_cond_sinusoidal`` - Add analog interface functions: - ``app_weld_enable_analog`` - ``app_weld_set_weld_cond_analog`` - ``app_weld_adj_welding_cond_analog`` - Add Ethernet/IP functions: - ``app_weld_set_interface_eip_r2m_mode`` - ``app_weld_set_interface_eip_r2m_process`` - ``app_weld_set_interface_eip_r2m_test`` - ``app_weld_set_interface_eip_r2m_condition`` - ``app_weld_set_interface_eip_r2m_option`` - ``app_weld_set_interface_eip_m2r_process2`` - ``app_weld_set_interface_eip_m2r_monitoring`` - 2025-01-15 * - 1.31 - **Update Features** - Add option of Controller (``#define DRCF_VERSION``) **Update Definition** - Add ``MONITORING_CTRLIO_EX2`` - Add ``READ_CTRLIO_INPUT_EX2`` - Add ``READ_CTRLIO_OUTPUT_EX2`` - Update ``GPIO_CTRLBOX_DIGITAL_INDEX`` for v3 controller - Add ``SAFETY_CONFIGURATION_EX2_V3`` **Update Functions** - Removed the ``get_safety_configuration_ex`` member; ``get_safety_configuration`` now returns ``SAFETY_CONFIGURATION_EX2`` (DRCF v2) or ``SAFETY_CONFIGURATION_EX2_V3`` (DRCF v3) depending on ``DRCF_VERSION`` - Remove ``SetOnMonitoringData`` (duplicate) - Remove ``SetOnMonitoringCtrlIO`` (duplicate) - 2024-12-03 * - 1.30 - **Update Features** - Add Arm64 Drfl Binary - Support for Ubuntu 22.04 Version - Improve Realtime Performance - Fix Blending Motion Related Issues - Change return value of ``flange_serial_read`` **Update Definition** - Add enums: ``MOVE_ORIENTATION``, ``SPIRAL_DIR``, ``ROT_DIR``, ``DR_SERVOJ_TYPE`` - Add structs: ``SAFETY_CONFIGURATION_EX2``, ``CONFIG_SAFETY_IO_OP`` - Add parameters for adjusting speed/acceleration of each axis in ``movej`` - Add extended ``movejx``, ``amovej``, ``amovejx``, ``servoj`` **Update Functions** - Add ``get_safety_configuration (Extension)`` - Update ``ikin (Add_iter_threshold)``, ``ikin_norm`` - Update ``movec (Extension)``, ``amovec (Extension)`` - Update ``move_spiral (Extension)``, ``amove_spiral (Extension)``, ``servoj (Extension)`` - 2024-11-27 * - 1.29 - Add ``query_modbus_data_list`` - 2023-03-24 * - 1.28 - Fix ``enum.ROBOT_STATE`` description |br| |br| Add contents of ``enum.ROBOT_MODE`` |br| |br| Delete duplicate ``enum.ROBOT_SPACE`` |br| |br| Add ``set_palletizing_mode`` command |br| |br| Add ``move_home`` notice - 2023-02-20 * - 1.27 - Fixed ``drl_stop`` function parameter: ``enum.STOP_TYPE → unsigned char`` - 2022-07-04 * - 1.26 - Fixed ``enum.ROBOT_SPACE`` |br| |br| Fixed ``set_on_monitoring_safety_state`` |br| |br| Fixed ``enum.MOVE_REFERENCE`` |br| |br| Fixed ``change_operation_speed`` |br| |br| Fixed ``TOnMonitoringRobotSystemCB`` |br| |br| **Update Functions** - Add new property functions - ``get_current_posj`` - ``get_control_space`` - ``get_current_velj`` - ``get_desired_posj`` - ``get_current_tool_flange_posx`` - ``get_current_velx`` - ``get_desired_velx`` - ``get_joint_torque`` - ``get_external_torque`` - ``get_tool_force`` - Add Enums/Structs - Add ``enum.ROBOT_SPACE`` - Add ``struct.ROBOT_VEL`` / ``struct.ROBOT_FORCE`` - 2022-06-02 * - 1.25 - Delete ``port`` parameter in ``flange_serial_open / close`` |br| |br| Added a note to ``set_tool`` and ``set_workpiece_weight`` on calling them one after the other. - 2022-05-04 * - 1.24 - Edited content related to ``enum.SAFETY_MODE_EVENT`` |br| |br| Fixed parameter in ``set_safety_mode`` example |br| |br| Added the ``port`` parameter to the ``flange_serial`` functions. The parameter applies to flange version rev2 only. |br| |br| Change version → GL010115 |br| |br| **Update Functions** - Add new functions - ``set_workpiece_weight`` - ``set_mode_tool_analog_input`` - ``set_tool_digital_output_type`` - ``set_tool_digital_output_level`` - ``get_tool_analog_input`` - Add enums - ``COG_REFERENCE`` - ``ADD_UP`` - ``OUTPUT_TYPE`` - 2022-04-29 * - 1.23 - 3.3.21: Change the argument part ``TOnMonitoringSafetyState`` → ``TOnMonitoringSafetyStateCB`` |br| |br| 3.7.14: Argument part ``TYPE_TYPE`` → change to ``DATA_TYPE`` |br| |br| 3.8.11 Modify the argument to enum → ``enum.MODBUS_REGISTER_TYPE`` |br| |br| **Update Definition** - Add enums: ``SAFETY_MODE / SAFETY_MODE_EVENT``, ``COORDINATE_SYSTEM`` - Add structs: ``struct.MESSAGE_PROGRESS`` - Resolve enum constant ``ROBOT_STATE`` notation error **Update Functions** - Delete ``get_override_speed`` **Update Features** - Add realtime control - 2022-03-10 * - 1.2 - Modify version information: GL010112 |br| |br| **Add new functions** - ``set_safety_mode`` - ``set_on_monitoring_state`` - Add new function for real-time control (refer to the other manual). - 2021-12-16 * - 1.19 - Modify version information: GL010112 |br| |br| **Add new functions** - ``ikin (extension)`` - ``set_on_monitoring_robot_system`` - ``change_collision_sensitivity`` - ``add_sw_module`` - ``del_sw_module`` - ``update_sw_module`` - ``release_protective_stop`` - ``set_on_monitoring_update_module`` - 2021-11-22 * - 1.18 - Modify version information: GL010111 |br| |br| **Add new function** : ``get_override_speed`` - 2021-09-15 * - 1.17 - Modify version information: GL010110 - 2021-06-09 * - 1.16 - **Add missing function** : ``servo_off`` - 2021-03-24 * - 1.15 - **Add missing functions** : ``set_user_home`` / ``Flange_serial_read`` parameter added (timeout) - 2021-03-19 * - 1.14 - **Correction of typos / Correction of some functions** : ``movesj``, ``set_safe_stop_reset_type``, ``close_connection`` etc. - 2020-10-19 * - 1.13 - **Add functions** : ``flange_serial`` etc. - 2020-10-19 * - 1.12 - Split the header (add ``DRFLEx`` class) - 2020-06-08 * - 1.11 - Update function name (DRL style) - 2020-05-28 * - 1.1 - Update new commands - 2020-05-20 * - 1.0 - Initial Creation and Distribution - 2018-06-29