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

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

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

張旭,楊斌

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

引 言

近些年來,嵌入式實(shí)時系統(tǒng)被廣泛地使用,同時微處理器和圖形顯示技術(shù)也快速發(fā)展,車載嵌入式應(yīng)用在滿足實(shí)時性要求的同時,還必須具有良好的人機(jī)交互界面。QNX作為一款嵌入式實(shí)時操作系統(tǒng),具有獨(dú)特的微內(nèi)核架構(gòu)及基于消息進(jìn)程間通信的方式,使其在實(shí)時性和可靠性上得到保證[1]。同時,QNX又支持 HTML5框架的應(yīng)用開發(fā),HTML5作為HTML最新的標(biāo)準(zhǔn),目前已經(jīng)在各種移動智能終端設(shè)備上得到廣泛的應(yīng)用,被多種瀏覽器的新版本所支持。其離線緩存特性為HTML5嵌入式應(yīng)用提供了基礎(chǔ),同時實(shí)現(xiàn)了音視頻自由嵌入,使多媒體形式變得更加靈活。通過地理定位,用戶能夠隨時隨地地分享位置信息,Canvas繪圖功能有效提高了嵌入式平臺的繪圖能力,豐富的交互方式使用戶體驗(yàn)度得到極大地提升[2]。本文采用OMAP4430作為硬件平臺,以QNX實(shí)時系統(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)的嵌入式實(shí)時操作系統(tǒng),具有較高的實(shí)時性、可靠性及穩(wěn)定性,并且具有安全與穩(wěn)定雙重認(rèn)證。QNX的微內(nèi)核結(jié)構(gòu)有效地提高了系統(tǒng)的可靠性,系統(tǒng)只在內(nèi)核中實(shí)現(xiàn)定時器、調(diào)度、信號等基礎(chǔ)服務(wù),而文件系統(tǒng)、設(shè)備驅(qū)動、應(yīng)用程序、網(wǎng)絡(luò)協(xié)議棧等組件則在內(nèi)核外部的獨(dú)立空間運(yùn)行,成為一個內(nèi)存受到保護(hù)的用戶空間進(jìn)程[3]。當(dāng)其中一項(xiàng)服務(wù)發(fā)生錯誤時,操作系統(tǒng)的運(yùn)行及其他服務(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)度方式,在實(shí)時性上具有上下文切換、中斷延時短、自身開銷小的特點(diǎn),具有較高的實(shí)時性。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ù)端可以是獨(dú)立的訂閱者或者發(fā)布者,也可以既是訂閱者、又是發(fā)布者。發(fā)布通過異步的方式進(jìn)行,PPS對象集中在PPS文件系統(tǒng)路徑各空間中,發(fā)布者可以修改對象及其屬性。當(dāng)發(fā)布者修改對象時,PPS服務(wù)器會向訂閱此對象的所有客戶端發(fā)出通知。每個PPS客戶端可以同時訂閱多個對象,而每個對象也可以同時具有多個發(fā)布者和訂閱者。因此,發(fā)布者可以通過相同的對象與此對象所有的訂閱者進(jìn)行信息交流,從而實(shí)現(xiàn)對不同對象屬性的應(yīng)用數(shù)據(jù)訪問。

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

圖2 PPS消息傳遞模型

1.3 HTML5

HTML5從廣義的角度上來看,實(shí)際上指的就是用于網(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)化,但其缺點(diǎn)是針對不同操作系統(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)可以通過瀏覽器實(shí)現(xiàn)跨平臺訪問。目前,大部分的瀏覽器都能夠很好地支持HTML5。其缺點(diǎn)就是此類基于瀏覽器的應(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ā)成本低、跨平臺的特點(diǎn),更接近用戶的使用習(xí)慣,更容易被用戶所接受。

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

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

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

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

3 方案實(shí)現(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消息傳遞模型實(shí)現(xiàn)應(yīng)用目標(biāo)平臺的互動。最后,通過Apacheco Cordova打包成QNX下的原生應(yīng)用。本文將通過一個簡單車載儀表盤的實(shí)現(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元素繪制一個儀表盤,實(shí)現(xiàn)對儀表盤各種屬性的設(shè)置:

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

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

盡管HTML5提供了豐富的功能,但是其應(yīng)用無法直接訪問本地硬件設(shè)備。要在移動Web應(yīng)用框架下實(shí)現(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)建一個插件來實(shí)現(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 打包并運(yùn)行測試

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

圖5 汽車儀表盤界面

結(jié) 語

對于車載應(yīng)用來說,需要具備較高實(shí)時性和可靠性,本文采用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實(shí)時操作系統(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)用
主站蜘蛛池模板: 国产精品美女自慰喷水| 天天干天天色综合网| 试看120秒男女啪啪免费| 尤物成AV人片在线观看| 亚洲日本www| 无码一区二区波多野结衣播放搜索| 2020亚洲精品无码| 无码乱人伦一区二区亚洲一| 久草热视频在线| 亚洲综合一区国产精品| 人妻精品久久无码区| 国产精品天干天干在线观看| 国语少妇高潮| 成人福利一区二区视频在线| 国产成人精品一区二区免费看京| 天天视频在线91频| 在线另类稀缺国产呦| 久久久久久久蜜桃| 找国产毛片看| 久久永久视频| 日韩a级片视频| 欧美成人日韩| 欧美日韩成人在线观看| 国产精品网拍在线| 欧美午夜视频在线| 色综合久久无码网| 在线精品亚洲一区二区古装| 亚洲欧美极品| 国产精品久久久久久影院| 久久精品一卡日本电影| 亚洲色婷婷一区二区| 18禁黄无遮挡免费动漫网站| 免费看av在线网站网址| 国产午夜人做人免费视频| 青草精品视频| 71pao成人国产永久免费视频| 国产精品第页| 色视频国产| 国产福利不卡视频| 四虎精品免费久久| 试看120秒男女啪啪免费| 伊人久综合| 国内黄色精品| 国产农村精品一级毛片视频| 日韩免费视频播播| 香蕉蕉亚亚洲aav综合| 欧美精品成人| 99视频国产精品| 国产女人在线| 久草视频中文| 在线精品自拍| 日韩欧美国产三级| 国产最新无码专区在线| 精品一区二区三区波多野结衣| 亚洲欧美成aⅴ人在线观看| 搞黄网站免费观看| 91视频日本| 在线观看国产精品第一区免费| 欧美一级在线看| 免费看美女毛片| 亚洲一区精品视频在线| 伊人久久婷婷五月综合97色| 婷婷伊人久久| 欧美三级自拍| 一级毛片中文字幕| 无码中文字幕精品推荐| 中文字幕伦视频| 人人澡人人爽欧美一区| 欧美a在线| 九九九精品成人免费视频7| 久久中文字幕2021精品| 综合久久久久久久综合网| 国产精品香蕉| 国产成人综合亚洲网址| 欧美国产在线看| 性喷潮久久久久久久久| 亚洲国产无码有码| 国产视频只有无码精品| 欧美日韩国产精品va| 无码aaa视频| 国内精自视频品线一二区| 白浆免费视频国产精品视频|