实时小型GUI工具的设计

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:kunjian99_Gmail
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:开发了一套c语言实现的小型实时图形用户界面工具,介绍了GUI系统的基本设计思路。系统已成功应用于一款继电保护机产品。
  关键词:实时;GUI工具;窗口;控件;继电保护机
  中图分类号:???文献标识码:?文章编号:1009-3044(2007)16-31078-02
  Design of tidy real-time GUI tools
  FANG Wen-kai, ZHONG Rui
  (National ASIC System Engineering Center, Southeast University, Nanjing 210096, China)
  Abstract:This paper developed a set of GUI tools in real-time embedded system by using C language. The basic design idea of whole GUI system was include. This system has been successfully used in relay protection set.
  Key words:Real time ; GDI Tools; Windows; Control; relay protection set
  
  1 引言
  
  图形用户界面是嵌入式系统的一个组成部分,甚至从某种意义上说可以认为是嵌入式系统的灵魂,因为在整个系统中这是用户接触最多的部分,所以图形用户界面的好坏直接决定着系统的功能。与在普通环境下的图形用户界面相比较,实时系统下的图形用户界面要求响应时间短,占用资源少,而且对图形质量要求不高——不要求有类似WINDOWS的桌面效果。而目前大多数可接触到的图形用户界面如 WINCE, MINGUI, Graphic出于其复杂性并不适用于一些小型实时系统。
  MINGUI是应用于东南大学国家专用集成电路中心“继电保护项目”的一款图形用户界面工具,适用于小型实时系统。其体系结构为:
  图1
  
  2 体系结构
  
  2.1 硬件抽象层(Hardware Abstract layer)
  硬件抽象层将具体硬件与上层结构相联,它提供一个标准接口,为了不在嵌入式系统中引入复杂的库结构,这部分使用C代码编写。它向图形设备接口提供一个标准从1bpp到8bpp的直接写入图像帧缓冲。
  2.2 图形设备接口(Graphic Device Interface)
  图形设备接口,它提供设备上下文(Device Context)操作,调色板,基本GDI对象操作(包括画笔、画刷、字体、位图、区域等),这部分针对实时系统的快速要求,采用以空间换时间的策略。
  2.2.1 设备上下文(Device Context)
  设备上下文保存了图形显示设备的状态信息,可以认为它相当于我们画图时的画布。在MINGUI中我们使用一个数据结构实现。该结构为:
  typedef struct{
  DWORDMode; /*模式,低两位表示的是前景色和背景色的合成模式,倒数第三位表示汉字间距*/
  PIXELForeground;/* 前景色*/
  PIXELBackground;/* 背景色*/
  VRAM*Vram;/*内容存储区 */
  intVX,VY; /* 虚拟坐标*/
  PWND Owner; /*指向拥有窗体 */
  }TWndCanvas;
  其中VRAM是一个数据结构,记载了一帧图像的坐标,像素,点,组操作等信息,组操作在后面描述。有了设备上下文信息,图形设备接口就可以在其上进行创建,拷贝,像素点填充与或等基本GDI对象操作。
  2.2.2 调色板(COLOR MAP)
  LCD与RGB格式对颜色的描述需要算法转换,我们使用文件读写操作运行转换算法,获得查找表,用指针偏移代替转换算法,提高运行速度。
  2.2.3 基本图形绘制程序
  MINGUI提供了基本的点,线,圆,椭圆的绘制程序,并针对实时系统对波形绘制的特殊需求,采用了曲线拟合技术,提高了波形绘制精度,降低了对采点的要求。
  
  3 窗口控件
  
  MINGUI采用窗口模式,所有的桌面,窗口,控件都是基于窗口结构。使用t_winctrl结构记载窗体的相关信息,t_winctrl结构如下:
  struct t_winctrl{
  struct t_winctrl *Prev,*Next,*Parent,*Children;
  DWORD ID;/*窗体的唯一ID标号*/
  DWORD Mark;
  /*窗体资源标志(结构内偏移20B)*/
  DWORD Style; /*窗口样式和状态*/
  TVariantTextCaption; /*窗口标题*/
  TWndCanvasCanvas;
  /*指向主窗体的画布,(结构内偏移48B:HDC)放在WndRect下面*/
  TWNDCLASS*WinClass; /* window class*/
  TWndFamily *Family;
  TWNDHOOKHookProc;
  /*回调函数入口地址*/
  UINTHookMessage;
  /*回调函数能处理的消息类型,设置为NULL的话,他可以处理所有类型消息*/
  TRECT WndRect;
  /* window rect in screen coords*/
  int Width,Height;
  int unmapcount;
  /* count of reasons not really mapped */
  int TabOrder;
  longUserData;
  longExtraLong[1];
  /* window extra bytes - must be last*/
  };
  窗体创建通过CreateWindows()函数实现,该函数采用异步/同步运行方式,在创建窗体时,只是给窗体分配一块内存区,填写t_winctrl窗体结构,然后发送WM_PAINT消息。
  同步步运行方式时,用户需在回调函数里面调用_Draw函数,系统将在窗口创建的同时将窗体在液晶屏上面实现。该模式适用于系统资源充沛同时对图像实时性要求高的系统。
  异步处理方式时,将在客户程序里的消息循环获取WM_PAINT消息,执行显示操作。这种方式将窗体的创建和绘制分成两部分执行,缩短了每一部分的执行时间,在一些中断及中断处理任务繁重的系统中可以降低图形用户系统对资源的占用时间。
  控件是对操作有着特定响应的窗体,用户可以在回调函数里面定义这些特定的响应。出于简化用户操作,以及考虑到实时系统一般不需要复杂的控件,MINGUI只实现了一些基本的浮点数显示修改,菜单,按钮等控件,简单实用,节省了存储空间。
  
  4 窗口管理器
  
  MINGUI通过一个如下图所示的链表管理窗口,链表的每个节点是一个t_winctrl结构。
  图2
  其中根窗口是整个链表头,是默认的第一层窗口的父窗口。同时每一层的窗口又可能是新一层窗体结构链表的链表头。层与上一层,层与层之间构成了父子,家庭关系。而每一层之间的窗口拥有一个称之为Z序的记录,就是给窗体加上个垂直于液晶屏的坐标轴,Z序高的自然也就能显示在最顶端。
  为了提高图像的显示速度,和防止闪烁,MINGUI在窗口管理器中加入了组操作模块,使用组操作,将通过Z序在内存中实现将家庭窗口在内存中按照Z序剪裁,合并成一帧图像显示。
  
  5 消息系统
  
  MINGUI采用事件驱动消息机制,由消息推动整个系统的运转,系统的运行是建立在消息系统的稳定运作的基础上的。
  MINGUI采用类似于标准WINDOWS消息结构,消息体结构以及消息名都相同于WINDOWS系统,便于开发者上手。但在具体操作时MINGUI更加灵活,MINGUI既提供相同于标准的SendMsg/PostMsg和GetMsg/PeekMsg实现消息发送与接受操作,进行进程间通讯。也可以采用类似于UCGUI的SendAndGetMsg直接在产生消息时即调用对应窗口的回调函数处理实现同步操作。
  
  6 应用实例
  
  MINGUI在东南大学 国家专用集成电路中心 系统组的继电保护项目中得到应用,该继电保护机采用东南大学自主产权的Garfield IV嵌入式芯片,该系统目前已经通过检测调试。
  6.1 用户界面的设计流程:
  6.1.1 初始化,系统将创建结构体,根窗口,以及读取上次关机时存储在flash里面的数据。
  6.1.2 创建桌面窗口,本系统使用了4bpp的像素。桌面窗口提供一个功能菜单,用户通过点击功能菜单进入下层功能窗口,实现系统操作。
  
  7 结束语
  
  本图形用户界面工具针对实时系统的特殊要求,作了相应的设计。针对资源耗费少的需求,该图形用户界面精简了一些在实时小型图新用户界面上不常用的控件,如文本输入,输入法,图片显示等功能。同时添加了浮点数输入,输出,波形显示功能。同时,优化了底层算法,提高了窗口创建速度。消息系统则使用了同于Windows的样式方便编写,并提供了同步与异步处理方式,用户可以根据需求配置。
  
  参考文献:
  [1]蔡明志,Windows程序设计:绘图篇[M].北京:科技出版社,1993:101-1l1.
  [2]赫思D,贝克M P,蔡士杰,译.计算机图形学[M].北京:电子工业出版社,1998:45-59.
  [3]Jefrey Richter; Programming Applications for Microsoft Windows[M].Fourth Edition, Microsoft Press,1999.
  [4]Charles Petzold. Programming Window[M].Fifth Edition, Microsoft Press, 1998.
  
  注:“本文中所涉及到的图表、公式注解等形式请以PDF格式阅读原文。”
