汽車(chē)平臺中的HTML5硬件通信
摘要: QNX CAR 2應用平臺的總體架構簡(jiǎn)單且靈活。由于PPS消息傳遞模式采用松耦合架構,因此非常靈活。如果新增組件或設備,也只需要極少的工作,因為新的組件只需要發(fā)布數據,并訂閱相關(guān)的PPS對象。即使修改HMI技術(shù),也不會(huì )給底層組件帶來(lái)較大的影響。所有這些需求都可為相關(guān)的API帶來(lái)改變。
本文引用地址:http://dyxdggzs.com/article/135859.htm挑戰
利用HTML5開(kāi)發(fā)的人機界面(HMI)位于軟件開(kāi)發(fā)的上層環(huán)境中,但它們通常需要接入硬件。在汽車(chē)系統中,他們必須從CAN總線(xiàn)、GPIO引腳以及I2C和SPI器件等底層組件中取回信息。
試圖編寫(xiě)讓HMI與底層服務(wù)通信的界面是比較昂貴的辦法。更好的方法是使用無(wú)關(guān)HMI的異步通信模式,比如永久性發(fā)布/訂閱(PPS)。
永久性發(fā)布/訂閱
QNX的PPS部署是在松耦合消息架構中針對發(fā)布者和訂閱者提供的一種基于對象的服務(wù)。由于PPS利用標準的POSIX文件系統服務(wù),它可以使用任何編程語(yǔ)言或者應用環(huán)境。
任何 PPS 服務(wù)客戶(hù)端都可以是一個(gè)獨立的發(fā)布者、訂閱者,也可以既是發(fā)布者又是訂閱者。發(fā)布以異步方式進(jìn)行。發(fā)布者可修改對象及其屬性并寫(xiě)入文件系統中。當任何發(fā)布者更改對象時(shí),PPS 服務(wù)都會(huì )通知訂閱該對象的所有客戶(hù)端。PPS 客戶(hù)端能訂閱多個(gè)對象,PPS對象能有多個(gè)發(fā)布者和多個(gè)訂閱者。因此,能訪(fǎng)問(wèn)不同對象屬性應用數據的發(fā)布者可使用相同對象與該對象的所有訂閱者交流信息。
永久性是由系統設計人員定義的特性,并為個(gè)體目標屬性所設。當PPS運行時(shí),不但可以維護內存中的對象,而且可以按需要或在關(guān)機時(shí)將對象保存到永久性存儲體中。
PPS還能簡(jiǎn)化新組件的集成。由于發(fā)布者和訂閱者不必認識對方,因此開(kāi)發(fā)人員只需確定這些新組件的發(fā)布內容,以及他們需要其他 PPS客戶(hù)端得到的數據內容?! ?/p>

QNX CAR 2應用平臺
QNX CAR 2應用平臺為PPS提供了理想的實(shí)施環(huán)境。從用戶(hù)角度說(shuō),該平臺的關(guān)鍵功能包括如下。
● HMI:基于HTML5的HMI,支持簡(jiǎn)易標識、換膚和個(gè)性化。
● 信息和娛樂(lè ):多媒體(音頻和視頻);調幅、調頻和高清電臺;流網(wǎng)絡(luò )電臺;整合天氣預報;基于電話(huà)或家庭的媒體支持蘋(píng)果和DLNA。
● 汽車(chē)界面:氣候控制和診斷程序可在低油位、剎車(chē)問(wèn)題及其他情況下通知司機。
● 導航、免提電話(huà)、語(yǔ)音辨識和社交網(wǎng)絡(luò )。
QNX CAR 2平臺還支持將眾多應用和廣泛的底層軟件組件直接連接至硬件。
QNX CAR 2平臺的HMI使用HTML5,并采用包括Sencha和jQuery JavaScript 庫的JavaScript架構。該架構也支持如Adobe AIR和Elektrobit GUIDE HMI等其它易于集成HMI的技術(shù)。HTML5和Cascading Style Sheets(CSS3)的使用可以實(shí)現應用程序在車(chē)內系統以及移動(dòng)智能手機以及平板電腦之間來(lái)回切換?! ?/p>

PPS處理眾多系統組件和HMI之間的通信。由于PPS無(wú)關(guān)技術(shù)和語(yǔ)言,因此僅需要極少數的API來(lái)為HMI和組件提供界面:
● 一個(gè)PPS API處理HMI和PPS服務(wù)客戶(hù)端之間的通信;
● 一個(gè)SQL API與本地媒體庫接口。
另一套被稱(chēng)為UI內核的API,處理HTML5層和用戶(hù)界面核心組件之間的通信,以及介于這個(gè)核心組件和其它HMI技術(shù)之間的通信。
HMI和硬件之間的通信由JavaScriptwrapper類(lèi)和JNEXT處理。C/C++程序直接與車(chē)輛硬件接口,并對PPS對象進(jìn)行讀寫(xiě)。要訪(fǎng)問(wèn)為這些對象寫(xiě)入的信息,HMI中的JavaScript會(huì )呼叫一個(gè)wrapper類(lèi)來(lái)與JavaScript PPS類(lèi)通信。對于其它呼叫者來(lái)說(shuō),wrapper類(lèi)展現了自然的、基于類(lèi)別的JavaScript API。
c++相關(guān)文章:c++教程
數字通信相關(guān)文章:數字通信原理
通信相關(guān)文章:通信原理
評論