基于Tilcon的多目标信息排序系统人机交互软件设计
2017-06-22姚传明王庆元杨叶林
姚传明,王庆元,杨叶林
(中国电子科技集团公司第二十八研究所,江苏 南京 210007)
基于Tilcon的多目标信息排序系统人机交互软件设计
姚传明,王庆元,杨叶林
(中国电子科技集团公司第二十八研究所,江苏 南京 210007)
Tilcon是用于嵌入式系统且支持多平台的人机交互界面开发工具。针对多目标信息排序系统,在VxWorks上利用Tilcon作为图形开发工具,设计了软件系统架构,并围绕人机信息交互、系统多页面交互显示、中文显示和目标动态显示,给出了相应的实现方法,实际应用表明,该人机交互软件体系结构清晰,操作简便,可靠性高,显著提高了人机交互效率。
Tilcon;嵌入式系统;软件系统架构;动态显示
面对日趋复杂的信息化战场,如何从海量、离散化的战场信息中鉴别目标信息,并对目标信息进行分析处理,高效地显示敌方各目标的威胁程度和相对分布,给出具有辅助决策意义的火力打击次序,成为现代指挥控制系统重要的研究方向之一[1]。
由于实时多任务VxWorks操作系统以其卓越的多任务事物处理能力,使其成为车载嵌入式指挥控制领域中使用最为广泛的操作系统[2]。早期的VxWorks系统图形开发平台为zinc,由WindML提供的图形库作为支撑以运行于嵌入式操作系统中[3]。近年来,由于指挥控制系统日趋复杂,对人机交互的实时性、灵活性和扩展性均提出了新的要求。多目标信息排序系统要求在多平台下可快速部署和跨平台移植,而传统的图形开发工具zinc由于移植性较差,且开发过程复杂,已不能满足现代嵌入式指挥控制系统的图形开发的需要。Qt虽具有优良的移植性能和良好的封装机制,但部分图形元素的显示仍然依赖底层代码的编写,不利于界面的快速开发。因此采用兼容性强、易于开发且支持VxWorks6.x的图形开发工具,迫在眉睫。
利用Tilcon嵌入式图形工具,开发嵌入式指挥控制系统下多目标信息排序系统的人机交互界面,不但满足人机交互实时性、灵活性的要求,而且可快速实现跨平台的移植,并可利用其提供的丰富控件实现界面的快速构建,满足系统开发周期的需要。
1 Tilcon简介
1.1 Tilcon运行原理
Tilcon是Wind River公司推出的最新的多平台用户界面开发工具,具有功能丰富、界面美观和使用方便等特点,支持Windows、VxWorks、Linux和QNX等多种操作系统。Tilcon开发环境中提供了常用的界面控件,开发人员可直接将控件拖放至用户窗口上,并可对控件进行自定义和重新编组,从而实现灵活的、所见即所得的人机界面开发方式[4]。
Tilcon主要由人机交互界面运行引擎EVE、应用程序API接口函数和可视化人机交互界面开发环境组成[5],见图1所示。
图1 Tilcon构成及开发环境示意图
开发人员利用Tilcon提供的开发环境在宿主机上开发人机交互界面,并可用虚拟机对界面功能进行初步验证和评估。之后,将用户界面程序及应用程序下载至安装有嵌入式操作系统的目标机上,由独立于用户应用程序的引擎EVE管理用户界面的显示及人机交互。同时,由执行应用程序的API命令对图元进行屏幕绘制,以事件、回调函数等方式处理用户操控信息,最终由回调信息驱动用户应用程序的运行。
1.2 Tilcon界面事件处理
系统运行过程中,Tilcon通过建立应用循环任务来监视并处理界面事件。首先,对应用循环任务进行初始化,调用TRT-Start接口函数启动Tilcon图形引擎,调用TRT-WindowLoad函数加载用户twd格式界面文件,调用TRT-WindowDisplay函数显示界面窗口;其次,在应用循环任务中实时监视界面事件,利用TRT-GetInput函数接收并处理来自EVE引擎传递的界面响应事件,并返回事件响应值;最后,退出应用循环任务,调用TRT-Exit结束任务并释放资源。
2 多目标信息排序系统人机交互软件设计
2.1 总体架构
多目标信息排序系统旨在向指挥控制人员提供敌方目标的威胁程度、价值和火力打击的次序,并实时显示目标的方位、距离及类型属性等信息,以便指挥控制人员及时掌握战场态势,缩短打击决策时间,将信息优势转化为作战优势。基于上述考虑,系统人机交互软件主要功能设计如下:
1) 界面显示要素齐全,简洁、美观;
2) 具备快速响应用户操作;
3) 动态显示目标信息,界面刷新延时短;
4) 具备对目标信息及排序算法设置功能。
采用模块化设计思想,将系统人机交互功能及用户应用功能分开独立设计,并建立以系统任务为驱动的人机交互处理软件架构,具体见图2所示。
图2 系统人机交互软件总体架构
系统软件设计中,一方面,将界面事件的响应,包括键盘、鼠标等外设输入,交至Tilcon事件预处理;另一方面,用户应用程序处理来自数据管理模块的目标数据、规则数据,并通过排序算法、目标显示算法实现对目标信息的综合处理。最终,将事件响应和系统数据交至界面事件综合管理模块进行处理,形成相应的显示事件。设计过程中,遵循下述三条原则:
1) 可靠性设计,将不同事件任务定义不同级别的优先级,确保事件的执行顺序,将Watchdog注册到任务执行过程中,防止界面应用程序进入死循环。
2) 实时性设计,利用Tilcon提供的时钟模块Timer-Hinter将系统时钟中断时间设置为100ms,把实时性要求较高的任务放入时间中断响应程序中运行,从而提高任务运行的实时性。
3) 扩展性设计,针对多目标信息排序系统中多事件任务的响应,传统方法是采用软件循环方式实现多事件的响应,若某事件人机交互处理时间较长,则直接影响其它事件响应的实时性和任务的可扩展性。由此,设计了界面事件综合管理模块,用于统筹协调并管理多事件、多消息的响应。当应用系统增加新任务时,直接注册到该管理模块即可,从而提高了系统的可扩展性。
系统运行过程中,目标排序任务耗时相对较多,须将其定义为较低级别的任务优先级,从而确保系统响应的实时性。
2.2 人机信息交互设计
利用信号量同步机制可实现系统对多事件及任务的响应,但无法实现信息的传递。为实现界面事件与多任务间信息的可靠传递,设计了专用的信息交互结构体,该结构体采用自定义格式,各构成元素反映事件的相关属性及参数信息,并由界面事件综合管理模块进行管理,具体构成见图3所示。
图3 信息交互结构体构成示意图
通过接收信号量和释放信号量完成事件与任务的响应。当接收到信号量时,界面事件综合管理模块读入并处理人机交互信息,当释放信号量时,系统启动用户应用任务的处理。
2.3 交互式多页面设计
多目标信息排序系统根据功能需要和操作需求,将用户界面分为用户登陆界面、工作主界面和设置界面,各界面分别由相应的窗体组成,具体构成见图4所示。
图4 系统主要界面构成示意图
系统多页面交互设计的关键是页面间的切换,涉及页面切换的速率、加载速度、资源消耗及参数传递等。针对多页面的动态切换,由如下两种实现方法:
1)将所有窗口资源在程序开始时便装载到内存,除主窗口显示外,其他的窗口采用隐藏方式,根据任务的需求来决定显示或隐藏不同的用户界面。此方法的优点是响应速度快,界面上控件的状态可一直保持,缺点是消耗系统大量的内存;
2)采用动态加载的方法,即在程序入口处只显示登陆界面,根据界面任务决定加载何种窗口。其优点是消耗内存小,便于界面的运维管理,缺点是加载速度一般。
综合分析以上两种方法,由于该系统页面切换频率不高,且嵌入式系统对内存的消耗较为敏感,因此采用方法二进行页面的切换,具体流程见图5所示。
图5 多页面切换流程示意图
利用Button控件实现各页面之间的切换,关键代码如下:
int LoopEvent(void){
/*启用时钟*/
errorcode1=TRT-TimerHintEnable(TRT-cid, 2);
errorcode2=TRT-WindowLoad(TRT-cid, mainWndFile);/*加载登陆界面*/
errorcode3=TRT-WindowDisplay(TRT-cid, mainWndID);/*显示登陆界面*/
……
while(continueLooping){
……
case TRT-button:
if(strcmp(rec-data.ID, “Set-Button”)==0){
DispSetWnd(); /*进入系统设置界面*/ break;}
if(strcmp(rec-data.ID, “DB-Button”)==0){
DispDataWnd(); /*进入数据管理界面*/ break;}
if(strcmp(rec-data.ID, “Back-Button”)==0){
TRT-WindowDelete(TRT-cid, mainWndID); DispLoginWnd();/*返回登陆界面*/ break;}
……
}
……
}
系统在LoopEvent函数中实现对主窗口的加载和显示,并对该窗口下button控件进行事件监视和响应。
2.4 汉字显示设计
汉字在VxWorks系统中的显示问题事实上是一种图形显示问题。在Tilcon开发环境中,其嵌入式引擎默认只支持四种英文字体,但其提供了一个字体引擎使得用户可根据需要加入别的字体[6]。由此,通常情况下,VxWorks系统汉字显示解决方案有三种方法:
1) 利用WindML对双字节编码的支持,构造符合WindML双字节编码机制的汉字字库,之后利用上层组件实现汉字的显示;
2) 用户针对WindML开发汉字点阵存储、读取和显示系统函数,使其能够识别汉字码,一旦判断出汉字码便调用自定义的汉字显示函数;
3) 用户完全自研一套点阵存储、读取和显示函数,实现对汉字的显示。
上述三种方法均涉及对系统底层函数的修改,且构造符合规定的点阵字库工作量较大。由于多目标信息排序系统汉字显示仅作为界面背景静态显示,且汉字显示数目较少,因此,本文未采用上述方法,而是通过对系统自带的WindML BMF字库的研究,提出了一种基于修改系统BMF点阵字库的汉字显示方法。
WindML系统点阵字库的格式如下:
UGL-LOCAL const unsigned char UGL-FAR-DATA page0Data[]=
{ ……
/*0x0023('#')*/
0,/*page*/
35,/*index*/
0,/*size(MSB)*/
20,/*size(LSB)*/
8,/*width*/
16,/*high*/
14,/*ascent*/
/*Data*/
0x00,0x00,0x00,0x00,0x44,0x44,0x44,0xfe,
0x44,0x44,0x44,0xfe,0x44,0x44,0x44,0x00,
……
}
点阵数据表中index值是字符的ASCII编码,LSB是整个点阵信息的字节总长度,包括width、height、ascent和点阵数据。Data项是字符的点阵数据,用0和1进行渲染,0表示用背景色渲染,1表示用前景色渲染。
将需显示汉字UTF-8所对应的LSB,width,height,ascent和Data值分别替换原字符(如“#”)的各项值,并重新编译WindML媒体库,利用TRT-SetValues函数输出原字符(如“#”),界面即可显示与之相对应的汉字。具体实施中,由用户构建一个二维表,分别存储所需显示汉字UTF-8编码和指定字体下的ASCII码字符UTF-8编码,将汉字UTF-8编码点阵数据替换系统自带ASCII码字符的UTF-8编码点阵数据。当Tilcon需显示某汉字时,将该汉字所对应的ASCII码字符输出,即可显示该汉字。
该方法实现简单,无需开发人员修改底层函数或构造汉字点阵字库,可满足一定数量汉字的静态显示。
2.5 目标动态显示设计
多目标信息排序系统旨在为指挥控制人员全面地提供目标信息,提高态势感知能力。由此,设计并构建多目标的动态显示构件,直观、有效地显示目标方位、位置及相关属性信息是不可或缺的。
各目标的位置及方位信息通常用经纬度值表示,由于本系统主要用于地面目标信息的评估,故而不考虑目标的高程信息。利用墨卡托坐标投影算法将目标经纬度坐标转化为平面坐标,以便界面动态显示。本系统所处平面坐标位置为(x0,y0),目标i的平面坐标为(xi,yi),可得:
(1)
θi=arctan((yi-y0)/(xi-x0))
(2)
其中,Si为目标i距离本系统目标的距离,θi为目标i与本系统目标的夹角。
为评估各目标对本系统目标的相对位置关系,构建以本目标位置为坐标原点的平面直角显示坐标,各目标的平面坐标经坐标变换形成显示坐标,变换如下:
(3)
(4)
式(3)和式(4)分别给出变换后目标i相对于本目标的屏幕显示坐标。
由于各目标的相对位置不断变化,为实现各目标的动态显示,利用Tilcon下Draw控件表示各目标,通过连续设置各控件所在显示位置的平面坐标,以实现目标的动态显示,部分代码如下:
void setPoisition(char *idName, double s, double theta)
{
double x, y;
TRT-GetValues(TRT-cid, idName, TRT-ATT-X1, &x, TRT-ATT-Y1, &y, NULL);
x=x+s * cos(theta);
y=y+s *sin(theta);
TRT-SetValues(TRT-cid, idName, TRT-ATT-X1, x, TRT-ATT-Y1, y, NULL);
……
}
需进一步说明:
1) 多目标信息排序算法主要实现对目标威胁度、火力打击次序的在线评估。对目标信息排序实际上是对模糊不确定性问题的求解,利用模糊区间数表征评估指标并将其量化,由TOPSIS法实现对指标体系的评估,从而获得多目标信息排序结果。系统实施中,系统信息输入包括速度、距离、位置、方位、类型等,系统输出是目标威胁度、火力打击次序,并由Tilcon实时显示我目标的态势信息。
2) 传统的动态刷新方法是把刷新对象原图形用背景色覆盖再重新画,这将会耗费大量系统资源,且会出现闪屏或拖尾现象。为克服该问题,采用Tilcon 内嵌的双缓冲区技术, 即屏幕下重绘方式来解决。利用API函数命令将各目标显示控件Draw的Redraw Option属性设为Object Offscreen, 背景区域设为Area Offscreen, 即可获得比较清晰平滑的刷新效果。
3 设计实例
本文利用Workbench开发环境,结合Tilcon图形开发工具,开发了一套多目标信息排序系统,见图6所示。
图6 系统主界面图
系统通过定时自动或手动读取XML格式的多目标数据,并对该数据进行解析,解析后的数据通过评估模型和排序算法的处理,实现对多目标的威胁程度、价值和火力打击的动态排序。利用准雷达图显示各目标相对于本系统的距离和方位,并构建和显示本目标的火力打击范围和通信范围,使指挥控制人员能够较为直观地实时知悉本目标对敌各目标的打击能力情况,缩短作战决策时间。
为评估该系统刷新时间及显示能力,分别测试了在输入16、32、48、64、128个目标下的人机交互情况。测试环境:VxWorks虚拟机、CPU主频2.8GHz、内存2GB。经测试,系统在同时处理128个目标情况下的动态刷新时间约为630ms,显示效果较好,人机操作流畅,无卡顿现象,满足预期刷新时间不超过1秒的要求,具体结果见表1所示。
表1 不同数量目标情况下的测试结果
4 结束语
现代战争信息化水平不断提高,对指挥控制信息系统提出了新的作战需要,目标信息排序这一辅助决策功能必须进一步得到完善。基于车载指挥控制系统,其目标信息通常是加载在作战地图上直接显示的,未对目标信息进行深入的分析和处理,从而成为限制指挥控制人员快速全面掌握战场态势的因素之一。同时,经实践表明,多目标信息排序是一个非线性模糊问题,单纯依靠数学算法不能解决。
本文从系统人机交互软件设计着手,借助Tilcon强大的图形开发能力,在人机交互界面的友好性及信息交互、多目标动态显示、汉字显示等方面提出设计思路和实现方法,构建了多目标信息排序的人机交互平台,满足了目标信息的初步展示的要求,并可借助于此平台进一步探索多目标排序模型、规则和算法,使得目标信息排序在指挥控制领域中的辅助决策功能走向实用化。
[1] 张晓南,王德泉,杨俊峰.坦克战场目标威胁评估方法[J].指挥信息系统与技术,2015, 6(1):45-48.
[2] 朱伟,许春雷,孔军.基于Tilcon的指控系统多任务人机交互软件设计[J].指挥控制与仿真,2011, 33(4):110-112.
[3] 王钤,朱松柏,李博,等.一种基于Tilcon的VxWorks图形界面开发方法[J].兵工自动化,2014,33(10):89-91.
[4] 张加林,李松,汪高武,等.基于Tilcon的VxWorks图形界面开发技术[J].指挥控制与仿真,2007,29(5):100-104.
[5] Tilcon Graphics Suite User’s Guide[M]. Wind River Corporation, 2009.
[6] 葛团伟.VxWorks下基于WindML汉字显示在某武控系统中的解决方案[J].电子世界,2013(12):34-35.
Design of Software of Multi-target Information Sorting System Man-machineInteraction Based on Tilcon
YAO Chuan-ming, WANG Qing-yuan, YANG Ye-ling
(The 28thResearch Institute of CETC, Nanjing 210007, China)
The user interface development tool Tilcon is used in embedded system and can be supported by multiple platforms. Aiming at the multi-target information sorting system, the graphical development tool Tilcon has been used on VxWorks, the software system architecture is designed. The implementation method of HMI, multi-page interactive display, Chinese characters display and target dynamic display are also described. Practical application shows that the system architecture is legible, with easy operation, high reliability and good alternating.
Tilcon; embedded system; the software system architecture; dynamic display
2017-02-27
姚传明(1988-),男,安徽六安人,博士,工程师,研究方向为装甲指挥控制信息系统。 王庆元(1981-),男,高级工程师。 杨叶林(1987-),男,硕士,工程师。
1673-3819(2017)03-0106-05
TJ391;E917
A
10.3969/j.issn.1673-3819.2017.03.023
修回日期: 2017-04-11