新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于QNX实时操作系统的图形控制界面设计

基于QNX实时操作系统的图形控制界面设计

作者:时间:2009-12-18来源:网络收藏

 在计算机系统中,采用界面对被控对象实施具有结构清晰、操作方便、界面友好等优点。但目前工业等领域采用的控制界面开发平台多为通用的组态软件,这种控制软件依赖Windows平台运行,稳定性和可靠性不高,在工作环境恶劣、可靠性要求高的系统中应用较少。是专门用于控制的一类,相比于常用的分时操作系统大多拥有微内核,并且通过对结果返回的时间限制来实现程序运行的可预测性,因此具有较高的稳定性和可靠性。近年来,随着实时操作系统在一些可靠性和实时性要求较高的领域的成功应用,实时操作系统得以快速发展。为适应硬件的发展和用户的需求,各大实时系统开发商都开发出适合该系统的图形控制界面,如VxWorks的WindML和。本文在控制系统设计中,以实时操作系统为基础,研究了图形控制的特点,设计了系统控制程序。
1 开发环境
  (Photon Application Builder)是集成开发环境(QNX Momentics IDE)附带的编辑器。承接了QNX微内核和可优化裁减的优点,使用PhAB编写出的系统除用于核心内存保护的微内核和一些必要的核心管理器之外,其他功能都是可选择的。这种设计不仅保证了作为实时系统的高可靠性和实时性,也在很大程度上提高了使用PhAB所开发的控制系统的应用范围[1]。
  PhAB采用所见即所得的控制界面开发模式,并带有常用控件数据库,在控制时可以直接在界面编辑区域创建工作控件并进行所需设置,而无需程序编写。
  QNX的控制界面和程序设计支持主机――目标机的开发模式,主机用于界面和程序的设计编写,目标机用于运行编译好的程序。主机可以是装有Windows或Linux等常用操作系统的PC,且支持多人同时对同一系统进行开发。本系统的控制界面和程序就是在装有QNX Momentics IDE 4.0.1的Windows XP操作系统的PC上进行设计的。
2 软件设计
  系统软件设计分2个部分:一部分是系统控制,QNX提供了多种方式对控制界面进行个性化设置,可以在PhAB中创建编辑,也可以使用QNX提供的函数进行编写;另一部分为控制系统程序设计, QNX Momentics IDE支持多种语言对QNX的应用程序进行开发,包括Java、C和C++等。
2.1 界面设计
  控制界面部分的设计主要在PhAB中完成。PhAB以类的方式定义每一个控件,共有76个控件类,其中大部分在PhAB中都有相应的图标与之对应,控件的总父类为PtWidget。每个控件类由多个不同的资源(resources)来定义,例如在文本控件(PtText)中,字体的类型、大小、颜色都是该控件的资源。值得注意的是,PhAB中不允许两个控件拥有同一个名字,并且一个控件被创建后,系统将为该控件指定一个由前缀“ABN_”加控件名组成的局部变量名和一个由前缀“ABW_”加控件名组成的指向该控件的指针,当需要调用该控件时,可以直接使用为其分配的局部变量名或指针。
  以资源的方式定义控件类提高了控件编辑的效率。QNX提供了多个函数对控件的资源进行读写操作,常用到的如PtSetResources( )和PtGetRosources( )就是对控件类的单个或多个资源进行读写操作的函数。系统中各种控件状态变化频繁,需要经常对控件的一个或几个资源进行更改,如下所示为系统中使某个阀件标识背景图形变换的程序片段:
  PtArg_t arg[2]; //定义控件资源的数据结构
  PhImage_t *image;  
  …
                  /*以下是对控件资源的读取和设置*/
  PtSetArg(arg[1],Pt_ARG_ARM_IMAGE,image,0);
  PtGetResources(ABW_Button1,1,arg[1]);
  PtSetArg(arg[1],Pt_ARG_ARM_IMAGE,image,0);
  PtSetResources(ABW_Button2,1,arg[1]);
  PtBkgdHandlerProcess();
  …
  在PhAB中,不仅可以将不同的控件组合成一个只具有它们共同属性的组合控件,还可以将个性化的控件类定义为自己的模板,下次需要使用同类型控件时,只需直接调用即可。同时,PhAB还提供了一个叫做类型转换(Change Class)的强大功能。顾名思义,类型转换就是可以任意改变控件所属的类,而控件的类又是控件所有属性的集合。使用此功能不仅可以随意改变控件的类型,还可以方便地制作形状不同的各类控件。如若制作一个特殊形状的按钮控件,只需把控件的形状在绘图软件上画好后导入PhAB中,再使用类型转换的功能将其定义为一个PtButton控件就可以了。
  图1为系统控制界面的截图,图中线条、方框和各种按钮都作为一个或几个控件类而存在,控制面板对系统相关部分进行控制,被控对象的不同状态将以不同的颜色在界面的对应标识上表示。

本文引用地址:http://www.eepw.com.cn/article/152208.htm

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