1、前言
这里主要介绍轻应用的命令行工具,即用于轻应用的辅助开发,以简单的命令行方式运行在Mac或Windows电脑上的工具。命令行工具主要是用来推送设备应用脚本到设备端,并拥有一套完整的命令,可以完成设备的应用热更新、运维服务、日志服务等。
2、工具包
获取
介绍
命令行工具文件目录如下:
-
├── amp # 命令行工具
-
├── app # 应用脚本
-
│ ├── app.json
-
│ └── app.js
-
└── bindings.node # 本地更新库
打开app.js
,这里就运行了我们的业务应用代码,默认打印系统信息。
3、准备工作
如果想了解工具中的本地热更新命令,需要通过MicroUSB数据线连接开发板与PC,具体请参考以下链接中的设备连接介绍。
4、命令行
4.1、命令名称
$ amp
IoT轻应用命令行工具
可以对设备进行热更新操作,支持 本地热更新
和 在线热更新
功能。
Mac版需要设置执行权限:
chmod +x ./amp
。
Mac上执行amp命令时会遇到权限问题,详见第6部分。
4.2、命令总览
功能 |
命令 |
描述 |
示例 |
|
login |
命令行登录 |
|
||
device list |
列出绑定的设备 |
|
||
put |
推送应用代码到设备端 (在线热更新) |
|
||
seriallist |
列出电脑的所有串口 |
|
||
serialput |
推送应用代码到设备端 (本地热更新) |
|
||
- |
version |
版本号 |
|
|
- |
help |
帮助 |
|
4.3、命令详解
login - 登录
参数
amp login <your-token>
说明
使用在线热更新前,需要获取<your-token>
,该命令用于登录和绑定用户的唯一token,仅需执行一次。
使用本地热更新时,无需绑定用户token。
token及其SDK包请通过公测申请获取。
示例
-
$ amp login b8805cfefe8b****f069e638a0162d0e
-
login success
device list - 列出已绑定设备
参数
amp device list
说明
在amp login <your-token>
成功后,使用该命令可列出您账号下已绑定的设备名称,建议使用IMEI号作为设备名称<device-name>
。
示例
-
$ amp device list
-
Your bound devices:
-
8675*******3456
-
8675*******4321
-
3522*******7456
put - 在线热更新
参数
amp put <app-dir> <device-name>
<app-dir>
指当前目录下app目录,包含板级配置文件和JS脚本文件。device_name
指绑定列表中的设备名称
说明
注意:使用前,请参考
在线热更新
确定模组固件版本、设备绑定及设备联网等是否已完成。
通过该命令可远程推送轻应用到指定的设备,其中 app-dir
和 <device-name>
以实际为准。
该命令会消耗网络流量,推送应用到蜂窝模组时请按需使用。
示例
-
$ amp device list
-
Your bound devices:
-
8675*******3456
-
-
$ ./amp put ./app 8675*******3456
-
device:8675*******3456 ONLINE.
-
generate app package
-
push app package SUCCESS
若出现OFFLINE,可能由于设备尚未联网成功
具体示例演示请参考在线热更新
seriallist - 列出电脑串口
参数
amp seriallist
说明
注意:使用前,请参考
本地热更新
确定硬件连接
列出电脑上的所有串口,确定本地热更新
的串口号<serial-port>
示例
- Mac
-
$ amp seriallist
-
/dev/tty.usbserial-AK08LNMO
-
/dev/tty.usbserial-AK08LNMM
- Windows
-
$ amp seriallist
-
COM59
-
COM60
serialput - 本地热更新
参数
amp serialput <app-dir> <serial-port>
或
amp serialput <app-dir> <serial-port> -t <type>
type:
- ymodem(默认)
说明
注意:使用前,请参考
本地热更新
确定硬件连接、模组固件和是否进入下载模式
通过串口推送轻应用到设备(本地更新)。
示例
-
$ amp seriallist
-
COM59
-
// usb口以实际情况为准
-
$ amp serialput ./app COM59 -t ymodem
-
device type: ymodem
-
generate app package
-
put complete!
具体示例演示请参考本地热更新
version - 查看版本号
-
// 版本号以实际为准
-
$ ./amp --version
-
1.0.3
help - 帮助
-
$ ./amp --help
-
Usage: amp [options]
-
AliOS Things Mini Program PC CLI tool
-
Options:
-
-V, --version output the version number
-
-h, --help output usage information
-
Commands:
-
login
<token> login
-
device list list bind devices
-
put
<filepath>
<deviceName> upload file to device
-
seriallist list serial port
-
serialput [options]
<filepath>
<port> put file to device via serial port
关于轻应用的文档请参考:https://help.aliyun.com/document_detail/174810.html
5、FAQ
Q1:Mac电脑上的权限问题
A:在运行amp命令时,Mac系统可能会出现应用信任问题,在运行命令时可能会报出如下错误。
点击取消,然后进入系统偏好设置,打开安全性隐私,选择仍然允许,如下图所示:
再次运行amp命令,出现如下提示,点击打开即可完成对amp的信任。
此时,系统又会弹出bindings.node无法验证的对话框,跟amp同样的问题,再次验证即可
点击取消,然后进入系统偏好设置,打开安全性隐私,选择仍然允许,如下图所示
此时命令行工具可能会报如下错误,不用理会。
-
Error: dlopen(/Users/ljh/Downloads/amp-macos/bindings.node, 1): no suitable image found. Did find:
-
/Users/ljh/Downloads/amp-macos/bindings.node: code signature in (/Users/ljh/Downloads/amp-macos/bindings.node) not valid for use in process using Library Validation: library load disallowed by system policy
-
at Object.Module._extensions..node (internal/modules/cjs/loader.js:805:18)
-
at Module.load (internal/modules/cjs/loader.js:651:32)
-
at tryModuleLoad (internal/modules/cjs/loader.js:591:12)
-
at Function.Module._load (internal/modules/cjs/loader.js:583:3)
-
at Module.require (internal/modules/cjs/loader.js:690:17)
-
at Module.require (pkg/prelude/bootstrap.js:1225:31)
-
at require (internal/modules/cjs/helpers.js:25:18)
-
at bindings (/snapshot/amp-cli/node_modules/bindings/bindings.js:112:48)
-
at Object.
<anonymous> (/snapshot/amp-cli/node_modules/@serialport/bindings/lib/darwin.js:2:36)
-
at Module._compile (pkg/prelude/bootstrap.js:1320:22)
再次运行amp命令,出现如下提示,点击打开即可完成对bindings.node的信任。
6、开发者技术支持
如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号
更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/
转载:https://blog.csdn.net/HaaSTech/article/details/112259380