999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于HTML5+QNX的車載嵌入式應(yīng)用解決方案

2014-07-03 03:33:14張旭楊斌
關(guān)鍵詞:嵌入式系統(tǒng)

張旭,楊斌

(西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,成都610031)

引 言

近些年來,嵌入式實時系統(tǒng)被廣泛地使用,同時微處理器和圖形顯示技術(shù)也快速發(fā)展,車載嵌入式應(yīng)用在滿足實時性要求的同時,還必須具有良好的人機(jī)交互界面。QNX作為一款嵌入式實時操作系統(tǒng),具有獨特的微內(nèi)核架構(gòu)及基于消息進(jìn)程間通信的方式,使其在實時性和可靠性上得到保證[1]。同時,QNX又支持 HTML5框架的應(yīng)用開發(fā),HTML5作為HTML最新的標(biāo)準(zhǔn),目前已經(jīng)在各種移動智能終端設(shè)備上得到廣泛的應(yīng)用,被多種瀏覽器的新版本所支持。其離線緩存特性為HTML5嵌入式應(yīng)用提供了基礎(chǔ),同時實現(xiàn)了音視頻自由嵌入,使多媒體形式變得更加靈活。通過地理定位,用戶能夠隨時隨地地分享位置信息,Canvas繪圖功能有效提高了嵌入式平臺的繪圖能力,豐富的交互方式使用戶體驗度得到極大地提升[2]。本文采用OMAP4430作為硬件平臺,以QNX實時系統(tǒng)為軟件平臺,使用最新的QNX SDP 6.6、QNX SDK for Apps and Media 1.0及HTML5 SDK開發(fā)環(huán)境進(jìn)行車載應(yīng)用的開發(fā)。

1 相關(guān)技術(shù)簡介

1.1 QNX操作系統(tǒng)

QNX是一種采用微內(nèi)核結(jié)構(gòu)的嵌入式實時操作系統(tǒng),具有較高的實時性、可靠性及穩(wěn)定性,并且具有安全與穩(wěn)定雙重認(rèn)證。QNX的微內(nèi)核結(jié)構(gòu)有效地提高了系統(tǒng)的可靠性,系統(tǒng)只在內(nèi)核中實現(xiàn)定時器、調(diào)度、信號等基礎(chǔ)服務(wù),而文件系統(tǒng)、設(shè)備驅(qū)動、應(yīng)用程序、網(wǎng)絡(luò)協(xié)議棧等組件則在內(nèi)核外部的獨立空間運行,成為一個內(nèi)存受到保護(hù)的用戶空間進(jìn)程[3]。當(dāng)其中一項服務(wù)發(fā)生錯誤時,操作系統(tǒng)的運行及其他服務(wù)都不會中斷,而系統(tǒng)則會通過“軟件監(jiān)視器”對故障進(jìn)行監(jiān)測查找,并動態(tài)重啟故障服務(wù),無需重啟整個系統(tǒng)或干擾其他用戶。QNX還是一個符合POSIX標(biāo)準(zhǔn)、多用戶、多任務(wù)、分布式嵌入的操作系統(tǒng),提供了基于優(yōu)先級搶占、用戶可控制的調(diào)度方式,在實時性上具有上下文切換、中斷延時短、自身開銷小的特點,具有較高的實時性。QNX微內(nèi)核架構(gòu)如圖1所示。

1.2 永久性發(fā)布/訂閱

圖1 QNX微內(nèi)核構(gòu)架

永 久 性 發(fā) 布/訂 閱 (Persistent Publish/Subscribe,PPS)消息傳遞模型是在松耦合消息架構(gòu)中,一種針對發(fā)布者和訂閱者提供的基于對象的服務(wù),根據(jù)不同的服務(wù)要求,任何的PPS服務(wù)端可以是獨立的訂閱者或者發(fā)布者,也可以既是訂閱者、又是發(fā)布者。發(fā)布通過異步的方式進(jìn)行,PPS對象集中在PPS文件系統(tǒng)路徑各空間中,發(fā)布者可以修改對象及其屬性。當(dāng)發(fā)布者修改對象時,PPS服務(wù)器會向訂閱此對象的所有客戶端發(fā)出通知。每個PPS客戶端可以同時訂閱多個對象,而每個對象也可以同時具有多個發(fā)布者和訂閱者。因此,發(fā)布者可以通過相同的對象與此對象所有的訂閱者進(jìn)行信息交流,從而實現(xiàn)對不同對象屬性的應(yīng)用數(shù)據(jù)訪問。

