Ruff APP 移植多板卡开发教程

经验

(wangqj) #1

Ruff SDK 1.10.0 新增了多板卡支持。可以将同一 app 部署到不同类型以及同类型不同板卡上。

应用场景

假设现在手里有两块板卡,一块 Ruff 开发板(ruff-mdb-v1),另一块 ESP32 开发板(esp32-air-v40)。现在需要将 APP 分别部署到两块板卡上。

准备开发环境

  1. 首先确保通过了官网的起步走教程
  2. 准备 Ruff 开发板,PC 连接了开发板的 wifi,开发板连上了路由器 wifi,同时打开了 Packet Forwarding 开关。
  3. 准备 ESP32 开发板,并且 PC 通过 USB 连接 ESP32,同时 PC 安装了USB转串口的驱动。

新建工程

首先确保安装了 1.10.0 的 ruff sdk

# 新建 test 文件夹
mkdir test
# 进入项目文件夹
cd test
# 初始化 ruff-mbd-v1 工程
rap init

填入工程的详细信息后,新的工程会被创建:

? app name: old
? version: 0.1.0
? description:
? author:
Installing main board module...
Downloading package "ruff-mbd-v1"...
Extracting package "ruff-mbd-v1" (4.2.6)...
Downloading package "led-gpio"...
Extracting package "led-gpio" (3.0.4)...
Downloading package "button-gpio"...
Extracting package "button-gpio" (2.0.6)...
Downloading package "pca9685"...
Extracting package "pca9685" (2.0.5)...
Downloading package "ltc2309"...
Extracting package "ltc2309" (3.0.1)...
Downloading package "mcp23017"...
Extracting package "mcp23017" (2.0.5)...
Downloading package "ruff-v1-sys-usb"...
Extracting package "ruff-v1-sys-usb" (0.3.1)...
Created files:
- package.json
- .rapignore
- README.md
- src/index.js
- test/test.js
- app.json
Done, happy crafting!

注:rap init 会默认下载 ruff-mbd-v1 的板卡

编写 app

编写一个 hello ruff app:

'use strict';

$.ready(function (error) {
    if (error) {
        console.log(error);
        return;
    }

    console.log('Hello, Ruff');
});

$.end(function () {
});

添加 session

session 是独立于板卡的。对于不同类型的板卡,连接方式可能不一样。例如:对于 Ruff 开发板,通过 IP 地址来区分同类型的不同的板卡。对于 ESP32 开发板,则是通过串口号区分。为了 rap 能够在系统中存在着不同类型板卡的情况下确定到某一块板卡,而引入了 session 机制。

首先确认好板卡的 ip 地址(AP 模式下默认为 192.168.78.1),然后添加 session

rap session add --name mbd --board ruff-mbd-v1 --parameters address=192.168.78.1

注:–parameters 的格式可能会因板卡的不同而改变,请注意参考相关板卡的说明。

激活对应的 session

$ rap session activate mbd

之后可以通过rap session list确认是否激活

$ rap session list
* [0] mbd (active)
  board: ruff-mbd-v1
  address: 192.168.78.1

部署应用

rap deploy --start

注:部署成功后就可以通过rap log查看打印信息。

添加ESP32板卡

以上的流程为单板卡的开发流程,现在想将工程部署到其他板卡,可以参考以下 ESP32 的例子。

添加 ESP32

rap board add esp32-air-v40

这时系统中已经添加了两块板卡了。可以通过rap board list查看当前工程中有哪些板卡:

$ rap board list
* [0] (active)
  board: ruff-mbd-v1
  version: 4.2.6
* [1]
  board: esp32-air-v40
  version: 0.2.3

添加 session

本文中 ESP32 的串口号为 /dev/ttyUSB0

rap session add --name esp32 --board esp32-air-v40 --parameters port=/dev/ttyUSB0

激活 ESP32 的 session

rap session activate esp32

可以 list 确认 active 状态

$ rap session list
* [0] mbd
  board: ruff-mbd-v1
  address: 192.168.78.1
* [1] esp32 (active)
  board: esp32-air-v40
  port: /dev/ttyUSB0

部署应用

rap deploy

注:部署成功后就可以通过rap log查看打印信息。

恭喜你已经成功完成了多板卡开发流程!