亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2014-07-03 03:33:14張旭楊斌
        關(guān)鍵詞:發(fā)布者實時性插件

        張旭,楊斌

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

        引 言

        近些年來,嵌入式實時系統(tǒng)被廣泛地使用,同時微處理器和圖形顯示技術(shù)也快速發(fā)展,車載嵌入式應(yīng)用在滿足實時性要求的同時,還必須具有良好的人機交互界面。QNX作為一款嵌入式實時操作系統(tǒng),具有獨特的微內(nèi)核架構(gòu)及基于消息進程間通信的方式,使其在實時性和可靠性上得到保證[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)境進行車載應(yīng)用的開發(fā)。

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

        1.1 QNX操作系統(tǒng)

        QNX是一種采用微內(nèi)核結(jié)構(gòu)的嵌入式實時操作系統(tǒng),具有較高的實時性、可靠性及穩(wěn)定性,并且具有安全與穩(wě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)存受到保護的用戶空間進程[3]。當(dāng)其中一項服務(wù)發(fā)生錯誤時,操作系統(tǒng)的運行及其他服務(wù)都不會中斷,而系統(tǒng)則會通過“軟件監(jiā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ā)布通過異步的方式進行,PPS對象集中在PPS文件系統(tǒng)路徑各空間中,發(fā)布者可以修改對象及其屬性。當(dāng)發(fā)布者修改對象時,PPS服務(wù)器會向訂閱此對象的所有客戶端發(fā)出通知。每個PPS客戶端可以同時訂閱多個對象,而每個對象也可以同時具有多個發(fā)布者和訂閱者。因此,發(fā)布者可以通過相同的對象與此對象所有的訂閱者進行信息交流,從而實現(xiàn)對不同對象屬性的應(yīng)用數(shù)據(jù)訪問。

        PPS的POSIX文件訪問API主要有open()、read()、write()、select()等。PPS服務(wù)在默認情況下是作為推送式發(fā)布系統(tǒng)運行的,即發(fā)布者推送數(shù)據(jù)到對象中,而訂閱者則根據(jù)通知讀取數(shù)據(jù),但此種方式無法完成一些變化較快的數(shù)據(jù)發(fā)布,為此QNX PPS提供了另外一種選項,訂閱者可以將PPS變成請求式的發(fā)布系統(tǒng)[4]。通過這種機制,訂閱者可以根據(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)集來有效增強網(wǎng)絡(luò)應(yīng)用[5]。

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

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

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

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

        移動Web應(yīng)用是使用原生方式和HTML5相結(jié)合的方式來達到最優(yōu)的效果[6]。此種方式先使用HTML5技術(shù)在開發(fā)框架上進行代碼編寫,然后通過開發(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)用程序框架來進行移動Web應(yīng)用的開發(fā)與執(zhí)行,使用HT-ML5、JaveScript和CSS在PC機上進行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進行車載應(yīng)用開發(fā)的過程。

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

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

        同時,車輛在行駛過程中,轉(zhuǎn)速和車速是實時變化的,如果儀表指針跟隨數(shù)據(jù)頻繁跳變,很容易引起駕駛員視覺疲勞,因此,在傳統(tǒng)的機械儀表中,指針轉(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)度機制。在QNX Neutrino系統(tǒng)下,所有服務(wù)都可以通過PPS消息模型對接口進行訪問。下面將創(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ù)進行操作。_trigger Update用來處理事件,當(dāng)我們定義了新的數(shù)據(jù)時,對PPS對象進行更新。

        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ù)進行修改,可以順利實現(xiàn)應(yīng)用中汽車車速、轉(zhuǎn)速及油量儀表指針的動態(tài)變化。實現(xiàn)效果如圖5所示。

        圖5 汽車儀表盤界面

        結(jié) 語

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

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

        [2]黃永慧,陳程凱.HTML5在移動應(yīng)用開發(fā)上的應(yīng)用前景[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.

        猜你喜歡
        發(fā)布者實時性插件
        基于規(guī)則實時性的端云動態(tài)分配方法研究
        自編插件完善App Inventor與樂高機器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        基于NDN的高效發(fā)布/訂閱系統(tǒng)設(shè)計與實現(xiàn)
        基于虛擬局域網(wǎng)的智能變電站通信網(wǎng)絡(luò)實時性仿真
        航空電子AFDX與AVB傳輸實時性抗干擾對比
        廣告發(fā)布者的著作權(quán)審查義務(wù)問題研究
        加權(quán)映射匹配方法的站內(nèi)搜索引擎設(shè)計
        MapWindowGIS插件機制及應(yīng)用
        基于Revit MEP的插件制作探討
        一種車載Profibus總線系統(tǒng)的實時性分析
        国内精品久久久久久无码不卡| 丰满少妇被啪啪到高潮迷轩| 国产情侣自拍一区视频| 国产激情无码一区二区三区| 越猛烈欧美xx00动态图| 国产亚洲第一精品| 一个人看的在线播放视频| 亚洲熟妇av一区二区在线观看| 国产精品 无码专区| 久久夜色精品国产| 国产精品18久久久久网站| 亚洲人妖女同在线播放| 国产片在线一区二区三区| 国产成人av一区二区三区在线观看 | 在线观看国产视频你懂得| 国产办公室秘书无码精品99| 国产台湾无码av片在线观看| 亚洲熟妇av乱码在线观看 | 婷婷丁香开心五月综合| 亚洲夜夜性无码| 午夜精品久久久久久久久久久久| 99在线视频精品费观看视| 亚洲国产综合性感三级自拍| 精品女厕偷拍视频一区二区| 在线播放免费人成毛片乱码| 蜜臀久久99精品久久久久久小说| 91福利精品老师国产自产在线| 日韩精品一区二区在线视| 日本一区二区三区高清在线视频| 亚洲精品一品区二品区三品区 | 午夜不卡无码中文字幕影院| 男人添女人下部高潮全视频| 91美女片黄在线观看| 日韩亚洲在线一区二区| 丰满少妇按摩被扣逼高潮| 特级毛片a级毛片100免费播放| 天美麻花果冻视频大全英文版| 视频网站在线观看不卡| 中文字幕一区二区av| 亚洲欧美日韩中文字幕一区二区三区| 吸咬奶头狂揉60分钟视频|