CommonTCPServer 通用TCP服务器

CommonTCPServer 算子介绍视频教程

CommonTCPServer 算子属于线程类算子,用于在 RVS 的分线程中启动一个 TCP server 服务器。

该服务器只能接收固定的7类字符串信息,并且对应的回复也是固定的字符串。

这 7 类字符串分别以 7 个命令作为起始值,分别是 CAPTURE、SET_POSE、GET_POSE、SET_JOINT、GET_JOINT、SET_STRING、GET_STRING。

  1. 客户端发送以命令字符 SET_POSE 、SET_JOINT、SET_STRING 开始的消息。

    通讯方式:

     SET_POSE command_delimiter  x y z rx ry rz delimiter
    
     SET_JOINT command_delimiter  j1 j2 j3 j4 j5 j6 delimiter
    
     SET_STRING command_delimiter  string delimiter
    

    从客户端获得的实际数据最终分别触发算子右下侧的 pose 、joints、string 端口。

    运行结束后,最终都会回复客户端空字符。

  2. 客户端发送以命令字符 GET_POSE 、GET_JOINT、GET_STRING 开始的消息。

    通讯方式:

    GET_POSE  command_delimiter delimiter
    
    GET_JOINT  command_delimiter delimiter
    
    GET_STRING  command_delimiter delimiter
    

    最后需要返回给客户端的实际数据分别通过算子左下侧的 pose 、joints、string 端口传递数据。

    运行结束后,最终都会回复客户端对应的实际数值字符串,中间用空格隔开。

  3. 客户端发送以命令字符 “CAPTURE” 开始的消息。

    通讯方式:

    CAPTURE  command_delimiter  其他内容 delimiter
    

    运行结束后,最终都会回复客户端空字符。

  4. 任意其他消息,不会作任何响应。

算子参数

  • 端口/port:创建 TCP server 服务器所使用的本机服务端口。

    说明:实际运行时,如果提示 TCP 服务端创建失败,往往是所选取的端口已经被其他服务所占用,更换端口即可。如果在同一个 RVS 软件中,创建多个TCP 服务端算子,彼此的 port 也要互斥。

  • 连接数量/connections:可支持同时连接的客户端数量。

  • 服务器模式/server_mode:运行模式。

    • Once:表示完成一次 TCP 对话以后自动断开同客户端的连接 。(比如客户端首先同该算子建立了 TCP 连接,然后第一次发送了 test1 命令的字符串之后,继续发送 test2 命令的字符串,此时就会报错)。

    • Continous:表示客户端建立链接后可以无限次数的对话。

  • 分隔符/delimiter:消息结束符,包含RT 换行符、 “;”、“#”、“$”。当选择了其中某一种时,另外三种就会被视作普通字符随意使用 。服务端在接收客户端发送的消息时,会捕获第一个消息结束符之前的所有消息。

    注意:由于不同的通信软件、电脑系统软件、机器人操作系统软件对回车换行的定义不一致,一般不建议选择RT作为消息结束符。

  • 命令分隔符/command_delimiter:命令结束符。当选择了其中某一种时,另外一种就会被视作普通字符随意使用。服务端在接收客户端发送的消息时,会将第一个命令结束符之前的所有消息视为命令字符,之后的消息视为内容信息。如果命令字符不是 SET_POSE1 、SET_POSE2 、GET_POSE1 、GET_POSE2 、SET_JOINT 、GET_JOINT 、CAPTURE 中的任意一个,则是无效命令,不做任何后续处理与响应。

    • Space:空格。

    • ,:逗号。

  • 回复结束符/arc_eof:回传值结束符。当输入该值时,在回传值结尾添加结束符。默认为空。

  • 坐标/pose:设置 pose 命令消息接受到的 pose 在 3D 视图中的可视化属性。

    • icon_visOn 打开 pose 可视化。

    • icon_visOff 关闭 pose 可视化。

    • icon_size 设置坐标的尺寸大小。取值范围:[0.001,10] 。默认值:0.1 。

  • 字符串/string:设置 string 命令消息接受到的字符的曝光属性,打开后则可以将 string 输出端口的内容绑定到交互面板上的文本框并输出显示。

    • icon_visOn 打开 string 曝光。

    • icon_visOff 关闭 string 曝光。

控制信号输入输出

输入:

  • start

    • 触发start信号端口运行算子,开始创建 TCP 服务端,创建成功后监听服务端口并等待客户端访问。

      说明:本算子仅需要初始化运行一次即可。

  • stop

    • 触发 stop 信号端口后,开始停止 TCP 服务端的监听。

  • reset

    • 该功能保留。

输出:

  • finished

    • 该功能保留。

  • failed

    • 算子运行失败后触发该端口。

  • started

    • 算子成功建立 TCP 服务端后触发该端口。

  • processing

    • 该功能保留。

  • stopped

    • 算子成功停止 TCP 服务端的监听后触发该端口。

  • reset

    • 该功能保留。

功能演示

本节功能演示与 TestTCPCommand 算子类似。请参照 TestTCPCommand 算子的案例演示。