輕應用命令行工具

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

命令行登錄

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 - 登錄

參數

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系統可能會出現應用信任問題,在運行命令時可能會報出如下錯誤。

image.png

點擊取消,然後進入系統偏好設置,打開安全性隱私,選擇仍然允許,如下圖所示:

image.png

再次運行amp命令,出現如下提示,點擊打開即可完成對amp的信任。

image.png

此時,系統又會彈出bindings.node無法驗證的對話框,跟amp同樣的問題,再次驗證即可

image.png

點擊取消,然後進入系統偏好設置,打開安全性隱私,選擇仍然允許,如下圖所示

image.png

此時命令行工具可能會報如下錯誤,不用理會。

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的信任。

image.png

 

6、開發者技術支持

如需更多技術支持,可加入釘釘開發者羣

更多技術與解決方案介紹,請訪問阿里雲AIoT首頁https://iot.aliyun.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章