PPS的POSIX文件訪問API主要有open()、read()、write()、select()等。PPS服務(wù)在默認(rèn)情況下是作為推送式發(fā)布系統(tǒng)運行的,即發(fā)布者推送數(shù)據(jù)到對象中,而訂閱者則根據(jù)通知讀取數(shù)據(jù),但此種方式無法完成一些變化較快的數(shù)據(jù)發(fā)布,為此QNX PPS提供了另外一種選項,訂閱者可以將PPS變成請求式的發(fā)布系統(tǒng)[4]。通過這種機(jī)制,訂閱者可以根據(jù)所需速度向發(fā)布者檢索數(shù)據(jù),實現(xiàn)按需發(fā)布。PPS消息傳遞模型如圖2所示。

圖2 PPS消息傳遞模型

1.3 HTML5

HTML5從廣義的角度上來看,實際上指的就是用于網(wǎng)絡(luò)應(yīng)用開發(fā)的一系列最新技術(shù)的集合,包括了HTML、CSS3、JaveSeript等一系列的技術(shù)組合。HTML5希望能夠盡量減少瀏覽器對Microsoft Silverlight、Oracle JavaFX與Adobe Flash等插件的需求,同時提供了更多標(biāo)準(zhǔn)集來有效增強(qiáng)網(wǎng)絡(luò)應(yīng)用[5]。

2 HTML5車載應(yīng)用解決方案

目前,在嵌入式設(shè)備上的應(yīng)用主要分為3種:原生應(yīng)用、Web應(yīng)用和移動Web應(yīng)用。本文將對這3種方式進(jìn)行對比分析。

原生應(yīng)用指的是使用特定的移動平臺開發(fā)語言進(jìn)行應(yīng)用開發(fā),如iPhone平臺使用Object-C,Android平臺使用Java,這樣做能夠充分利用平臺特性并直接調(diào)用系統(tǒng)的API,使性能和效率得到最優(yōu)化,但其缺點是針對不同操作系統(tǒng)的設(shè)備,要分別進(jìn)行開發(fā)、測試與優(yōu)化。

Web應(yīng)用通過標(biāo)準(zhǔn)的HTML5、JaveScript和CSS進(jìn)行應(yīng)用開發(fā)。不同的系統(tǒng)可以通過瀏覽器實現(xiàn)跨平臺訪問。目前,大部分的瀏覽器都能夠很好地支持HTML5。其缺點就是此類基于瀏覽器的應(yīng)用無法通過調(diào)用系統(tǒng)API來完成一些高級功能,不適合在高性能、高效率的場合使用。

移動Web應(yīng)用是使用原生方式和HTML5相結(jié)合的方式來達(dá)到最優(yōu)的效果[6]。此種方式先使用HTML5技術(shù)在開發(fā)框架上進(jìn)行代碼編寫,然后通過開發(fā)框架的封裝器將代碼打包成適合所有平臺的原生應(yīng)用。這種方式具有開發(fā)成本低、跨平臺的特點,更接近用戶的使用習(xí)慣,更容易被用戶所接受。

3種解決方案的執(zhí)行方式如圖3所示。

圖3 3種方案執(zhí)行方式

通過對以上3種方法的對比分析,結(jié)合實際的開發(fā)需要,本文將使用Apache Cordova框架及PPS消息模型實現(xiàn)QNX下車載移動Web應(yīng)用的開發(fā)。系統(tǒng)總體框架如圖4所示。

圖4 系統(tǒng)總體架構(gòu)

3 方案實現(xiàn)

QNX HTML5 SDK提供了Apacheco Cordova應(yīng)用程序框架來進(jìn)行移動Web應(yīng)用的開發(fā)與執(zhí)行,使用HT-ML5、JaveScript和CSS在PC機(jī)上進(jìn)行HTML5應(yīng)用程序的開發(fā),以及創(chuàng)建用來訪問目標(biāo)硬件API的JaveScript Plugins,此Plugins將通過QNX下PPS消息傳遞模型實現(xiàn)應(yīng)用目標(biāo)平臺的互動。最后,通過Apacheco Cordova打包成QNX下的原生應(yīng)用。本文將通過一個簡單車載儀表盤的實現(xiàn),來說明使用HTML5進(jìn)行車載應(yīng)用開發(fā)的過程。

