简单服务中调用 SDK
本页面旨在指导开发者如何在简单服务中调用 Agilebot SDK,并通过程序指令调用。
创建简单服务插件包
在此处的示范中,我们将创建一个简单服务类型的插件。该插件的功能是对外提供一个加法运算接口,并写入某个 R 寄存器。
提示
下文中的 MathServiceComplex 就是我们即将创建的简单服务的插件名。
步骤一:创建插件文件夹
首先我们需要创建一份插件基本文件夹,该文件夹需包含一个 config.json 配置文件和一个 Python 文件,注意简单服务中,Python 文件的名称必须与插件名称相同。
您可以从头开始手动创建,也可以使用插件开发包仓库中 "demo" 目录下的模板进行修改。
目录结构:
- MathServiceComplex
- config.json
- MathServiceComplex.py
py
from Agilebot.IR.A.arm import Arm
from Agilebot.IR.A.status_code import StatusCodeEnum
from Agilebot.IR.A.sdk_classes import Register
# 获取全局logger实例,只能在简单服务中使用
logger = globals().get('logger')
if logger is None:
# 本地调试时,使用自带日志库
import logging
logger = logging.getLogger(__name__)
arm = Arm()
ret = arm.connect("10.27.1.254")
if ret != StatusCodeEnum.OK:
logger.error("连接失败")
def add(a: int, b: int) -> int:
"""
执行两个整数的加法运算,并写入寄存器
参数:
- a (int): 第一个加数
- b (int): 第二个加数
返回:
- int: 返回加法结果
"""
try:
result = a + b
# 将结果写入寄存器
register = Register()
register.id = 1
register.name = "math_result"
register.comment = "加法服务的结果"
register.value = result
ret = arm.register.write(1, register)
if ret != StatusCodeEnum.OK:
logger.error("更新R失败")
return result
except Exception as ex:
logger.error(ex)
return 0json
{
"name": "MathServiceComplex",
"type": "easyService",
"scriptLang": "python",
"description": "数学服务",
"version": "0.1"
}步骤二:打包、安装
插件打包请参考打包与安装
步骤三:使用 CALL_SERVICE 指令调用
- 选择插入指令
CALL_SERVICE

- 填写
CALL_SERVICE指令的相关参数

- 服务名称:即简单服务的名称,本例中填写
MathServiceComplex - 指令名称:即要调用的服务中的函数名,本例中填写
add - 参数:即要传给上述函数名的参数列表,本例中填写
a: 1、b: 2
- 点击执行按钮

- 用户程序执行成功后,将在
R[1]中写入值3
