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

2020-12-12 騰訊網

簡介

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

相關焦點

  • Python在實時嵌入式系統開發中的主要應用
    在第一季開播時,這部劇裡就有非常炫酷的一幕——幾個室友湊在一起用電腦遠程控制了家裡的家居。提到的遠程控制都是指自己控制自己的設備,而不是別人的,請注意千萬不要非法操作。 樹莓派和Arduino應用Python的的例子實在是多,比如,利用Raspberry Pi的硬體和Python語言來完成一個機器人製作。實際上如今,Python可以直接進行單片機的開發了!
  • PCBA與嵌入式開發
    開發流程4.什麼是嵌入式系統(1) 嵌入式系統的基本介紹嵌入式系統應定義為:嵌入到對象體系中的專用計算機系統。嵌入性、專用性與計算機系統是嵌入式系統的三個基本要素。嵌入式開發就是指在嵌入式作業系統下進行開發,一般常用的系統有ucos,linux,android等。
  • 四種嵌入式系統開發中常用資料庫的簡單介紹
    打開APP 四種嵌入式系統開發中常用資料庫的簡單介紹 華清遠見 發表於 2020-04-01 11:28:02 一個在嵌入式中,我們可學習使用的資料庫有多種,每種資料庫都會呈現出不同的一面,那麼我們在嵌入式系統開發中可用到的資料庫都有哪幾種?給大家詳細介紹一下。 第一種:嵌入式開發的MySQL,這是一種關係型的資料庫管理系統,具有體積小、速度快、、成本低的特點,尤其是它的源碼開發特點,很多網站為了降低開發成本而選擇了MySQL資料庫,應用非常廣泛。
  • 學嵌入式開發難嗎_學好嵌入式開發需要多久
    嵌入式人才稀缺,身價自然就高,越有經驗價格就越高。其實嵌入式人才稀少,根本原因可能是大多數人無條件接觸,這需要相應的嵌入式開發板和軟體,另外需要有經驗的人進行指導開發流程。   與企業計算等應用軟體不同,嵌入式領域人才的工作強度通常低一些,但是具體的收入是不低的。
  • 用Zynq平臺開發嵌入式視覺應用,你就缺這樣一塊開發板!
    而如果想要Zynq-7000的應用真正落地,一個很重要的環節就是配套的開發工具。公司廣受歡迎的ZYBO系列FPGA SoC開發平臺的最新成員。 ZYBO Z7最大的特點就是能夠為Zynq提供豐富的多媒體和互連外設,幫助嵌入式視覺等領域的硬體設計師和軟體開發人員可以無縫集成FPGA和CPU功能。
  • 嵌入式開發中要用的三種程序架構~
    在嵌入式軟體開發,包括單片機開發中,軟體架構對於開發人員是一個必須認真考慮的問題。軟體架構對於系統整體的穩定性和可靠性是非常重要的,一個合適的軟體架構不僅結構清晰,並且便於開發。我相信在嵌入式或單片機軟體開發的初期大多數開發者採用的都是簡單的前後臺順序執行架構(我就是這樣的)。在嵌入式軟體開發中,程序架構主要分為三種,本篇文章將對這三種程序架構做出詳解。 可以說一個好的程序架構,是一個有經驗的工程師和一個初學者的分水嶺。
  • Java、JavaScript、PHP、Python是什麼?能開發什麼?
    如果我們想用電腦或者讓一個應用按照你的指令工作,這時就需要用程式語言來把指令翻譯成電腦能懂的,從而去完成指令。應用:Java主要用於桌面應用程式、Web應用程式、企業級開發、普通應用軟體、遊戲後臺、嵌入式系統應用程式等JavaScriptJavaScript一種直譯式腳本語言
  • Java、C/C++、JavaScript、PHP、Python,到底用來開發什麼?
    目前而言,C語言主要用來開發底層模塊(比如驅動,解碼器,算法實現),服務應用(比如web伺服器)和嵌入式應用(比如微波爐裡的程序。C++也可以做這些,不過由於C++的複雜性和標準問題,人們還是更願意使用C來做。C++更適合比較複雜但又特別需要高效率的設施,比如大型遊戲,一些基礎庫, 大型桌面應用。
  • 嵌入式LINUX的Qt開發入門教程
    它和ARM的GUI開發差別有多大?如果你還一頭霧水,如果你想步入Qt開發的大門,來,這篇文章將為你打開Qt新世界大門。 1你了解Qt嗎? Qt是一種基於C++的跨平臺圖形用戶界面應用程式開發框架。如何跨平臺?上到伺服器上位機,下到嵌入式GUI,上天入地無所不能。
  • [分享]Rhino使JavaScript應用程式更靈動
    導讀:腳本語言有良好的快速開發,高效率的執行,解釋而非編譯執行等優點,並且具有與其他語言編寫的組件之間強大的通信功能。JavaScript一直是腳本語言中的領頭羊,它是一門具有非常豐富特性的語言。除了瀏覽器之外,JavaScript也可以應用在其他場合,比如伺服器端程序中。
  • 9個最好用的JavaScript開發工具和代碼編輯器
    激烈的競爭以及蔓延到現在的集成開發環境。基於IDE是用於創建和部署應用程式的強大客戶端應用程式,下面我們要分享的就是對於很多網頁設計師和開發人員而言,最好的JavaScript 開發工具。若有不同見解,敬請不吝賜教。1)SpketSpket IDE是一款功能強大的工具包,支持JavaScript和XML開發。
  • 物聯網應用開發之C語言介紹
    物聯網是未來科技發展的趨勢之一,物聯網開發應用涉及到嵌入式開發、信息的傳輸與存取、大數據的分析、雲平臺的展現等諸多方面。在不同的過程,也可能用到不同的語言,比如C語言、Java、Python、GO、PHP等。由於在物聯網連接設備中,用於信息採集和傳輸的傳感器、電路板、物聯網IC晶片等,只擁有較小的內存和較低的處理能力,來存取相關數據。
  • 十年資深嵌入式大神:教你真正好學的嵌入式開發學習路線
    4、A53開發板介紹、設備使用、A53開發板與電腦通信、交叉編譯 GUI圖形界面開發 1、常用控制項——button、label、text edit等 2、常用布局方式——水平布局、垂直布局、固定布局、網格布局、相對布局等 3、常用事件及信號處理技術——信息回調、滑鼠、鍵盤事件等 4、時間編程、數據存儲、繪圖機制、定時器處理
  • 5種用於前端開發的JavaScript替代方案
    近年來,開發人員已經創建了JavaScript的替代品。JavaScript仍然是在瀏覽器中運行的唯一語言,因此這些新語言主要是編譯或轉換為JavaScript。CoffeeScript是第一個類似的腳本,但很快就被眾多競爭對手所超越,每個競爭對手都對JavaScript進行了改進。
  • PerfXLab CEO張先軼30頁PPT深入講解嵌入式AI開發板及嵌入式視覺應用開發【附PPT下載】
    3月17日,澎峰科技CEO張先軼在智東西公開課進行了嵌入式AI合輯第二講的直播講解,主題為《利用AI開發板實現嵌入式視覺應用開發》。在本次講解中,張先軼老師從嵌入式AI開發板的設計經驗、主流嵌入式AI開發板的差異入手,並結合澎峰科技Perf-RK3399開發板及PerfFace人臉識別算法,系統講解如何實現雙目人臉識別應用開發。
  • 「知識科普」嵌入式軟體開發是什麼?
    嵌入式開發就是指在嵌入式作業系統下進行開發,包括在系統化設計指導下的硬體、軟體以及綜合研發。硬體研發通常指在EDA軟體平臺上,用硬體描述語言VerilogHDL完成設計文件,然後由計算機自動地完成邏輯編譯、化簡、分割、綜合、優化、布局、布線和仿真,直至對於特定目標晶片的適配編譯、邏輯映射和編程下載等工作。嵌入式軟體研發就是在一定硬體條件下的系統化設計和軟體研發。主要使用的語言是C/C++、Ada。
  • 成都嵌入式軟體開發是什麼,怎麼理解?
    成都嵌入式軟體開發是什麼,怎麼理解?對於嵌入式開發軟體來說,可以把嵌入式軟體開發分成2個工作崗位。一個是應用開發,另一個是底層開發。以Linux系統為例,底層開發包括作業系統的開發和驅動的開發。對應嵌入式軟體的職位有:ARM工程師,QT工程師,Linux驅動工程師,Linux應用工程師,單片機工程師。硬體職位有EMC工程師,PCBLayout工程師。嵌入式軟體開發 嵌入式基礎知識:計算機體系結構,作業系統,微機原理,80%是驅動代碼在Linux內核代碼中。
  • 7大嵌入式開發技巧,你知道嗎?
    成為一個正式的嵌入式開發工程師。它是一個艱辛的過程,需要開發人員維護和管理系統的每個比特和字節。從規範完善的開發周期到嚴格執行和系統檢查,開發高可靠性嵌入式系統的技術有許多種。今天給大家介紹7個易操作且可以長久使用的技巧,它們對於確保系統更加可靠地運行並捕獲異常行為大有幫助。
  • 七天學會javascript第一天javascript介紹
    前幾周寫了幾篇關於入門php的文章,反響還不錯,之前簡單的提到了JavaScript,這周小編重點介紹JavaScript讓大家可以在一周時間內掌握這門前端語言的基本用法。javascript介紹javascript數據類型javascript運算符javascript對象javascript
  • JavaScript能應用在哪些方向?未來前景怎麼樣?
    JavaScript,一門全棧的語言,無論是前端,還是後臺,都能輕鬆的用它完成,隨處可見它的身影,那麼,它能做些什麼呢?下面和千鋒廣州小編一起來看看吧!網頁開發css,javascript,html。通過electron技術,Javascript開發在客戶端開發上也大放異彩,許許多多多編輯器都是採用的js開發的,例如我們耳熟能詳的atom,以及好用到哭的vscode,它們都是使用js開發出來的客戶端軟體,或許性能表現方面不如Java那般強勢,但是隨著個人電腦的性能的提升,哪點效率問題幾乎可以被我們忽視掉。