3.1 創(chuàng)建汽車儀表盤的HMI

在HTML5標(biāo)準(zhǔn)中,新增加了Canvas元素,使用此元素能夠在頁面中對各種復(fù)雜圖形直接進(jìn)行制作。同時,圖形的繪制可以直接在客戶端進(jìn)行,不需要再占用服務(wù)器的資源,便能完成離線應(yīng)用的開發(fā)。通過Canvas元素繪制一個儀表盤,實現(xiàn)對儀表盤各種屬性的設(shè)置:

同時,車輛在行駛過程中,轉(zhuǎn)速和車速是實時變化的,如果儀表指針跟隨數(shù)據(jù)頻繁跳變,很容易引起駕駛員視覺疲勞,因此,在傳統(tǒng)的機(jī)械儀表中,指針轉(zhuǎn)動的角度是逐漸改變的,這樣更加符合駕駛員的習(xí)慣。數(shù)字虛擬指針也應(yīng)該遵循這一運動規(guī)律,當(dāng)?shù)玫睫D(zhuǎn)速和車速的數(shù)據(jù)后,指針要逐漸轉(zhuǎn)動到期望位置,實現(xiàn)緩動。緩動通過一個冪函數(shù)實現(xiàn):

3.2 創(chuàng)建訪問PPS API的Plugins

盡管HTML5提供了豐富的功能,但是其應(yīng)用無法直接訪問本地硬件設(shè)備。要在移動Web應(yīng)用框架下實現(xiàn)Web應(yīng)用與各種本地設(shè)備之間的交互,必須引用一個cordova.js文件,此文件提供API綁定。因此,必須創(chuàng)建一個用來訪問本地設(shè)備的插件,它是Web應(yīng)用與平臺原生層之間的橋梁,提供對本地API的調(diào)度機(jī)制。在QNX Neutrino系統(tǒng)下,所有服務(wù)都可以通過PPS消息模型對接口進(jìn)行訪問。下面將創(chuàng)建一個插件來實現(xiàn)PPS對象的創(chuàng)建、更新和讀取等功能。此插件必須包括如下幾個重要文件 :plugin.xml、plugin_name.js、index.js、client.js。

plugin.xml文件用來聲明插件的命名空間及定義插件的文件結(jié)構(gòu)。

plugin_name.js文件提供插件的核心功能,初始化定義函數(shù),創(chuàng)建PPS對象,事件處理函數(shù)和PPS返回數(shù)據(jù)。通過用于閱讀的(_readerPPS)句柄和用于寫入的(_writerPPS)句柄對PPS對象的數(shù)據(jù)進(jìn)行操作。_trigger Update用來處理事件,當(dāng)我們定義了新的數(shù)據(jù)時,對PPS對象進(jìn)行更新。

index.js文件用來定義觸發(fā)事件,并通過client.js文件傳遞給客戶端。client.js對外開放,通過cordova.exec()函數(shù)與index.js文件橋接,客戶端調(diào)用client.js的API,通過回調(diào)函數(shù)連接到觸發(fā)事件。下面為定義公共接口函數(shù)的部分代碼:

3.3 打包并運行測試

通過Apacheco Cordova開發(fā)框架將應(yīng)用打包成qnxcar.bar文件,在目標(biāo)平臺上安裝并啟動應(yīng)用。通過對目標(biāo)系統(tǒng)下PPS文件的數(shù)據(jù)進(jìn)行修改,可以順利實現(xiàn)應(yīng)用中汽車車速、轉(zhuǎn)速及油量儀表指針的動態(tài)變化。實現(xiàn)效果如圖5所示。

圖5 汽車儀表盤界面

結(jié) 語

對于車載應(yīng)用來說,需要具備較高實時性和可靠性,本文采用QNX操作系統(tǒng)完全符合這一要求;同時使用HTML5進(jìn)行嵌入式圖形界面的開發(fā),很好地解決了傳統(tǒng)嵌入式圖形界面開發(fā)中存在的問題,在正常完成車載應(yīng)用所需顯示任務(wù)的同時,還具備更佳的界面顯示效果;并且能夠有效地縮短開發(fā)周期,具有較強(qiáng)的可移植性。

