基于嵌入式的Tilcon用戶圖形界面設(shè)計(jì)與開(kāi)發(fā)
VxWorks是高性能嵌入式實(shí)時(shí)操作系統(tǒng)。它以良好的可靠性和卓越的實(shí)時(shí)性被廣泛地應(yīng)用在通信、軍事、航空、航天等高精尖技術(shù)及實(shí)時(shí)性要求極高的領(lǐng)域。為滿足復(fù)雜圖形界面用戶需求,基于VxWorks嵌入式操作系統(tǒng)可以使用TiIcon圖形開(kāi)發(fā)工具,在Tornado環(huán)境下配置圖形開(kāi)發(fā)庫(kù)WindML,而Tilcon集成大量成熟控件,無(wú)需調(diào)用低級(jí)的圖形函數(shù)去畫(huà)線填充,用拖動(dòng)控件的方式構(gòu)造自己的圖形應(yīng)用,極大地簡(jiǎn)化了開(kāi)發(fā)過(guò)程。
基于上述各個(gè)軟件工具的開(kāi)發(fā)特點(diǎn),提出一種基于嵌入式圖形開(kāi)發(fā)的方案,該開(kāi)發(fā)方法適用于嵌入式系統(tǒng)WindRiver VxWorks,利用Tilcon與Tornado集成開(kāi)發(fā)環(huán)境之間的無(wú)縫聯(lián)接,實(shí)現(xiàn)了嵌入式實(shí)時(shí)操作系統(tǒng)下圖形的開(kāi)發(fā)。
1 VxWork,Tornado及Tilcon之間的層次關(guān)系
Tornado就是為開(kāi)發(fā)VxWorks應(yīng)用系統(tǒng)提供的集成開(kāi)發(fā)環(huán)境,Tornado中包含的工程管理軟件,可以將用戶自己的代碼與VxWorks的核心有效地組合起來(lái),可以按用戶的需要裁剪配置VxWorks內(nèi)核;VxSim原型仿真器可以讓程序員不用目標(biāo)機(jī)的情況下,直接開(kāi)發(fā)系統(tǒng)原型,做出系統(tǒng)評(píng)估;功能強(qiáng)大的CrossWind調(diào)試器可以提供任務(wù)級(jí)和系統(tǒng)級(jí)的調(diào)試模式,可以進(jìn)行多目標(biāo)機(jī)的聯(lián)調(diào);優(yōu)化分析工具可以幫助程序員從多種方式真正地觀察、跟蹤系統(tǒng)的運(yùn)行,排除錯(cuò)誤,優(yōu)化性能。
VxWorks在此指的是主機(jī)上的Tornado集成開(kāi)發(fā)環(huán)境編譯生成的目標(biāo)機(jī)上可執(zhí)行代碼IMAGE,即是可裁剪的VxWorks操作系統(tǒng)鏡像文件。它與DOS的*.EXE文件類似,可被靜態(tài)或動(dòng)態(tài)鏈接,在開(kāi)發(fā)階段可動(dòng)態(tài)地下載目標(biāo)文件,并與其他目標(biāo)文件動(dòng)態(tài)鏈接;在成品階段是采用靜態(tài)鏈接的,產(chǎn)品上電后立即與其他目標(biāo)文件鏈接。
Tornado是一套強(qiáng)大的圖形化嵌入式集成開(kāi)發(fā)環(huán)境,它的開(kāi)發(fā)系統(tǒng)包括三個(gè)高度集成的部分:一是,運(yùn)行在主機(jī)和目標(biāo)機(jī)上的功能強(qiáng)大的交叉開(kāi)發(fā)工具和實(shí)用程序;二是,運(yùn)行在目標(biāo)機(jī)上的高性能、可裁剪的實(shí)時(shí)操作系統(tǒng)VxWorks;三是,連接主機(jī)和目標(biāo)機(jī)的多種通信方式,如串行口、以太網(wǎng)、仿真器或其他通信手段相聯(lián)系。
Tilcon實(shí)時(shí)開(kāi)發(fā)環(huán)境是一種多平臺(tái)用戶界面開(kāi)發(fā)解決方案,可以用來(lái)開(kāi)發(fā)健壯的、高度交互性的用戶界面。Tilcon開(kāi)發(fā)系統(tǒng)包括三個(gè)基本組成部分:Tilcon圖形引擎,平臺(tái)無(wú)關(guān)的API和一個(gè)可視化圖形界面設(shè)計(jì)工具——Tilcon圖形編輯器。
在Tornado開(kāi)發(fā)環(huán)境下,首先根據(jù)自己的應(yīng)用和目標(biāo)機(jī)的需要,對(duì)VxWorks模塊進(jìn)行配置,包括:C++模塊、圖形模塊、目標(biāo)機(jī)硬件模塊、操作系統(tǒng)模塊等;其次選擇VxWorks鏡像類型,包括RAM,ROM,Rom-Compress等;再次構(gòu)造VxWorks鏡像,最后引導(dǎo)Vx-Works鏡像,生成目標(biāo)加上所需的VxWorks鏡像文件。在Tilcon開(kāi)發(fā)環(huán)境下實(shí)現(xiàn)圖形界面的設(shè)計(jì),包括拖拉所需的控件及各個(gè)控件的驅(qū)動(dòng)代碼,然后生成圖形庫(kù)文件;再根據(jù)Tornado與Tilcon之間的無(wú)縫連接關(guān)系,將Tilcon生成的圖形庫(kù)文件加載到Tornado環(huán)境中,從而實(shí)現(xiàn)嵌入式下的圖形開(kāi)發(fā)。它們的層次關(guān)系如圖1所示。
2 嵌入式圖形開(kāi)發(fā)步驟
2.1 Tilcon系統(tǒng)環(huán)境配置
在進(jìn)行圖形設(shè)計(jì)之前,將嵌入式系統(tǒng)開(kāi)發(fā)環(huán)境配置好,首先要在VxWorks實(shí)時(shí)操作系統(tǒng)下正確運(yùn)行Til-con矢量圖形引擎,必須在Image鏡像文件中加載幾種組件支持,即:組件C++Components所有子項(xiàng)、WindML媒體庫(kù)組件。其次,IDS應(yīng)用程序模型需要tlncore.o和tlnapi.o目標(biāo)靜態(tài)庫(kù)文件支持,它們可以通過(guò)Tilcon附帶提供的Scalable.exe可執(zhí)行文件來(lái)生成,在運(yùn)行Scalable.exe之前還需選擇好處理器類型以及VxWorks版本信息并保證Tilcon能準(zhǔn)確定位到目標(biāo)機(jī)文件信息。再次,在Tornado的Downloadable工程項(xiàng)目中配置編譯環(huán)境C/C++ Compile和Micros。最后,在此工程項(xiàng)目中添加應(yīng)用程序。
2.2 Tilcon運(yùn)行機(jī)理
首先調(diào)用TRT_Start應(yīng)用程序接口函數(shù),此時(shí)打開(kāi)VxWorks與TiIcon之間的信息通道,然后調(diào)用TRT_WindowLoad函數(shù)開(kāi)始Tilcon圖形界面窗口的初始化操作,并加載和顯示窗口文件ID;隨后調(diào)用TRT_WindowDisplay函數(shù),顯示剛才加載的圖形窗口及其相關(guān)的子窗口和對(duì)話框;接著進(jìn)入主框架循環(huán)區(qū)域,同時(shí)TRT_GetInput函數(shù)處于等待狀態(tài)并實(shí)時(shí)接收來(lái)自于Tilcon引擎所傳遞的界面操作事件,將其通過(guò)條件語(yǔ)句結(jié)構(gòu)分發(fā)給相應(yīng)的處理子函數(shù),即用戶的具體事件處理函數(shù)。如果接收到終止信息則調(diào)用TRT_WindowDelete清除圖形用戶界面用于釋放內(nèi)存,最后調(diào)用TRT_Exit函數(shù)完成退出操作。具體操作流程如圖2所示。
3 示例開(kāi)發(fā)
一個(gè)用Tileon工具開(kāi)發(fā)的智能水表軟件界面開(kāi)發(fā)實(shí)例。利用Tilcon在嵌人式VxWorks系統(tǒng)下,結(jié)合Tornado工具一起開(kāi)發(fā)的圖形軟件,按照嵌入式開(kāi)發(fā)流程圖的機(jī)理實(shí)現(xiàn)嵌入式系統(tǒng)下的智能水表圖形界面開(kāi)發(fā),基本框架程序如下,界面圖形如圖3所示。
該實(shí)例創(chuàng)建了一個(gè)水表窗口,有四個(gè)表盤和表盤控制操作按鈕及水表數(shù)據(jù)的顯示等控件。該軟件與智能水表電路板可以實(shí)現(xiàn)真正意義上的嵌入式圖形開(kāi)發(fā)和控制,具有實(shí)際應(yīng)用價(jià)值。[!--empirenews.page--]
Tileon用戶程序的基本框架及其主要代碼如下:
使用Tilcon設(shè)計(jì)好圖形界面并編寫完用戶程序之后,就可以進(jìn)行編譯并把程序和Tilcon API鏈接起來(lái),然后整個(gè)系統(tǒng)就可以運(yùn)行。
4 結(jié)語(yǔ)
Tilcon作為嵌入式圖形開(kāi)發(fā)工具,利用Tilcon提供的Tileon圖形引擎、平臺(tái)無(wú)關(guān)的API和一個(gè)可視化圖形界面設(shè)計(jì)工具——Tilcon圖形編輯器實(shí)現(xiàn)界面開(kāi)發(fā)與設(shè)計(jì)。這里介紹了基于Tilcon的嵌入式操作系統(tǒng)圖形界面開(kāi)發(fā)中的工具,探討了利用Tilcon設(shè)界面和開(kāi)發(fā)應(yīng)用程序的過(guò)程。通過(guò)示例說(shuō)明,Tilcon在功能性能方面都能滿足基于Vxworks的實(shí)時(shí)系統(tǒng)圖形界面開(kāi)發(fā)要求,是理想的嵌入式系統(tǒng)圖形界面快速開(kāi)發(fā)解決方案。