?

基于Tilcon的VxWorks圖形界面開發技術

2011-06-28 03:04張士福
艦船電子對抗 2011年4期
關鍵詞:控件引擎嵌入式

張士福

(船舶重工集團公司723所,揚州 225001)

0 引 言

VxWorks是由美國風河公司(Wind River Systems Inc.)開發的一套微內核、高可靠、可裁減的嵌入式實時操作系統,它以高效的實時任務調度、中斷管理等優點成為航空、航天、醫療、通信等領域首選的操作系統。VxWorks開發之初并沒有提出很好的、完整的圖形顯示方案,隨著該操作系統應用領域的不斷擴展,風河公司改善了圖形產品開發中存在的不足,提出了基于嵌入式系統的顯示技術風河多媒體庫(WindML)。WindML為VxWorks操作系統提供對基本圖形、圖像和音頻的支持,是開發標準用戶設備驅動程序的框架,它為用戶提供了進行圖形界面開發的應用程序接口(API)。利用WindML提供的API進行圖形界面開發對開發人員要求特別高,需要編寫大量的代碼,存在開發周期長、界面程序可移植性差等特點。針對嵌入式圖形界面開發面臨的困難,出現了一些第3方的圖形開發支持軟件,典型的有Tilcon、Zinc等,用戶利用這些軟件工具可以實現“拖-放”式的圖形界面設計,把用戶從大量編碼的圖形界面開發方式中解放出來,大大簡化了嵌入式系統的圖形界面開發過程。

本文重點探討Wind River VxWorks 5.5下利用Tilcon進行窗口圖形界面開發的方法。

1 Tilcon的組成及原理

1.1 Tilcon簡介

Tilcon是加拿大 Tilcon軟件公司推出的多平臺圖形用戶界面(GUI)開發工具,其界面開發包(IDS)集成開發環境能夠在 VxWorks、Linux、WinCE、QNX等嵌入式實時操作系統下設計出健壯且交互性極強的“人-機-環”應用軟件。

Tilcon集成了大量的成熟控件,用戶無需調用C語言uglLine()等繪圖函數以畫線填充的方式來完成GUI設計,極大地簡化了用戶開發過程,所開發的程序不需要修改代碼就可以從一個操作系統移植到另一個操作系統上。

Tilcon可以與Tornado之間形成無縫鏈接,圖1描繪出兩者之間的交叉關系。該工具具有功能齊全、界面美觀、使用方便的特點,開發的圖形應用程序具有可裁剪性強、運行效率高、顯示效果好等優點。目前,Tilcon已廣泛應用于航空航天、裝甲車、潛艇等應用領域,得到了用戶的一致好評,成為Wind River開發環境首推的圖形界面開發工具,在嵌入式領域有著廣泛的應用前景。

圖1 Tilcon與VxWorks的集成開發環境Tornado的關系

1.2 Tilcon組成

Tilcon圖形界面開發系統主要由三部分組件組成,即嵌入式圖形界面引擎(EVE)、應用程序接口API和可視化界面設計工具,其組成及工作原理如圖2所示。

圖2 Tilcon組成及工作原理

嵌入式圖形界面引擎是一個事件驅動的微內核,獨立于用戶應用程序,其主要任務是驅動、管理所有的用戶界面顯示及人機交互事件。用戶應用程序僅需使用內核提供的實時接口函數,這種圖形交互界面和用戶程序相互獨立的結構提高了用戶界面程序的可修改性、可移植性和可維護性。

應用程序接口是一組便于理解、使用的接口函數,獨立于嵌入式平臺,為用戶應用程序提供操作訪問圖形界面引擎的接口,支持控件對象的動態創建、對象屬性修改等操作。

可視化界面設計工具為用戶提供便捷的界面設計環境,用戶只需對控件對象面板的控件進行簡單的“拖-放”式操作就可以構建復雜的應用圖形界面,所有控件的顯示風格和功能可以通過對象屬性頁進行方便的修改。

1.3 Tilcon工作原理

首先,用戶使用Tilcon提供的可視化界面設計工具構建圖形界面,其以二進制形式保存到與平臺無關的TWD文件中,用戶程序使用Tilcon API函數命令圖形引擎裝載TWD文件,并控制圖形引擎完成圖形界面的顯示。當一個GUI事件產生時,圖形引擎接收到事件后,根據事件類型決定直接處理或通知用戶程序處理該事件。另一方面,當用戶程序發送API命令給Tilcon圖形引擎的命令隊列,用戶程序不需要等待這些異步的命令處理完畢就可以直接返回到自己的主要任務中,圖形引擎將負責完成這些命令的解釋處理。

