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

2020-12-27 騰訊網

簡介

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

相關焦點

  • 聯智通達ARM嵌入式工控電腦作業系統介紹
    聯智通達ARM嵌入式工控電腦作業系統介首先要介紹的就是Linux,Linux是一種免費、開源的工控電腦作業系統,因此其支持軟體多,可用資源豐富。並且和往常一樣,為了滿足桌面用戶群的需要,添加了一整套新的音頻和多媒體驅動程序,Linux 內核使用了由 Ingo Molnar 開發的新的調度器算法,稱為O(1)算法,它在高負載的情況下執行得極其出色,並且當有很多處理器時也可以很好地擴展;內核搶佔補丁在2.5系列中就已經被打上,接下來在2.6中也會打。這將顯著地降低用戶交互式應用程式、多媒體應用程式等類似應用程式的延遲。
  • 嵌入式開發,RTOS比裸奔的優勢在哪?
    最後會產生這樣一種感覺,一個簡簡單單的 delay 還得考慮餵狗功能,裸機開發時操的心太多了,自然無法應用在大型項目中。由於作業系統提供了統一的抽象接口層,方便了可重用組件的積累,提高開發效率作業系統其實是一群軟體大牛們智慧的結晶,他們站在應用軟體、底層驅動的開發角度,對很多常見的軟體功能進行了封裝、抽象,比如:信號量、事件通知、郵箱、環形緩衝區
  • 嵌入式底層開發的軟體框架簡述
    簡單的順序執行程序:這類寫法是大多數人使用的方法,不需用思考程序的具體架構,直接按照執行順序編寫應用程式即可。2.前後臺執行程序:在順序執行的情況上增添中斷前臺處理機制,配置順序執行的後臺大循環程序,組合成可以實時響應的程序。3.
  • 使用Python開發鴻蒙應用!
    對於大型嵌入式企業,開發環境一般分為兩個部分:產品代碼位於代碼伺服器上,每個員工遠程登錄代碼伺服器之後創建自己的代碼分支,之後就可以進行代碼編輯和編譯了。大家通過類比可以發現,其實目前的鴻蒙設備開發方式就是企業級嵌入式產品的開發方式,只不過進行了縮減而已!代碼編輯和代碼編譯在「不同的機器上」,兩臺機器通過網絡互聯,交叉編譯得到的二進位文件通過代碼編輯所在的環境燒寫到設備。那麼,這有什麼問題嗎?傳統的嵌入式開發方式對於程序老手來說,沒有任何問題,用起來遊刃有餘。
  • JavaScript開發重型跨平臺應用以及架構
    當然遊戲也算,可是我相信做出1000萬人每天都在用的產品是大家的夢想,起碼能吹一輩子吧工具類的東西其實是最難做的,比如vsCode , Excel ,PhotoShop這些。這也是為什麼這麼多年出現成功的工具類產品這麼少。這裡不得不提到vsCode,它其實就是用ELectron開發,基於TypeScript。
  • 基於ARM嵌入式開發平臺和GPRS無線傳輸網絡的遠程圖像監控設計方案
    本系統是基於ARM嵌入式開發平臺和GPRS無線傳輸網絡的遠程圖像監控設計方案,系統應用了嵌入式技術和無線行動網路技術的融合,實現了遠程實時視頻圖像的監控,可以被廣泛地應用在不同的場合監控,例如居家辦公場所、能源系統、工業領域等。 1 系統總體設計 遠程視頻圖像監控系統分為嵌入式視頻採集終端和監控中心伺服器。
  • 嵌入式硬體通信接口協議-UART(四)設計起止式的應用層協議
    UART的時序本身就是起止式協議,具體可參考《嵌入式硬體通信接口協議-UART(一)協議基礎》這一篇內容的介紹。事實上串口實現了數據通信過程中的傳輸層,而應用層就系統功能的業務邏輯,應用層控制需要收發的各種數據內容。數據解析的前提是通信雙方都是用統一的數據幀格式,因此在這裡將設計一個簡單的起止式的數據幀格式,保證設備之間進行可靠的通信。
  • 使用electron+vue開發一個跨平臺todolist(便籤)桌面應用
    點擊上方藍字"小黑在哪裡"關注我吧# 1最近一直在使用electron開發桌面應用
  • 齊聚深圳、嵌入式專家研討人工智慧時代發展機遇
    用AI改變視界  北京航空航天大學教授 康一梅  康一梅教授稱AI為高勢能技術,其將引發遠超網際網路帶來的變革,因為該技術能夠帶來新應用場景的覆蓋領域及該技術在這些新應用場景中的不可替代性。  智能系統需要良好的優化系統設計體系  華東師範大學教授 陳儀香  陳儀香教授介紹,無處不在的智能系統是在硬體基礎上融入了人工智慧,讓機器通過一定的方式進行判斷、決策和控制,是嵌入式技術、軟體工程、人工智慧等知識的深入融合系統。
  • STM32開發環境(工具)之Keil MDK 介紹
    STM32微處理器基於ARM核,所以很多基於ARM嵌入式開發環境都可用於STM32開發平臺。開發工具都可用於STM32開發。選擇合適的開發環境可以加快開發進度,節省開發成本。
  • 如何使用JavaScript開發AR(增強現實)移動應用 (一)
    下面這個視頻是Jerry的同事,SAP成都研究院數字創新空間的開發工程師Leo Wang用React-Native加上ViroReact的組合做的一個小例子:React-Native在國內早已不是一個新技術了。
  • 基於嵌入式技術的LED顯示屏控制系統淺析
    ,設計用於滿足某些專用性要求比較高的工程應用場合,這些要求可以體現在對嵌入式系統的成本、尺寸以及系統功耗等方面的特定需求,並且為了達成這種需求可以對組成嵌入式系統的軟體和硬體部分進行裁剪。針對嵌入式系統的工程項目開發不僅需要專業的嵌入式系統開發工具和集成開發環境IDE,例如IAR等,並且還需要在主機與嵌入式系統開發板之間進行交叉編譯過程。
  • WinCE下基於ArcGIS Mobile實現的嵌入式地圖
    很多場合的嵌入式應用,需要涉及地圖操作。目前嵌入式GIS產品國外主要有ESRI和MapInfo,國內主要有超圖、靈圖等[1]。 本文介紹在某基於WinCE 6.0作業系統的車載信息終端上嵌入式地圖的實現方法。
  • 25 歲的 JavaScript 都經歷了什麼?
    JavaScript 最初開發僅用了 10 天時間,便迅速成為最受歡迎的程式語言之一,如今全球有數百萬的開發人員每天都在使用它。2020 年是它的 25 周年紀念日——對於這個已經成為最受歡迎的程式語言之一,這無疑是一偉大裡程碑。
  • 基於嵌入式的室內靜態場景實時重建系統
    一、背景介紹(產品化及未來市場潛力描述)隨著AI技術的蓬勃發展以及新型設備的不斷湧現,三維重建成為計算機圖形學領域的熱點研究課題。主要任務是基於各種傳感器釆集的數據,採用多視圖幾何、概率統計學和優化理論等數學工具,對現實物理世界進行三維建模,建立起現實世界和虛擬世界的橋梁。
  • 氚雲輕應用,業務輕鬆辦——運營分公司舉辦2020年軟體 (氚雲輕應用...
    為檢驗氚雲輕應用一年來在南寧軌道交通運營分公司的實踐成果,加大氚雲線上應用的推廣程度,助力公司無紙化辦公落實,近日,由運營分公司軟體創新工作室組織的2020年軟體 (氚雲輕應用)創新大賽在屯裡綜合樓101會議室正式舉行。
  • 做嵌入式編程,為什麼用的是C語言而不是C++呢?
    1.前言 幾十年來,嵌入式軟體工程師們一直在爭論是否應該使用C++替代C語言進行開發工作。根據2019年IEEE和github的市場調查顯示,微控制器製造商提供的軟體大部分都是由C語言編寫。
  • 嵌入式BI應用案例:金麒麟數據可視化分析平臺(集成ERP、MES)
    嵌入式BI應用案例:金麒麟數據可視化分析平臺(集成ERP、MES) 嵌入式BI應用案例:金麒麟數據可視化分析平臺(集成ERP、MES) 2020-12-02 15:16:45  來源:網際網路
  • 基於和欣嵌入式作業系統實現的一個構件化的網絡協議棧設計淺析
    要實現嵌入式設備的網絡化,需要實現TCP/IP網絡協議棧,但由於Internet上各種通信協議對計算機存儲器、運算速度等的要求比較高,使得嵌入式系統協議棧的開發實現並不順利。 目前有兩個關鍵因素影響網絡協議棧的開發,一是性能和效率,二是開發調試方便。傳統的作業系統一般只能顧及其中的一個方面。
  • 和我一起探索嵌入式
    不知不覺入行嵌入式已經若干年了,嵌入式這個行業是我始終熱愛的事業並且為之不知疲倦地學習和工作。我的工作崗位是蘇州某公司的嵌入式部門主管,本身是硬體工程師,但是一直都是軟硬體工作都做,甚至軟體比硬體做的都多。嵌入式的書面定義為:「嵌入式系統是以應用為中心、以計算機技術為基礎,軟、硬體可裁剪,適應於應用系統對功能、可靠性、成本、體積、功耗等方面有特殊要求的專用計算機系統」。