開發與維運

Javascript輕應用命令行工具

1、前言

這裡主要介紹輕應用的命令行工具,即用於輕應用的輔助開發,以簡單的命令行方式運行在Mac或Windows電腦上的工具。命令行工具主要是用來推送設備應用腳本到設備端,並擁有一套完整的命令,可以完成設備的應用熱更新、運維服務、日誌服務等。

 

2、工具包

獲取

介紹

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

  1. ├── amp # 命令行工具
  2. ├── app # 應用腳本
  3. │   ├── app.json
  4. │   └── app.js
  5. └── 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包請通過公測申請獲取。

示例

  1. $ amp login b8805cfefe8b****f069e638a0162d0e
  2. login success

device list - 列出已綁定設備

參數

amp device list

說明

amp login <your-token>

成功後,使用該命令可列出您賬號下已綁定的設備名稱,建議使用IMEI號作為設備名稱

<device-name>

示例

  1. $ amp device list
  2. Your bound devices:
  3. 8675*******3456
  4. 8675*******4321
  5. 3522*******7456

put - 在線熱更新

參數

amp put <app-dir> <device-name>
  • <app-dir>

    指當前目錄下app目錄,包含板級配置文件和JS腳本文件。

  • device_name

    指綁定列表中的設備名稱

說明

注意:使用前,請參考

在線熱更新

確定模組固件版本、設備綁定及設備聯網等是否已完成。

通過該命令可遠程推送輕應用到指定的設備,其中

app-dir

<device-name>

以實際為準。

該命令會消耗網絡流量,推送應用到蜂窩模組時請按需使用。

示例

  1. $ amp device list
  2. Your bound devices:
  3. 8675*******3456
  4. $ ./amp put ./app 8675*******3456
  5. device:8675*******3456 ONLINE.
  6. generate app package
  7. push app package SUCCESS

若出現OFFLINE,可能由於設備尚未聯網成功

具體示例演示請參考在線熱更新

 

seriallist - 列出電腦串口

參數

amp seriallist

說明

注意:使用前,請參考

本地熱更新

確定硬件連接

列出電腦上的所有串口,確定

本地熱更新

的串口號

<serial-port>

示例

  • Mac
  1. $ amp seriallist
  2. /dev/tty.usbserial-AK08LNMO
  3. /dev/tty.usbserial-AK08LNMM
  • Windows
  1. $ amp seriallist
  2. COM59
  3. COM60

serialput - 本地熱更新

參數

amp serialput <app-dir> <serial-port>

amp serialput <app-dir> <serial-port> -t <type>

type:

  • ymodem(默認)

說明

注意:使用前,請參考

本地熱更新

確定硬件連接、模組固件和是否進入下載模式

通過串口推送輕應用到設備(本地更新)。

示例

  1. $ amp seriallist
  2. COM59
  3. // usb口以實際情況為準
  4. $ amp serialput ./app COM59 -t ymodem
  5. device type: ymodem
  6. generate app package
  7. put complete!

具體示例演示請參考本地熱更新

version - 查看版本號

  1. // 版本號以實際為準
  2. $ ./amp --version
  3. 1.0.3

help - 幫助

  1. $ ./amp --help
  2. Usage: amp [options]
  3. AliOS Things Mini Program PC CLI tool
  4. Options:
  5. -V, --version output the version number
  6. -h, --help output usage information
  7. Commands:
  8. login <token> login
  9. device list list bind devices
  10. put <filepath> <deviceName> upload file to device
  11. seriallist list serial port
  12. 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

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

  1. Error: dlopen(/Users/ljh/Downloads/amp-macos/bindings.node, 1): no suitable image found. Did find:
  2. /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
  3. at Object.Module._extensions..node (internal/modules/cjs/loader.js:805:18)
  4. at Module.load (internal/modules/cjs/loader.js:651:32)
  5. at tryModuleLoad (internal/modules/cjs/loader.js:591:12)
  6. at Function.Module._load (internal/modules/cjs/loader.js:583:3)
  7. at Module.require (internal/modules/cjs/loader.js:690:17)
  8. at Module.require (pkg/prelude/bootstrap.js:1225:31)
  9. at require (internal/modules/cjs/helpers.js:25:18)
  10. at bindings (/snapshot/amp-cli/node_modules/bindings/bindings.js:112:48)
  11. at Object.<anonymous> (/snapshot/amp-cli/node_modules/@serialport/bindings/lib/darwin.js:2:36)
  12. at Module._compile (pkg/prelude/bootstrap.js:1320:22)

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

image.png

 

6、開發者技術支持

如需更多技術支持,可加入釘釘開發者群,或者關注微信公眾號

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

Leave a Reply

Your email address will not be published. Required fields are marked *