簡介
輕應用:可運行在輕量級嵌入式設備上的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-----------