1、前言
這里主要介紹輕應用的命令列工具,即用于輕應用的輔助開發,以簡單的命令列方式運行在Mac或Windows電腦上的工具,命令列工具主要是用來推送設備應用腳本到設備端,并擁有一套完整的命令,可以完成設備的應用熱更新、運維服務、日志服務等,
2、工具包
獲取
- Mac版
- Windows版
介紹
命令列工具檔案目錄如下:
├── amp # 命令列工具
├── app # 應用腳本
│ ├── app.json
│ └── app.js
└── bindings.node # 本地更新庫
打開app.js,這里就運行了我們的業務應用代碼,默認列印系統資訊,
3、準備作業
如果想了解工具中的本地熱更新命令,需要通過MicroUSB資料線連接開發板與PC,具體請參考以下鏈接中的設備連接介紹,
- HaaS100
- HaaS600 Kit
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://www.uj5u.com/qita/245802.html
標籤:其他
