基于嵌入式Linux與QT的汽車虛擬儀表設(shè)計
3 虛擬儀表軟件設(shè)計
本系統(tǒng)采用嵌入式Linux作為操作系統(tǒng),在Linux平臺下編寫虛擬儀表的驅(qū)動程序和應(yīng)用程序,采用QT/embedded設(shè)計虛擬儀表軟面板。應(yīng)用程序的主要功能有,當接收到各個經(jīng)轉(zhuǎn)換處理的傳感器采集到的信號后,將其有用的數(shù)據(jù)提取并加以存儲,然后調(diào)用儀表顯示程序,將需要顯示的內(nèi)容顯示到不同的虛擬儀表盤中,同時并行判斷各項參數(shù)是否正常,若出現(xiàn)異常則調(diào)用語音報警程序和顯示程序提示報警。虛擬儀表軟件結(jié)構(gòu)圖如圖3所示。虛擬儀表軟件開發(fā)主要有2個內(nèi)容:開發(fā)環(huán)境的搭建、虛擬儀表應(yīng)用程序的設(shè)計。本文引用地址:http://butianyuan.cn/article/149181.htm
3.1 開發(fā)環(huán)境的搭建
為了開發(fā)滿足功能的應(yīng)用程序,本文采用的軟件開發(fā)環(huán)境是Vmware WorkStation 7虛擬機和Fedora 13操作系統(tǒng),在此環(huán)境中安裝交叉編譯器AlRM-linux-gcc 4.5.1,用來完成包含相關(guān)驅(qū)動程序的虛擬儀表系統(tǒng)內(nèi)核、QT庫和應(yīng)用程序的編譯;編譯安裝QT/Embedded庫,用來支持虛擬儀表人機交互界面程序的開發(fā)并生成虛擬儀表系統(tǒng)中需要的QT庫文件;編譯Tslib觸摸屏庫,為虛擬儀表系統(tǒng)添加觸摸屏支持;在Fedora13系統(tǒng)中安裝QT Creator軟件,用于完成虛擬儀表系統(tǒng)應(yīng)用程序的開發(fā);移植嵌入式設(shè)備的系統(tǒng)引導(dǎo)程序U-boot;編寫硬件平臺相關(guān)驅(qū)動,然后裁剪編譯Linux2.6.10內(nèi)核并在其中加載已編譯的相關(guān)驅(qū)動;制作硬件平臺需要的根文件系統(tǒng),在其中移植已配置、編譯過的tslib庫和QT/Embedded庫。
3.2 應(yīng)用程序開發(fā)
本虛擬儀表系統(tǒng)的的應(yīng)用程序基于QT/Embedded平臺,使用QT的輕量級集成開發(fā)環(huán)境QT Creator完成開發(fā),最后在已搭建的開發(fā)環(huán)境中編譯生成可執(zhí)行二進制文件,并將其移植到硬件平臺中的文件系統(tǒng)中進行測試。
虛擬儀表系統(tǒng)應(yīng)用程序的主要工作流程如圖4所示,在系統(tǒng)上電后,應(yīng)用程序開始運行,要實現(xiàn)汽車虛擬儀表系統(tǒng)的功能,應(yīng)用程序需要完成虛擬儀表面板和后臺處理程序的開發(fā):
3.2.1 虛擬儀表面板的繪制
虛擬儀表面板主要將汽車的一些基本狀態(tài)在LCD上通過表盤和數(shù)字直觀、動態(tài)的顯示出來,本設(shè)計中采用速度、油量、電池電量、時間日期、安全帶、安全氣囊、行駛里程等狀態(tài)。
為了提高本虛擬儀表的可擴展性和可維護性,在本設(shè)計中,為每種具體的虛擬儀表對象定義一個抽象類。下面即以儀表盤類(QMeter)為例介紹本系統(tǒng)中虛擬儀器面板的繪制。
在需要顯示的各種狀態(tài)中,速度和油量通常以儀表盤形式顯示,虛擬儀表模塊中的虛擬儀表盤采用QT的二維圖形引擎的基礎(chǔ)類QPainter開發(fā)。QPainter具有豐富的圖形圖像繪制函數(shù),并支持反走樣、漸變填充、像素混合、線性變換等特性,利用這些函數(shù)完成儀表盤的繪制。
評論