簡介
輕應用:可執行在輕量級嵌入式裝置上的JavaScript應用(左圖)
輕應用框架:封裝了JavaScript引擎和API介面,用於支援輕應用開發的軟體框架(右圖)
特點
輕巧:基於事件驅動的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彩屏/數碼管/三色燈
加速度計/陀螺儀/電子羅盤/氣壓計/磁力計
溫溼度/顏色/光照強度
更多
檔案結構
一個最精簡的輕應用包由最少兩個檔案組成,必須放在專案資料夾的根目錄
開發流程
編寫輕應用程式碼
一鍵熱更新
輕應用 vs Native C/C++應用
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——————-