汽車(chē)平臺(tái)中的HTML5硬件通信
摘要: QNX CAR 2應(yīng)用平臺(tái)的總體架構(gòu)簡(jiǎn)單且靈活。由于PPS消息傳遞模式采用松耦合架構(gòu),因此非常靈活。如果新增組件或設(shè)備,也只需要極少的工作,因?yàn)樾碌慕M件只需要發(fā)布數(shù)據(jù),并訂閱相關(guān)的PPS對(duì)象。即使修改HMI技術(shù),也不會(huì)給底層組件帶來(lái)較大的影響。所有這些需求都可為相關(guān)的API帶來(lái)改變。
本文引用地址:http://www.ex-cimer.com/article/135859.htm挑戰(zhàn)
利用HTML5開(kāi)發(fā)的人機(jī)界面(HMI)位于軟件開(kāi)發(fā)的上層環(huán)境中,但它們通常需要接入硬件。在汽車(chē)系統(tǒng)中,他們必須從CAN總線(xiàn)、GPIO引腳以及I2C和SPI器件等底層組件中取回信息。
試圖編寫(xiě)讓HMI與底層服務(wù)通信的界面是比較昂貴的辦法。更好的方法是使用無(wú)關(guān)HMI的異步通信模式,比如永久性發(fā)布/訂閱(PPS)。
永久性發(fā)布/訂閱
QNX的PPS部署是在松耦合消息架構(gòu)中針對(duì)發(fā)布者和訂閱者提供的一種基于對(duì)象的服務(wù)。由于PPS利用標(biāo)準(zhǔn)的POSIX文件系統(tǒng)服務(wù),它可以使用任何編程語(yǔ)言或者應(yīng)用環(huán)境。
任何 PPS 服務(wù)客戶(hù)端都可以是一個(gè)獨(dú)立的發(fā)布者、訂閱者,也可以既是發(fā)布者又是訂閱者。發(fā)布以異步方式進(jìn)行。發(fā)布者可修改對(duì)象及其屬性并寫(xiě)入文件系統(tǒng)中。當(dāng)任何發(fā)布者更改對(duì)象時(shí),PPS 服務(wù)都會(huì)通知訂閱該對(duì)象的所有客戶(hù)端。PPS 客戶(hù)端能訂閱多個(gè)對(duì)象,PPS對(duì)象能有多個(gè)發(fā)布者和多個(gè)訂閱者。因此,能訪(fǎng)問(wèn)不同對(duì)象屬性應(yīng)用數(shù)據(jù)的發(fā)布者可使用相同對(duì)象與該對(duì)象的所有訂閱者交流信息。
永久性是由系統(tǒng)設(shè)計(jì)人員定義的特性,并為個(gè)體目標(biāo)屬性所設(shè)。當(dāng)PPS運(yùn)行時(shí),不但可以維護(hù)內(nèi)存中的對(duì)象,而且可以按需要或在關(guān)機(jī)時(shí)將對(duì)象保存到永久性存儲(chǔ)體中。
PPS還能簡(jiǎn)化新組件的集成。由于發(fā)布者和訂閱者不必認(rèn)識(shí)對(duì)方,因此開(kāi)發(fā)人員只需確定這些新組件的發(fā)布內(nèi)容,以及他們需要其他 PPS客戶(hù)端得到的數(shù)據(jù)內(nèi)容。
QNX CAR 2應(yīng)用平臺(tái)
QNX CAR 2應(yīng)用平臺(tái)為PPS提供了理想的實(shí)施環(huán)境。從用戶(hù)角度說(shuō),該平臺(tái)的關(guān)鍵功能包括如下。
● HMI:基于HTML5的HMI,支持簡(jiǎn)易標(biāo)識(shí)、換膚和個(gè)性化。
● 信息和娛樂(lè):多媒體(音頻和視頻);調(diào)幅、調(diào)頻和高清電臺(tái);流網(wǎng)絡(luò)電臺(tái);整合天氣預(yù)報(bào);基于電話(huà)或家庭的媒體支持蘋(píng)果和DLNA。
● 汽車(chē)界面:氣候控制和診斷程序可在低油位、剎車(chē)問(wèn)題及其他情況下通知司機(jī)。
● 導(dǎo)航、免提電話(huà)、語(yǔ)音辨識(shí)和社交網(wǎng)絡(luò)。
QNX CAR 2平臺(tái)還支持將眾多應(yīng)用和廣泛的底層軟件組件直接連接至硬件。
QNX CAR 2平臺(tái)的HMI使用HTML5,并采用包括Sencha和jQuery JavaScript 庫(kù)的JavaScript架構(gòu)。該架構(gòu)也支持如Adobe AIR和Elektrobit GUIDE HMI等其它易于集成HMI的技術(shù)。HTML5和Cascading Style Sheets(CSS3)的使用可以實(shí)現(xiàn)應(yīng)用程序在車(chē)內(nèi)系統(tǒng)以及移動(dòng)智能手機(jī)以及平板電腦之間來(lái)回切換。
PPS處理眾多系統(tǒng)組件和HMI之間的通信。由于PPS無(wú)關(guān)技術(shù)和語(yǔ)言,因此僅需要極少數(shù)的API來(lái)為HMI和組件提供界面:
● 一個(gè)PPS API處理HMI和PPS服務(wù)客戶(hù)端之間的通信;
● 一個(gè)SQL API與本地媒體庫(kù)接口。
另一套被稱(chēng)為UI內(nèi)核的API,處理HTML5層和用戶(hù)界面核心組件之間的通信,以及介于這個(gè)核心組件和其它HMI技術(shù)之間的通信。
HMI和硬件之間的通信由JavaScriptwrapper類(lèi)和JNEXT處理。C/C++程序直接與車(chē)輛硬件接口,并對(duì)PPS對(duì)象進(jìn)行讀寫(xiě)。要訪(fǎng)問(wèn)為這些對(duì)象寫(xiě)入的信息,HMI中的JavaScript會(huì)呼叫一個(gè)wrapper類(lèi)來(lái)與JavaScript PPS類(lèi)通信。對(duì)于其它呼叫者來(lái)說(shuō),wrapper類(lèi)展現(xiàn)了自然的、基于類(lèi)別的JavaScript API。
c++相關(guān)文章:c++教程
數(shù)字通信相關(guān)文章:數(shù)字通信原理
通信相關(guān)文章:通信原理
評(píng)論