輕應用介紹-用JavaScript進行嵌入式開發

簡介

輕應用:可執行在輕量級嵌入式裝置上的JavaScript應用(左圖)

輕應用框架:封裝了JavaScript引擎和API介面,用於支援輕應用開發的軟體框架(右圖)

輕應用介紹-用JavaScript進行嵌入式開發

特點

輕巧:基於事件驅動的JavaScript輕應用短小精悍,免編譯、免燒錄

快速:結合阿里雲物聯網平臺,一鍵完成應用程式碼熱更新

簡單:JavaScript API 簡潔易懂,大幅降低IoT嵌入式裝置應用開發門檻

相容:輕鬆移植JavaScript生態軟體包,與各類雲端業務渾然一體

執行原理

豐富的元件支援

基礎元件

檔案系統 FS

系統資訊 SYS

鍵值對儲存 KV

電源管理 LPM

硬體I/O UART/GPIO/I2C/SPI

模數/數模轉換 ADC/DAC

脈寬調製 PWM

定時器 TIMER

實時時鐘 RTC

看門狗 WDG

網路協議 UDP/TCP/HTTP/MQTT

高階元件

物聯網平臺連線元件

支付元件

語音元件

感測器服務元件

定位服務元件

外設驅動庫

編碼電機/步進電機/伺服電機/繼電器

麥克風/語音錄放模組/揚聲器

PS2搖桿/電容觸控/按鍵

TFT彩屏/數碼管/三色燈

加速度計/陀螺儀/電子羅盤/氣壓計/磁力計

溫溼度/顏色/光照強度

更多

檔案結構

一個最精簡的輕應用包由最少兩個檔案組成,必須放在專案資料夾的根目錄

開發流程

編寫輕應用程式碼

一鍵熱更新

輕應用介紹-用JavaScript進行嵌入式開發

輕應用 vs Native C/C++應用

輕應用介紹-用JavaScript進行嵌入式開發

app。js - 輕應用入口檔案

示例程式碼

輕應用入口

App(Object options)

用於註冊輕應用,接受一個 Object 作為屬性,用來配置輕應用的生命週期等。 必須在 app。js 中呼叫,必須呼叫且只能呼叫一次。

其中options屬性有:

生命週期

onLaunch()

輕應用啟動時的hook函式。

onError()

輕應用出現錯誤的hook函式。

onExit()

輕應用退出時的hook函式。

app。json - 全域性配置檔案

用於對輕應用進行全域性配置,設定頁面檔案的路徑、硬體I/O口的配置等。

以下是一個基本配置示例:

完整配置如下:

在JS應用程式碼中,透過 可以獲取到 中的內容。

version 配置項

輕應用版本號。

io 配置項

不同的模組/晶片,各個埠和管腳的功能對映可能是不一樣的。

IoT輕應用的配置檔案 中,可將硬體(晶片)的物理埠對映成為統一的應用層邏輯埠。

這樣對映的好處是在替換不同的硬體或者晶片時,只需要替換 而不用修改應用程式或裝置程式,從而便於應用的跨平臺執行。

IO配置項中有 等硬體描述概念,對於每一款硬體(通常是晶片/模組/開發板)該配置檔案均可能不同。

語法描述格式定義如下:

解釋:

:定義物件,後面大括號裡面則描述了該物件的型別。定義後可以在 JS 中直接使用。

: 描述了該物件的型別,可以是IoT輕應用支援的硬體擴充套件型別,如 GPIO,I2C,ADC 等。

:描述了該物件的埠,這裡需要根據實際硬體連線及晶片的PIN 腳對映關係來填寫。

: 是 GPIO 型別特有的,用於描述 GPIO 輸出輸出及上拉下拉,其他如 ADC 型別則有 取樣頻率這種型別描述。

外設 type 說明

io配置項的 用於描述該物件是什麼硬體埠型別,而每一種也擁有不同的屬性欄位,如 GPIO 與 ADC 的屬性欄位是不一樣的。

GPIO

示例

UART

示例

I2C

示例

SPI

示例

ADC

示例

DAC

示例

PWM

示例

TIMER

示例

debugLevel

配置除錯日誌等級,分為如下幾個等級,預設為ERROR

repl(互動式解析器)

配置互動式解析器開關,預設開啟。

說明

示例

至此,輕應用概覽、執行週期,詳細配置與操作就介紹完了。各位開發者們可以在HaaS開發板上進行實際開發操作了。

——————END——————-

TAG: 應用示例硬體元件GPIO