2 基于Tilcon的圖形界面開發方法

利用 Tilcon進行圖形界面開發應用時,需對WindML與Tilcon進行相應的配置、編譯和連接,并完成 VxWorks操作系統配置?;?Tilcon的VxWorks圖形界面及應用程序開發的主要流程如圖3所示。

圖3 基于Tilcon的VxWorks圖形界面及應用程序開發流程

2.1 WindML配置和編譯

WindML是Wind River公司推出的多媒體支持庫,是Tilcon在VxWorks系統上工作運行的基礎。在使用Tilcon之前必須先配置編譯WindML。

進入 Tornado集成開發環境后,依照 Tools/WindML/Configure步驟打開相應配置對話框,結合嵌入式系統的具體硬件構成,按圖4流程配置對應選項,處理完成后點擊“Clean”清除已有編譯文件,再單擊“Build”按鈕重新生成所須OBJ文件。若這些操作還不能滿足使用要求,還可以用命令行方式配置并編譯WindM L媒體庫,如果沒有錯誤提示信息,則會在Tornado項目管理區VxWorks標簽頁中出現WindML組件。為檢驗WindML媒體庫配置、編譯是否成功,按如下路徑關系$(WIND_BASE) argetsrcuglexample定位到ugldemo.c文件,并在 Tornado環境下建立Downloadable工程,經編譯下載運行后,如果能在目標機上出現歡迎界面,則表示WindML操作成功。

圖4 WindML配置編譯流程

2.2 Tilcon裁減和配置

Tilcon提供了圖形引擎定制工具Scalable,利用該工具用戶可以靈活選擇工程應用中必需的組件,除去不必要的組件,并鏈接生成較小的Tilcon內核,減小Tilcon應用程序對系統控件的需求。

Tilcon定制的主要過程包括:首先將C:TilconTSPVXWORKS-x86 argetlib下的 obj-PENTIUMgnuTugcl文件夾復制到C:Tornado2.2 argetlib路徑下。然后啟動配置工具Scalable,選擇VxWorks版本信息和處理器類型,并在控件選項中選擇所需要的控件,工具會自動生成相應的Makefile,點擊創建按鈕后將鏈接objPENTIUMgnuTugcl文件夾中的組件生成支持IDS應用程序模型的目標靜態庫文件tlncore.o和tlnapi.o。

2.3 VxWorks配置和編譯

配置和編譯好WindML和Tilcon后,根據工程應用需要在VxWorks工程中對VxWorks進行配置,需將C++Components、WindML媒體庫組件下的2D Graphics和Complete 2D Library子項以及POSIX Components組件下的 POSIX Clocks、POSIX Message Queues、POSIX Semaphores 和POSIX Timers子項包含進VxWorks工程中,編譯生成VxWorks鏡像。

然后,配置Downloadable工程編譯環境。在C/C++compiler標簽頁,具體選項如下:-g –mcpu=pentium–march=Pentium–nostdlib–fno-builtin–fno-defer-pop–I–IC:/Tornado2.2/target/h–IC:/tilcon/include–DCPU=PENTIUM –DTOOL_FAMILY=gnu–DTOOL=gnu –DCC_TRT_VXWORKS,這其中務必去掉-ansic選項,因為VxWorks可能會包含某些特殊字符信息,如果按-ansic語法進行編譯就會出現錯誤提示信息。另外,在Macros標簽頁下的PRJ_LIBS宏選項中,將目標靜態庫文件tlncore.o和tlnapi.o連接到工程中。

最后,在Bootable工程項目 usrAppInit.c文件中指定 Tilcon所使用的版本序列號,即:putenv(“ Tilcon_5_4=/tgtsvr”)。

2.4 圖形界面設計與編輯

Tilcon窗口的開發主要通過Tilcon圖形編輯器來實現,Tilcon圖形編輯器是一組集成的設計工具,用來輔助用戶完成圖形界面的設計。在使用Tilcon圖形編輯器構建圖形界面的屏幕顯示時,以“拖-放”的方式從工具欄添加用戶界面對象,并打開屬性框編輯對象的屬性,通過屬性項的設定調整對象的所有外觀效果、行為、初始狀態、文本方式、顯示焦點、菜單、鼠標指針和快捷鍵等。編輯完成之后,設計的圖形界面保存為TWD文件,用戶可以點擊測試按鍵來檢驗整個圖形界面的運行效果。另外,Tilcon可以使用用戶指定的模擬數據在測試狀態下驅動各個對象。

2.5 圖形界面應用程序開發

