1、前言
這裡主要介紹輕應用的命令行工具,即用於輕應用的輔助開發,以簡單的命令行方式運行在Mac或Windows電腦上的工具。命令行工具主要是用來推送設備應用腳本到設備端,並擁有一套完整的命令,可以完成設備的應用熱更新、運維服務、日誌服務等。
2、工具包
獲取
介紹
命令行工具文件目錄如下:
-
├── amp # 命令行工具
-
├── app # 應用腳本
-
│ ├── app.json
-
│ └── app.js
-
└── bindings.node # 本地更新庫
打開
,這裡就運行了我們的業務應用代碼,默認打印系統信息。
3、準備工作
如果想了解工具中的本地熱更新命令,需要通過MicroUSB數據線連接開發板與PC,具體請參考以下鏈接中的設備連接介紹。
4、命令行
4.1、命令名稱
IoT輕應用
可以對設備進行熱更新操作,支持
和
功能。
Mac版需要設置執行權限:
chmod +x ./amp。
Mac上執行amp命令時會遇到權限問題,詳見第6部分。
4.2、命令總覽
功能 |
命令 |
描述 |
示例 |
|
login |
命令行登錄 |
amp login <your-token>
|
||
device list |
列出綁定的設備 |
amp device list
|
||
put |
推送應用代碼到設備端 (在線熱更新) |
amp put <app-dir> [device-name]
|
||
seriallist |
列出電腦的所有串口 |
amp seriallist
|
||
serialput |
推送應用代碼到設備端 (本地熱更新) |
amp serialput <app-dir> <port> -t <type>
|
||
- |
version |
版本號 |
amp --version
|
|
- |
help |
幫助 |
amp --help
|
4.3、命令詳解
login - 登錄
參數
說明
使用在線熱更新前,需要獲取
,該命令用於登錄和綁定用戶的唯一token,僅需執行一次。
使用本地熱更新時,無需綁定用戶token。
token及其SDK包請通過公測申請獲取。
示例
-
$ amp login b8805cfefe8b****f069e638a0162d0e
-
login success
device list - 列出已綁定設備
參數
說明
在
成功後,使用該命令可列出您賬號下已綁定的設備名稱,建議使用IMEI號作為設備名稱
。
示例
-
$ amp device list
-
Your bound devices:
-
8675*******3456
-
8675*******4321
-
3522*******7456
put - 在線熱更新
參數
-
<app-dir>
指當前目錄下app目錄,包含板級配置文件和JS腳本文件。
-
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 - 列出電腦串口
參數
說明
注意:使用前,請參考
本地熱更新確定硬件連接
列出電腦上的所有串口,確定
的串口號
示例
- Mac
-
$ amp seriallist
-
/dev/tty.usbserial-AK08LNMO
-
/dev/tty.usbserial-AK08LNMM
- Windows
-
$ amp seriallist
-
COM59
-
COM60
serialput - 本地熱更新
參數
或
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/