机器人可以作为socket客户端,与外部设备通讯。相关指令可以参见CS机器人脚本手册(https://www.elibot.cn/#/download 下载 CS_脚本手册_V2.0.3)
例如,可以在机器人中创建如下脚本
socket_open("192.168.230.1",60000,"socket_1") # 打开socket,此处IP地址为PC端server的IP地址和端口 global recv # 创建 带global关键字的全局变量,可以在示教器 监控 画面查看该变量实时值 while True: socket_send_string("Hello world","socket_1") #向server端发送字符串 recv = socket_read_string(socket_name="socket_1",timeout=120) # 接受外部发来的字符串,若超时120s,机器人指令直接向下运行 sleep(0.1)
打开PC server端,监听60000端口,再运行机器人中的脚本,可以得到如下效果:
机器人脚本中,可以使用socket_read_ascii_float(3)指令,对收到的数据直接拆分。
要求: 收到的字符串以"(" 开头,以")"结尾,中间数据以","隔开。
指令在的参数表示最多读取几组数据。
若机器人收到"(1,2,3)",则该函数返回数据为[3,1,2,3],数组的第0个元素表示收到的数据个数,后续为自动拆分的数据内容
socket_open("192.168.230.1",60000,"socket_1") # 打开socket,此处IP地址为PC端server的IP地址和端口 global recv # 创建 带global关键字的全局变量,可以在示教器 监控 画面查看该变量实时值 recv = [0,0,0,0] while True: socket_send_string("Hello world","socket_1") recv = socket_read_ascii_float(3,socket_name="socket_1",timeout=120) # 接受外部发来的形式为 (1,2,3)的字符串,若超时120s,机器人指令直接向下运行 sleep(0.1)