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