farmbot开发入门教程-节点
说明:
除REST API和一些其他边缘情况外,FarmBot 用户、设备和系统之间发生的所有通信都包装在CeleryScript 节点中。
节点是一种特殊格式的 JSON 文档。它是一种可组合的构建块,可以嵌套和排列以创建命令树,类似于使用抽象语法树创建编程语言的方式。
格式
CeleryScript 节点由以下部分组成:
- kind确定节点用途的 (字符串)。每个 CS 节点都必须具有 kind 属性。合法类型kind列在此处。
- 包含键/值对的对象args(其中一些值将是子节点,其他值将是简单的原始值,例如数字)。每个节点都需要一个args对象,其中的参数根据 而变化kind。如果节点需要特定的arg,它将始终存在。CeleryScript 中没有可选项 arg。这简化了标准的许多方面。
- 可选comment(字符串)字段,用于帮助开发人员提高可读性。您不需要使用它(甚至不需要包含它),但如果有帮助,您可以使用它。我们使用注释进行跟踪和调试。
- 可选body参数,如果定义,将包含其他 CeleryScript 节点的列表。主体将只包含 CeleryScript 节点,永远不会包含字符串或数字等原始值。例如,“sequence”节点的主体可能包含“move_relative”节点。
下面是一个 CeleryScript 节点示例reboot,它告诉设备重新启动指定的应用程序:
{
"kind": "reboot",
"args": { "package": "farmbot_os" },
"comment": "Optional. Useful when debugging, but ignored by the system.",
"body": []
}
一些常见的 CeleryScript 节点包括:
- move_relative,move_absolute
- execute- 通过 arg 运行一个序列sequence_id。
- rpc_request,,rpc_ok——rpc_error将在本文后面讨论。
可用节点
另请参阅corpus.d.ts文件。
种类 类型 也称为 描述
assertion命令 断言风格自动化测试的命令(更多信息)
calibrate 命令 找到轴的长度 执行轴校准的命令(查找轴长度)
change_ownership 命令 将 FarmBot 设备的所有权从一个 Web 应用帐户转移到另一个 Web 应用帐户
channel
check_updates 命令 更新 指示 FarmBot 检查(并安装)软件更新
coordinate
emergency_lock 命令 急停 紧急停止 FarmBot
emergency_unlock 命令 开锁 解锁 FarmBot 的紧急停止功能
execute 命令 执行序列 执行序列的命令(更多信息)
execute_script 命令
explanation 描述rpc_error
factory_reset 命令 软复位 指示 FarmBot 恢复出厂设置
find_home 命令 沿轴寻原点的命令
flash_firmware 命令 指示 FarmBot 将固件刷入微控制器
home 命令 搬回家 命令指示 FarmBot 前往原点位置(这与寻找原点不同)
identifier
if 命令 允许 FarmBot 评估条件是真还是假并采取相应的行动
internal_entry_point
internal_farm_event
internal_regimen
lua 命令 参见lua 文档
move 命令 移动 FarmBot 的命令(更多信息)
move_absolute 命令 搬去 将 FarmBot 移动到绝对坐标位置的命令(更多信息)
move_relative 命令 用于将 FarmBot 从当前位置移动相对距离的命令(更多信息)
named_pin
nothing
pair
parameter_application
parameter_declaration
point 表示农场设计师地图中的一个点(位置),例如植物、杂草、点或工具槽
point_group 农场设计师地图中的一组点(位置)
power_off 命令 关闭 指示 FarmBot 完全关闭
read_pin 命令 读取传感器 读取引脚的命令(读取传感器)
read_status 命令 指示 FarmBot 发送带有完整状态树的状态消息
reboot 命令 指示 FarmBot 重新启动
rpc_error 表示请求操作失败
rpc_ok 表示请求操作成功
rpc_request 请求设备执行某项操作
scope_declaration
send_message 命令 发送消息的命令
sequence
set_servo_angle 命令 控制伺服 伺服电机移动命令
set_user_env
sync 命令 指示 FarmBot 与 API 同步
take_photo 命令 指示 FarmBot拍照并将其上传到 API
toggle_pin 命令 切换外围设备 切换引脚状态的命令(切换外围设备)
tool
update_resource 命令 标记为 请参阅标记为命令的文档
variable_declaration
wait 命令 等待时间(以毫秒为单位)的命令
write_pin 命令 控制外设 用于将数字或模拟值写入(控制外围设备)到引脚的命令
zero 命令 设为首页 沿轴将当前位置设置为零(设置原点)的命令
rpc_请求
CeleryScript 规范定义了三个用于实时控制设备的节点。这些节点在用户界面中广泛用于执行一次性命令,例如设备位置调整
- rpc_request- 由用户(或偶尔由REST API)发起,请求设备执行某项操作。所需操作(例如:move_relative、reboot等)保存在body此节点的 中。
- rpc_ok- 由设备发送给最终用户。表示请求操作已成功。
- rpc_error- 表示请求操作失败。遗嘱正文rpc_error通常包含多个explanation节点,描述失败的情况。
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号