基于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控件子类化技术的深入研究与应用