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