阿里云首页 IoT物联网操作系统

命令行工具

运行在Mac或Windows电脑上的命令行工具主要是用来推送设备应用脚本到设备端,拥有一套完整的命令,可以完成如设备应用脚本更新、运维服务、日志服务等。

工具包获取

Mac版需要设置执行权限:chmod +x ./amp

工具包介绍

命令行工具文件目录如下:

 amp-clitools
 ├── dist
 │   ├── amp                        # 命令行工具
 │   ├── app                        # 应用脚本
 │   │   ├── app.json
 │   └── app.js
 │   └── bindings.node        # 本地更新库
 └── engines                        # 引擎
         ├── quickjs

打开app.js,这里就运行了我们的业务代码,默认定时打印系统信息。

命令介绍

名称

$ amp

IoT轻应用命令行工具可以对设备进行热更新操作,支持本地热更新和远程热更新。

命令列表

命令

说明

示例

login

命令行登录

amp login <your-token>

device list

列出绑定的设备

amp device list

pack

打包代码

amp pack <app-dir> -m <mode> -e <encode>

put

推送应用代码到设备端

在线热更新)

amp put <app-dir> [device-name] -m <mode> -e <encode>

seriallist

列出电脑的所有串口

amp seriallist

serialput

推送应用代码到设备端

本地热更新)

amp serialput <app-dir> <port> -m <mode> -e <encode> -b <baudrate>

version

版本号

amp --version

help

帮助

amp --help

命令详解

login - 登录

命令参数

amp login <your-token>

说明

使用远程热更新时,需要使用该命令绑定用户token,第一次使用远程热更新时需要绑定token,之后使用不再需要输入token。在线热更新详细说明见 在线热更新

使用本地热更新时,无需绑定用户token。

token请发送邮件至aliosthings@service.aliyun.com(点击创建邮件模板)。

命令示例

$ amp login b880********2d0e

device list - 列出已绑定设备

命令参数

amp device list

说明

列出您的账号绑定的设备。

命令示例

$ amp device list

pack - 打包应用

命令参数

amp pack <app-dir> -m <mode> -e <encode>

说明

将应用打包成app.bin。

  • mode:模式,可选项 [quickjs | duktape],默认duktape

  • encode:编译,可选项 [0 | 1],默认0不编译,duktape不支持编译

该命令执行后,生成的app.bin文件存放于执行目录。

命令示例

// duktape固件
$ amp pack ./app
// quickjs固件
$ amp pack ./app -m quickjs
// quickjs固件 + 应用加密
$ amp pack ./app -m quickjs -e 1

put - 在线热更新

命令参数

amp put <app-dir> <device-name> -m <mode> -e <encode>

说明

远程推送轻应用到设备。

  • mode:模式,可选项 [quickjs | duktape],默认duktape

  • encode:编译,可选项 [0 | 1],默认0不编译

该命令会消耗网络流量,推送应用到蜂窝模组时请按需使用。

命令示例

// duktape固件
$ amp put ./app 8675*******3456 
// quickjs固件
$ amp put ./app 8675*******3456 -m quickjs 
// quickjs固件 + 应用加密
$ amp put ./app 8675*******3456 -m quickjs -e 1

seriallist - 列出电脑串口

命令参数

amp seriallist

说明

列出电脑上的所有串口。

命令示例

$ amp seriallist

serialput - 本地热更新

命令参数

amp serialput <app-dir> <port> -m <mode> -e <encode> -b <baudrate>

说明

通过串口推送轻应用到设备(本地更新)。

  • mode:模式,可选项 [quickjs | duktape],默认duktape

  • encode:编译,可选项 [0 | 1],默认0不编译

  • baudrate:波特率,默认115200

命令示例

// HaaS100/HaaS-EDU-K1 + duktape固件
$ amp serialput ./app /dev/tty.usb* -b 1500000 
// HaaS600 + duktape固件
$ amp serialput ./app /dev/tty.usb*
// HaaS100/HaaS-EDU-K1 + quickjs固件
$ amp serialput ./app /dev/tty.usb* -m quickjs -b 1500000 
// HaaS600 + quickjs固件
$ amp serialput ./app /dev/tty.usb* -m quickjs

version - 查看版本号

$ ./amp --version1.1.0

help - 帮助

$ ./amp --helpUsage: amp [options]AliOS Things Mini Program PC CLI toolOptions:
-V, --version          output the version number
-h, --help             output usage
informationCommands:
login <token>                              login device
list                                       list bind devices
pack [options] <filepath>                  pack file
put [options] <filepath> <deviceName>      upload file to device 
seriallist                                 list serial port
serialput [options] <filepath> <port>      put file to device via serial port

问题&解决方案

1.HaaS600 EC100Y推送代码,板子打印如下后,卡住没有任何反应。

现象:

// 命令行
$ amp serialput ./app  /dev/tty.SLAB_USBtoUART     
device type: ymodem
generating app package...
Wait shakehand with board ...
Please reboot board now
// log打印的版本信息
=================amp info=================

amp version: amp-v2.1.0-g567d371

amp build time: May 31 2021, 16:35:16

==========================================

解决方案:最新的版本已经升级到了v3.0.0+,当前工具仅支持v3.0.0+固件版本,需要升级固件到最新版本。

2.问题描述:MacOS下HaaS600 EC600S推送代码,板子遇到如下报错。

现象:

$ amp serialput ./app  /dev/tty.usbmodem529B0130701
device type: ymodem
generating app package...
Wait shakehand with board ...
Please reboot board now
Putting: ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 0/15
/snapshot/amp-clitools/src/local/ymodem.js:104
          throw('timeout');
          ^
timeout

解决方案:串口芯片驱动不支持MacOS,需要使用额外的TTY转USB模块接出串口,接线如下图。

接线