[1]李英.基于QNX硬加速的軟控車載全虛擬儀表平臺[J].計算機(jī)技術(shù)與應(yīng)用,2012,38(10):129-132.

[2]黃永慧,陳程凱.HTML5在移動應(yīng)用開發(fā)上的應(yīng)用前景[J].計算機(jī)技術(shù)與發(fā)展,2013,7(23):207-210.

[3]石峰,胡大斌,胡錦輝.基于QNX實時操作系統(tǒng)的圖形控制界面設(shè)計[J].軟件天地,2009(18):8-10.

[4]QNX Persistent Publish/Subscribe Developer’s Guide[EB/OL].[2014-03].http://www.qnx.com.

[5]吳磊,張福慶.基于HTML canvas的WebGIS客戶端技術(shù)研究[J].地理信息世界,2009(3):78-82.

[6]Zibula Alexander,Majehrzak Tirn A.Cross-platforrn development using HTML5,jQury rnobile,And PhoneGap:Realizing a srnart rne-ter applieation[C]//8th Intemational Confereneeon Web Inforrnation Systerns and Teehnologies.Porto.Portugal:Springer Verlag,2013:16-33.

猜你喜歡
嵌入式系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發(fā)平臺
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
主站蜘蛛池模板: 在线观看热码亚洲av每日更新| 国产精品福利尤物youwu | 任我操在线视频| 日韩第一页在线| 日韩欧美国产另类| 女同国产精品一区二区| 久久免费看片| 久久夜夜视频| 国产美女免费| 99视频在线观看免费| 亚洲欧洲日产国产无码AV| 在线国产欧美| 97在线观看视频免费| 中国精品自拍| 特黄日韩免费一区二区三区| 国产成人精品优优av| 国产精品青青| 91在线丝袜| 特级精品毛片免费观看| 白浆免费视频国产精品视频| 亚洲人成色77777在线观看| 亚洲精品国产自在现线最新| 国产人妖视频一区在线观看| 日本免费高清一区| 国产成人AV男人的天堂| 午夜老司机永久免费看片| 欧美无遮挡国产欧美另类| 亚洲精品无码AⅤ片青青在线观看| 国产成人精品日本亚洲| 国产精品成人AⅤ在线一二三四 | 国产va欧美va在线观看| 日韩精品无码一级毛片免费| 亚洲 欧美 中文 AⅤ在线视频| 国产精品jizz在线观看软件| 99r在线精品视频在线播放| 欧美日韩国产成人在线观看| 国产99视频免费精品是看6| 亚洲中文字幕无码爆乳| 婷婷六月综合网| 国产精品网拍在线| 久青草免费在线视频| 男人天堂亚洲天堂| 91精品啪在线观看国产60岁| 欧美国产日本高清不卡| 欧美激情综合| 日本人真淫视频一区二区三区| 毛片免费高清免费| 国产精品大白天新婚身材| 91年精品国产福利线观看久久| 欧美日韩亚洲综合在线观看| 69免费在线视频| 国产在线观看第二页| 亚洲国产综合自在线另类| 成人无码区免费视频网站蜜臀| 成人在线视频一区| 91娇喘视频| 国产色婷婷| 99久久精品视香蕉蕉| 亚洲一区第一页| 亚洲综合第一区| 99国产精品免费观看视频| 国产一区二区三区日韩精品| 孕妇高潮太爽了在线观看免费| 青青操国产视频| 免费毛片a| 亚洲黄色高清| 干中文字幕| 亚卅精品无码久久毛片乌克兰 | 国产精品爆乳99久久| 国产无码制服丝袜| 国产精品冒白浆免费视频| 在线高清亚洲精品二区| 亚洲欧美日韩中文字幕在线| 韩日免费小视频| 亚洲欧美精品一中文字幕| 极品性荡少妇一区二区色欲| 婷婷亚洲最大| 免费av一区二区三区在线| 亚洲成a人片在线观看88| 蜜桃视频一区二区三区| 亚洲高清无码精品| 好紧太爽了视频免费无码|