RPC(Remote Procedure Call)可以方便的实现远程调用功能,即机器人可以直接调用远程模块提供的函数等。
使用RPC时,机器人作为client,对于真机,机器人使用rpc指令时,默认通过FB2口。
例如使用python创建如下RPC server,并启动运行
from xmlrpc.server import SimpleXMLRPCServer from xmlrpc.server import SimpleXMLRPCRequestHandler # 定义提供给客户端调用的函数 def add(x, y): return x + y def subtract(x, y): return x - y def multiply(x, y): return x * y def divide(x, y): return x / y # 创建服务器实例并将定义的函数注册到服务器 server = SimpleXMLRPCServer(("192.168.75.1", 8000)) #监听的本地IP及端口 server.register_function(add, "add") server.register_function(subtract, "subtract") server.register_function(multiply, "multiply") server.register_function(divide, "divide") # 启动服务器监听客户端请求 server.serve_forever()
在CS机器人中,可以使用如下代码,调用RPC中的若干函数
rpc1 = rpc_factory("xmlrpc","http://192.168.75.1:8000/RPC2") # 连接rpc服务器,注意server的IP及端口 global var10 var10 = rpc1.add(1,2) # 调用rpc 服务器中的add函数,并得到结果3