基于嵌入式Linux與QT的汽車虛擬儀表設(shè)計(jì)
3.2.2 后臺(tái)處理程序
后臺(tái)處理程序主要將系統(tǒng)下層采集的數(shù)據(jù)進(jìn)行分析處理,將有用的數(shù)據(jù)傳送至虛擬儀表面板顯示,實(shí)現(xiàn)虛擬儀表的動(dòng)態(tài)顯示,同時(shí)以多線程的方式不斷檢測汽車各項(xiàng)狀態(tài),當(dāng)某項(xiàng)狀態(tài)出現(xiàn)異?;虼嬖谖kU(xiǎn)時(shí)驅(qū)動(dòng)LCD和語音芯片向駕駛員報(bào)警,其中異常狀態(tài)有超速、存油量過低、電池電量過低等。下面以報(bào)警子程序?yàn)槔v解后臺(tái)處理子程序。
報(bào)警子程序在后臺(tái)處理程序中新建一個(gè)線程,通過多線程的方式以輪詢的方式查詢各個(gè)傳感器的狀態(tài),當(dāng)發(fā)現(xiàn)某個(gè)狀態(tài)存在危險(xiǎn)時(shí),驅(qū)動(dòng)語音芯片發(fā)出相應(yīng)的報(bào)警信息。其定義如下:
通過調(diào)用QObject對(duì)象的connect函數(shù),將報(bào)警線程的sendData信號(hào)與主線程的槽函數(shù)Deal()關(guān)聯(lián),當(dāng)報(bào)警偵聽線程發(fā)射信號(hào)時(shí),主線程槽函數(shù)及時(shí)被調(diào)用,驅(qū)動(dòng)報(bào)警。
4 應(yīng)用程序示例
將裁剪、編譯過的內(nèi)核與制作的帶QT庫的文件系統(tǒng)燒寫到開發(fā)板。在開發(fā)環(huán)境內(nèi)交叉編譯編寫的應(yīng)用程序,得到可執(zhí)行二進(jìn)制文件,將此文件移植到開發(fā)板,即可實(shí)現(xiàn)應(yīng)用程序的發(fā)布。重新開機(jī),運(yùn)行應(yīng)用程序即顯示虛擬儀表界面,如圖5所示。本文引用地址:http://cafeforensic.com/article/149181.htm
通過汽車上的各種傳感器采集數(shù)據(jù),通過控制器和高速CAN總線傳送到S3C6410硬件平臺(tái)解析,應(yīng)用程序得到解析后的數(shù)據(jù)后,即可動(dòng)態(tài)的顯示當(dāng)前車輛的各種狀態(tài)及報(bào)警情況。
5 結(jié)語
本文設(shè)計(jì)的汽車虛擬儀表,具有優(yōu)良的跨平臺(tái)性能;該設(shè)計(jì)方案使得儀表信息量增大,操作簡單,易于維護(hù),界面友好;采用開放源碼設(shè)計(jì),使得本系統(tǒng)開發(fā)成本降低;使用雙緩沖技術(shù)消除了儀表顯示頁面的閃爍;采用多線程技術(shù),使處理、顯示與報(bào)警同時(shí)進(jìn)行,提高了系統(tǒng)的實(shí)時(shí)性與靈敏度;將具體的虛擬儀表對(duì)象定義為抽象類,增強(qiáng)了虛擬儀表的擴(kuò)展性。經(jīng)實(shí)驗(yàn)測試,本虛擬儀表系統(tǒng)的所有功能模塊均能正常運(yùn)行,該系統(tǒng)的應(yīng)用將對(duì)降低汽車的成本,縮短汽車儀表系統(tǒng)的研發(fā)周期,提供高友好度的人機(jī)界面具有重要的意義。
評(píng)論