基于嵌入式Linux與QT的汽車虛擬儀表設計
3.2.2 后臺處理程序
后臺處理程序主要將系統下層采集的數據進行分析處理,將有用的數據傳送至虛擬儀表面板顯示,實現虛擬儀表的動態顯示,同時以多線程的方式不斷檢測汽車各項狀態,當某項狀態出現異常或存在危險時驅動LCD和語音芯片向駕駛員報警,其中異常狀態有超速、存油量過低、電池電量過低等。下面以報警子程序為例講解后臺處理子程序。
報警子程序在后臺處理程序中新建一個線程,通過多線程的方式以輪詢的方式查詢各個傳感器的狀態,當發現某個狀態存在危險時,驅動語音芯片發出相應的報警信息。其定義如下:

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