< >
Home » Farmbot开发入门教程 » farmbot开发入门教程-FarmBot OS 开发

farmbot开发入门教程-FarmBot OS 开发

说明:

  • 大多数开发将在“主机”环境中完成。这意味着,我们无需在计算机上进行更改,然后将其推送到设备,而是可以在自己的机器上快速开发。有关此内容的更多信息,请参阅此Nerves 入门指南。但作为副作用,我们需要能够配置(至少)两个不同的环境/目标组合,其中:

environment是其中之一:

环境 描述
prod- 生产环境

  • 未启用任何开发者功能(例如日志、本地固件更新等)。
  • 没有远程 shell
  • 没有远程固件更新。
  • 必须进行数字签名。
    dev- 开发环境
  • 将大多数内容记录到控制台。
  • 远程 shell
  • 远程固件更新。
    test- 测试环境
  • 仅存在于host当前在目标上运行的测试。

并且target(environment意志运行的地方)是以下之一:

目标 使用
host 为了发展
rpi3 用于在 Raspberry Pi 3 上运行
rpi 在 Raspberry Pi Zero 上运行

运行单元测试

  • 开发功能时应进行测试。您应该安装并运行本地Farmbot 堆栈,并对其进行配置以使其正常工作。config/host/auth_secret_template.exs将有更完整的说明。
MIX_ENV=test mix deps.get # Fetch test env specific deps.
mix test

功能开发

  • 如果您计划开发功能,您可能希望使用dev和host组合来开发它们。这些都是默认值,因此您只需执行以下操作即可:
mix deps.get # You should only need to do this once.
iex -S mix # This will start an interactive shell.

设备上的开发

  • 有时需要在设备本身上开发和测试功能。这可以通过dev和rpi3组合来实现。强烈建议您为此配备一条 FTDI 电缆,例如这根
MIX_TARGET=rpi3 mix deps.get # Get deps for the rpi3 target. You should only need to do this once.
MIX_TARGET=rpi3 mix firmware # Produce a firmware image.
# Make sure you SDCard is plugged in before the following command.
MIX_TARGET=rpi3 mix firmware.burn # Burn the sdcard. You may be asked for a password here.

本地固件更新

  • 如果您的机器人连接到您的本地网络,您应该能够通过网络将更新推送到您的设备。
# make some changes to the code...
MIX_TARGET=rpi3 mix firmware # Build a new fw.
MIX_TARGET=rpi3 mix firmware.push <your device ip address> # Push the new fw to the device.
  • 您的设备现在应该会重新启动并进入新代码。只要您没有以某种方式导致恢复出厂设置(错误的初始化代码、拼写错误等),您就应该能够持续向设备推送更新。

更新 Rollbar 令牌

  • Rollbar 用于跟踪 FarmBot OS 上的生产运行时错误。使用编译到 FBOS 发布映像中的 rollbar 令牌报告错误。随着时间的推移,必须轮换令牌,因为 Rollbar 将继续从不感兴趣的旧版 FarmBot OS 收到错误报告。

  • 在 Rollbar 管理设置页面中创建一个新的项目令牌。https://rollbar.com/ORG/PROJECT/settings/access_tokens/

  • 将令牌复制到 FarmBot OS 的 Circle CI 项目中的 ROLLBAR_​​TOKEN 环境变量中。

  • FarmBot OS 的新版本将使用新的令牌。

  • 确保为令牌设置了合理的速率限制。

发布 FBOS 候选版本

  • 从 创建一个功能分支staging。分支名称必须以 开头qa/。
  • 按要求实现功能。
  • 提交更改并推送到新创建的qa/***分支。
  • CI 系统将开始新的草稿发布。草稿将出现在发布页面上。
  • 构建完成后(约 5 分钟),将草稿转换为发布版本。请勿取消选中预发布复选框。
  • 运行rake releases:publish并按照说明进行操作。

发布 FBOS 稳定版本

  • staging从到创建一个新的拉取请求 (pull request) main,并在 CI 通过后合并。
  • 将提交合并到暂存区将触发 CI 构建。
  • 5 分钟后,将创建一份草稿发布版本。
  • 访问发布页面并将草稿转换为发布。取消选中预发布复选框。如果不这样做,下一步将不起作用。
  • 按照提供的说明运行rake releases:publish并将版本发布到频道。stable

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: none