使用Tilcon IDS設計好圖形界面后,便可開展相應的圖形界面應用程序編寫工作,基于Tilcon的應用程序執行流程如圖5所示。

圖5 基于Tilcon的應用程序執行流程

2.5.1 初始化內核

Tilcon圖形引擎是一個小型的事件驅動圖形處理內核,它的任務是更新屏幕顯示。它是一個與用戶程序相互獨立的進程,負責處理所有的屏幕顯示和用戶輸入事件。在圖形界面程序啟動之前,用戶程序必須先初始化Tilcon圖形引擎內核,設定操作系統類型Os_Env、對象空間名AppName、Licence文件路徑等參數。使用 TRT_Start函數啟動一個Tilcon圖形引擎并與此引擎進行通信。正確完成初始化后,應用程序可以顯示用戶設計的界面,與用戶進行交互。

2.5.2 加載資源文件

執行完必要的初始化操作后,用戶程序就可以使用Tilcon API函數命令圖形引擎裝載并顯示用戶界面窗口或動態創建用戶界面。首先指定窗口資源文件所在的路徑,然后通過調用 TRT_Window-Load函數把圖形界面資源文件加載到圖形引擎中,這樣用戶程序就可以通過Tilcon API和Tilcon圖形引擎進行通信來控制圖形界面的顯示和刷新。

2.5.3 窗口顯示管理

窗口管理主要指對已加載到圖形引擎中的窗口進行顯示、隱藏、刪除等操作管理。Tilcon提供了一系列對窗口管理的API函數,調用T RT_Window-Display函數可實現把用戶定義的窗口顯示到屏幕上的操作。當不再需要某個窗口的顯示時,可通過調用T RT_Window Hide函數把窗口隱藏起來,或調用T RT_WindowDelete函數直接把窗口刪除,刪除窗口的同時,所有窗口上的控件也會被一起清除。

2.5.4 窗口事件處理

基于Tilcon圖形界面用戶程序是通過一個主事件循環來處理相應窗口事件,實現人機交互功能。在主循環中,T RT_GetInput函數等待直到圖形引擎報告一個事件,調用窗口事件處理函數進行處理。

用戶可以配置TRT_GetInput函數接收來自其它進程的消息,或設置為等待某種事件信號量的到來,這使得用戶程序可以和其它進程進行通信。當某個特定的事件出現時,用戶程序會中止循環并調用T RT_Exit函數通知圖形引擎結束進程。

2.5.5 應用示例

用Tilcon圖形開發工具在VxWorks操作系統下,結合T ornado工具開發的一個示波器面板如圖6所示。模擬測試時,Tilcon畫圖對象Charts畫正弦曲線,對參數進行設置,可看到不同的測試效果。

圖6 示波器面板設計

3 結束語

Tilcon作為Wind River新支持的革命性圖形界面開發工具,為用戶提供了功能齊全的控件,擁有出色的高效率、模塊化和可裁剪交互面板設計能力,其頂層應用界面與底層功能驅動代碼相互獨立,因此具備很強的跨平臺移植能力,將開發人員從繁瑣的嵌入式系統界面開發中脫離出來,正被廣泛地應用到嵌入式實時操作系統領域。本文介紹了Tilcon圖形界面開發工具,探討了利用該工具設計用戶界面及開發應用程序的過程。目前,Tilcon已在某艦指控系統軟件開發中得到應用,工程應用表明,Tilcon在功能、性能方面都能滿足基于VxWorks的實時系統圖形界面開發要求,是理想的嵌入式系統圖形界面開發解決方案。

[1]Wind River Systems Inc.VxWorks Programmer's Guide 5.5[M].USA,Alameda:Wind River Systems Inc,2002.

[2]Tilcon Software Ltd.Tilcon Programmer's Guide[M].CA,Ottawa:Tilcon Software Ltd,2005.

[3]Wind River Systems Inc.WindML SDK Programmer's Guide 3.0[M].USA,Alameda:Wind River Systems Inc,2002.

猜你喜歡
控件引擎嵌入式
Focal&Naim同框發布1000系列嵌入式揚聲器及全新Uniti Atmos流媒體一體機
新海珠,新引擎,新活力!
基于.net的用戶定義驗證控件的應用分析
車壇往事4:引擎進化之屢次失敗的蒸汽機車
TS系列紅外傳感器在嵌入式控制系統中的應用
嵌入式PLC的設計與研究
關于.net控件數組的探討
藍谷: “涉藍”新引擎
嵌入式單片機在電機控制系統中的應用探討
基于嵌入式MINIGUI控件子類化技術的深入研究與應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合