基于嵌入式Linux與QT的汽車(chē)虛擬儀表設計
3.2.2 后臺處理程序
后臺處理程序主要將系統下層采集的數據進(jìn)行分析處理,將有用的數據傳送至虛擬儀表面板顯示,實(shí)現虛擬儀表的動(dòng)態(tài)顯示,同時(shí)以多線(xiàn)程的方式不斷檢測汽車(chē)各項狀態(tài),當某項狀態(tài)出現異?;虼嬖谖kU時(shí)驅動(dòng)LCD和語(yǔ)音芯片向駕駛員報警,其中異常狀態(tài)有超速、存油量過(guò)低、電池電量過(guò)低等。下面以報警子程序為例講解后臺處理子程序。
報警子程序在后臺處理程序中新建一個(gè)線(xiàn)程,通過(guò)多線(xiàn)程的方式以輪詢(xún)的方式查詢(xún)各個(gè)傳感器的狀態(tài),當發(fā)現某個(gè)狀態(tài)存在危險時(shí),驅動(dòng)語(yǔ)音芯片發(fā)出相應的報警信息。其定義如下:

通過(guò)調用QObject對象的connect函數,將報警線(xiàn)程的sendData信號與主線(xiàn)程的槽函數Deal()關(guān)聯(lián),當報警偵聽(tīng)線(xiàn)程發(fā)射信號時(shí),主線(xiàn)程槽函數及時(shí)被調用,驅動(dòng)報警。
4 應用程序示例
將裁剪、編譯過(guò)的內核與制作的帶QT庫的文件系統燒寫(xiě)到開(kāi)發(fā)板。在開(kāi)發(fā)環(huán)境內交叉編譯編寫(xiě)的應用程序,得到可執行二進(jìn)制文件,將此文件移植到開(kāi)發(fā)板,即可實(shí)現應用程序的發(fā)布。重新開(kāi)機,運行應用程序即顯示虛擬儀表界面,如圖5所示。本文引用地址:http://dyxdggzs.com/article/149181.htm
通過(guò)汽車(chē)上的各種傳感器采集數據,通過(guò)控制器和高速CAN總線(xiàn)傳送到S3C6410硬件平臺解析,應用程序得到解析后的數據后,即可動(dòng)態(tài)的顯示當前車(chē)輛的各種狀態(tài)及報警情況。
5 結語(yǔ)
本文設計的汽車(chē)虛擬儀表,具有優(yōu)良的跨平臺性能;該設計方案使得儀表信息量增大,操作簡(jiǎn)單,易于維護,界面友好;采用開(kāi)放源碼設計,使得本系統開(kāi)發(fā)成本降低;使用雙緩沖技術(shù)消除了儀表顯示頁(yè)面的閃爍;采用多線(xiàn)程技術(shù),使處理、顯示與報警同時(shí)進(jìn)行,提高了系統的實(shí)時(shí)性與靈敏度;將具體的虛擬儀表對象定義為抽象類(lèi),增強了虛擬儀表的擴展性。經(jīng)實(shí)驗測試,本虛擬儀表系統的所有功能模塊均能正常運行,該系統的應用將對降低汽車(chē)的成本,縮短汽車(chē)儀表系統的研發(fā)周期,提供高友好度的人機界面具有重要的意義。
評論