连接管理接口

头文件:include/tl_interface.h

相关示例代码:examples/py/ex_connect.py

1. connect_robot - 创建机械臂连接控制句柄

方法:connect_robot(const std::string& ip, const std::string& port);

功能描述:建立与机械臂控制器的网络通信通道。需要分别连接指令端口(6001)和实时端口(7000)以获得两个独立的句柄。

参数:

  • ip:机械臂控制器 IP 地址,例如 "192.168.1.13"。
  • port:端口号字符串,指令通道 "6001",实时跟踪通道 "7000"。

返回值:

  • int:已连接的句柄
    • 1:连接成功,返回有效的 socket 句柄
    • ≤ 0:连接失败

使用示例:

Python
import tl_interface as tl

# 创建机械臂连接

socket_fd = tl.connect_robot("192.168.1.13", "6001")

if socket_fd > 0:

    print(f"机械臂连接成功!控制器句柄:{socket_fd}")

else:

    print(f"连接失败,控制器返回句柄:{socket_fd}")

2. disconnect_robot - 关闭所有机械臂连接

方法:disconnect_robot(socket_fd);

功能描述:断开控制器。

参数:

  • socket_fd:已连接的句柄,由connect_robot返回

返回值:

  • None

使用示例:

Python
import tl_interface as tl

# 先建立连接

socket_fd = tl.connect_robot("192.168.1.13", "6001")

# 断开连接

tl.disconnect_robot(socket_fd)

print("已成功断开与控制器的连接")

最佳实践:

  • 建议使用try-finally结构确保断开连接
  • 断开连接前建议先下使能

3. get_connection_status - 获取控制器连接状态

方法:get_connection_status(socketFd);

功能描述:获得控制器连接状态。

参数:

  • socketFd:已连接的句柄。

返回值:

  • 0:成功
  • 非 0:失败

使用示例:

Python
import tl_interface as tl

socket_fd = tl.connect_robot("192.168.1.13", "6001")

ret = tl.get_connection_status(socket_fd)

if ret == 0:
    print("控制器已连接")
else:
    print(f"控制器连接状态查询失败,错误码:{ret}")

4. get_controller_network_config - 获取控制器网络配置

方法:get_controller_network_config(socketFd);

功能描述:获取控制器当前的网络配置信息。

参数:

  • socketFd:已连接的句柄。

返回值:

  • tuple:(ret, name, address, gateway, dns),name 网络接口名称、address IP 地址、gateway 网关、dns DNS
  • 0:成功
  • 非 0:失败

使用示例:

Python
import tl_interface as tl

socket_fd = tl.connect_robot("192.168.1.13", "6001")

ret, name, address, gateway, dns = tl.get_controller_network_config(socket_fd)

if ret == 0:
    print(f"IP:{address},网关:{gateway}")

5. set_controller_network_config - 设置控制器网络配置

方法:set_controller_network_config(socketFd, name, ip, gateway, dns);

功能描述:设置控制器网络配置。

参数:

  • socketFd:已连接的句柄。
  • name:要修改的网络接口名称。
  • ip:新的 IP 地址。
  • gateway:网关地址,传空字符串表示不配置网关。
  • dns:DNS 服务器地址,传空字符串表示不配置 DNS。

返回值:

  • 0:成功
  • 非 0:失败

使用示例:

Python
import tl_interface as tl

socket_fd = tl.connect_robot("192.168.1.13", "6001")

ret = tl.set_controller_network_config(socket_fd, "eth0", "192.168.1.14", "192.168.1.1", "")