farmbot开发入门教程-Celery脚本
说明:
FarmBot 系统有许多活动部件。系统之间必须以可预测和异步的方式交换数据。有时,这些数据甚至用于以类似于传统编程语言的方式告诉机器人该做什么。为了实现这一点,我们使用一种特殊的远程过程调用和数据交换格式,称为CeleryScript。
CeleryScript 节点是经过特殊格式处理的 JSON 文档。FarmBot 将这些文档用于各种存储和通信用例,同时也将其用作序列脚本的内部编程语言。它是一种编程语言、序列化格式和 RPC 协议,统一在称为语料库的单一架构下。
如果有足够经验,开发人员可以手动读取和编写 CeleryScript,但这种情况并不常见。CeleryScript 通常由自动化工具(如服务器、FarmBot、编译器和解释器)读取和编写。CeleryScript 的主要目标是在编写上述工具时实现统一性和易于开发。它的结构经过优化,便于开发人员工具使用,但有时会以牺牲人类可读性为代价。阅读文档时,请记住这种设计权衡。
目标受众
本文档适用于高级软件开发和调试。许多软件开发人员可以通过使用FarmBotJS 库来避免 Celery Script 的低级细节。使用包装器库时,CeleryScript 的所有低级细节都会被抽象出来。
只有当您不想使用包装器库、正在为 FarmBot 平台开发新功能或尝试调试系统的特定问题时,才需要 CeleryScript 知识。对于勇敢的软件开发人员来说,这也是学习 FarmBot 系统内部知识的好方法。
在大多数情况下,鼓励 Javascript 开发人员使用FarmBot JS而不是原始 CeleryScript。
如果您要为新语言或不受支持的语言编写 CeleryScript,我们强烈建议您编写自己的包装器库,因为手动编写 CeleryScript 非常繁琐、容易出错,并且将来可能会出现兼容性问题。相反,迁移和管理自动生成的 CeleryScript 通常是一项简单的任务,可以通过脚本完成。
CeleryScript 在哪里使用?
使用 Celery 脚本:
- 在序列编辑器中构建命令的抽象语法树,该命令由REST API端点存储和服务。/sequences
- 通过消息代理在用户和设备之间发送一次性移动命令和其他消息。
- 内部功能,例如动态更改设备配置和触发固件更新。
例子
- 要查看 CeleryScript 的示例,请在序列编辑器中打开一个序列。在菜单,将VIEW CELERYSCRIPT设置为YES。这将向您显示序列中每个步骤的 CeleryScript
- 要在 CeleryScript 和普通 UI 之间切换,请按按钮。更新常规 UI 中的字段将更新 CeleryScript 视图。
- 要查看整个序列的 CeleryScript,请按序列标题中的按钮。
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号