其他文献
摘要:本论文介绍了谐波测量的重要性和谐波测量的基本指标,采用快速傅里叶变换FFT测量方法,利用美国NI公司功能强大的LabVIEW开发平台制作一个虚拟谐波分析仪,对现场采集的电网电压波形数据进行了各指标的监测与分析,较直观地显示了基波和谐波的幅值。  关键词:LabVIEW;谐波测量;FFT  中图分类号:TP274文献标识码:A文章编号:1009-3044(2007)16-31128-02  A
期刊
摘要:深入研究Apriori算法,针对Apriori算法的性能瓶颈,以Apriori算法的运行事实为前提,给出了约简事务数据库中事务记录的理论,提出了一种利用事务地址索引表来有效约简事务数据库中事务记录的Apriori优化算法,以提高Apriori算法的执行效率。  关键词:关联规则;Apriori算法;事务地址索引表;约简事务  中图分类号:TP301.6 文献标识码:A文章编号:1009-30
期刊
摘要:建筑CAD技术的广泛应用,给建筑业带来了巨大的变革,它改变了人们传统的设计思维和模式,极大地提高了设计的效率。本文分析了CAD技术的发展现状及建筑CAD技术的应用特征,在此基础上,分析了建筑CAD技术的发展前景。  关键词:建筑CAD;应用;发展  中图分类号:TP317文献标识码:A文章编号:1009-3044(2007)16-31167-03  Briefly Analyzing CAD
期刊
摘要:图像增强是图像处理的一个重要分支,它对图像整体或局部特征能有效地改善;直方图是图像处理中最重要的基本概念之一,它能有效地用于图像增强。本文主要讨论了直方图均衡化和规定化处理的图像增强技术,并给出了相关的推导公式和算法;同时用MATLAB语言加以实现,给出标准的数字图像在各种处理前与处理后的对照图像、具体算法、实验结果及直方图。结果表明,用直方图均衡化和规定化的算法,能将原始图像密集的灰度分布
期刊
摘要:标量量化多描述编码(MDSQ)算法能有效提高信息的传输接收效果。结合Matlab工具在矩阵处理上的灵活性,用程序实现了MDSQ算法,并通过实验结果的分析证明该算法的可行性。  关键词:多描述编码;标量量化;Matlab;码率  中图分类号:TP391文献标识码:A文章编号:1009-3044(2007)16-31148-01  Image MDSQ Arithmetic And Its Im
期刊
摘要:生活中LED显示屏的应用越来越广,本文重点对大型室外LED显示屏的智能控制做了初步的研究,就控制回路做了详细介绍,对整个显示屏的智能环节做了分析,希望大家能通过本文对LED显示屏有更多的了解。  关键词:LED显示屏;屏内温度;屏内湿度;传感器;检测;控制  中图分类号:TP18文献标识码:A文章编号:1009-3044(2007)16-31123-02  Large Outdoor LED
期刊
摘要:随着信息技术的发展,计算机日益走进人们的工作、学习和生活,成为不可或缺的工具。在疾控工作中接触最多的是Microsoft Office,其中常用的办公软件有Microsoft Office Word 2003 文字处理,Microsoft Office Excel 2003 表格处理,Microsoft Office PowerPoint 2003 幻灯片等。本文从实际工作出发,着重介绍了办
期刊
摘要:嵌入式开发需要良好的软硬件环境,目前ARM公司的开发工具ADS、RealView以及Keil与ARM核处理器结合的较好,但硬件开发平台昂贵。Proteus软件较好的解决了硬件仿真的问题,它支持外围数字电路和模拟电路与处理器协同仿真,可以随意搭建硬件虚拟仿真平台。针对Keil for ARM编译器,结合Proteus软件,以ARM处理器LPC2124介绍了如何构建ARM嵌入式开发平台进行源代码
期刊
摘要:针对Flash存储器的特点,设计了一种适合开源实时操作的嵌入式文件系统,首先详细介绍了μC/OS-II内核在ARM7TDMI上的移植过程,其次介绍了基于此上的简易嵌入式文件系统设计方案.最后经测试得出结论:该嵌入式文件系统代码精简,占用系统资源少,执行效率高,有较高的安全性。  关键词:Flash存储器;μC/OS-II;嵌入式文件系统  中图分类号:TP311文献标识码:A文章编号:100
期刊
摘要:本文介绍了使用Photoshop软件中的切片工具切割网页直观图的具体方法和应注意的有关事项,因每切割一个方框就是一个表格,所以可以结合Dreamweaver软件来轻松布局网页表格。  关键词:切片;Photoshop;Dreamweaver;表格  中图法分类号:TP317文献标识码:A文章编号:1009-3044(2007)16-31179-02  Using Photoshop and
期刊