pdf

基于PC/104的图形界面控制软件设计

  • 1星
  • 日期: 2018-03-25
  • 大小: 125.49KB
  • 所需积分:1分
  • 下载次数:1
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: 界面控制

在嵌入式PC/104选用的操作系统中,建立图形界面的人机接口软件在实际中有很大的意义,本文针对相关工业控制项目,讨论了有关基于消息处理机制的图形界面人机接口的建立方法和相关问题。

关键词:图形界面;操作系统;控制系统

Abstract: Establishing Graphics User Interface software used on PC/104 is significant in the real industry project. This article discussed the method and problem of designing GUI based on message handling mechanism.

Keywords: Graphic User Interface; OS ;Control System

文档内容节选

基于 PC104 的图形界面控制软件设计 徐杰 刘鸿飞 于海兰 Design of Graphic Interface Control Software on PC104 关键词图形界面 操作系统 控制系统 Keywords Graphic User Interface OS Control System 中图分类号:TP2412 摘要:在嵌入式 PC104 选用的操作系统中,建立图形界面的人机接口软件在 实际中有很大的意义,本文针对相关工业控制项目,讨论了有关基于消息处理机制 的图形界面人机接口的建立方法和相关问题 Abstract Establishing Graphics User Interface software used on PC104 is significant in the real industry project This article discussed the method and problem of designing GUI based on message handling mechanism 1 引言 在新兴的嵌入......

基于 PC/104 的图形界面控制软件设计 徐杰 刘鸿飞 于海兰 Design of Graphic Interface Control Software on PC/104 关键词:图形界面 . 操作系统. 控制系统 Keywords: Graphic User Interface. OS. Control System 中图分类号:TP241.2 摘要:.在嵌入式 PC/104 选用的操作系统中,建立图形界面的人机接口软件在 实际中有很大的意义,本文针对相关工业控制项目,讨论了有关基于消息处理机制 的图形界面人机接口的建立方法和相关问题。 Abstract: Establishing Graphics User Interface software used on PC/104 is significant in the real industry project. This article discussed the method and problem of designing GUI based on message handling mechanism. 1 引言 .在新兴的嵌入式 PC/104 应用领域,因其硬件的独特特点,往往要求使用者的 软件操作系统要具备以下特点: (cid:122) 操作系统占用空间小,大约占用几 M 或十几 M; (cid:122) 系统稳定性好; (cid:122) 对硬件配置要求低; (cid:122) 软件开发灵活性高; (cid:122) 可以直接对硬件操作,控制响应速度快。 基于这样操作系统的软件有时又要求为用户提供一个良好的人机界面,而这类 操作系统往往在图形界面的能力上与Windows 相比有着明显的不足,针对这一难点, 本人在基于注塑机械手控制软件的图形界面开发上,进行了积极的探索,希望对相 关的软件开发有所帮助。 建立与用户交互的图形界面,除了要在系统上画出图形外(这类系统往往提供 绘画函数),最关键的是要在图形上建立软件对用户操作的响应,即类以于 Windows 系统中,系统针对用户对图形上的各种功能图案(如按钮)的点击要给予响应。所 以建立图形界面关键是要在用户与软件之间建立起一种交互机制,针对这一问题, 本文以下部分将详细进行讨论。 2 事件控制机制 软件程序有两种基本控制机制,即顺序驱动(或过程驱动)机制和事件控制机 制,采用顺序驱动机制设计的程序有一个明显的开始、明显的过程和明显的结束, 这样的控制机制不利于建立友好的人机接口。还有一种程序控制的机制,即事件驱 动机制,采用事件驱动机制设计的程序,由事件的发生来控制。这样的程序控制机 制能够为用户提供更好的人机接口。 采用事件驱动机制在人机交互很强的程序设计中比较适用,它给用户在程序的 运行上以选择的余地。事件驱动控制机制多在基于 Windows 的软件上使用,Windows 上的软件开发大多使用 VC、VB 等一些可视化开发平台,这些平台往往已经为用户 提供了事件驱动机制,用户只需设计相关事件处理程序,在程序编制过程中并不涉 及事件驱动机制的内部运行机理。而在本文所讨论的开发环境下,必须自己搭建事 件驱动机制平台,在这一点上增加了程序设计的难度和复杂性。 采用事件驱动机制可以大大减少消息丢失的可能性,如当程序正在处理某一个 消息时,又产生了新的消息,这时事件驱动机制会将新消息放入消息循环队列,等 到当前消息处理完后再处理新来的消息,从而防止了消息丢失的可能。这种程序控 制方式非常适用于系统及时响应用户的请求,与用户建立友好的人机接口。这比采 用顺序驱动机制设计的程序对用户来说更友好。 3 搭建事件驱动机制平台 在用户界面设计中,事件就是用户通过各种输入设备进行操作时所产生的各种 信号,又称消息。该消息是一种激发性的用于联系用户、计算机系统以及应用软件 之间交互活动的最基本信号。比如,用户按下键盘上的某个键就可以形成一个消息, 因为用户的这一行为会对系统产生一个激发性的信号,使得系统由原来的某种状态 转为另一种状态。 消息的产生方式很多,主要由用户通过按下键盘上的某个键或移动鼠标器并按 下其上的某个键来产生。对于消息的产生者我们又称之为消息源。消息源包括鼠标 器、键盘、串行端口中断、有关的软件工具、设备驱动器、其它的输入设备、其它 的定位设备等等,甚至还可以是应用程序自身。 由于事件是激发人机交互活动最基本的因素,因而人机交互活动的关键就是研 究由事件产生的消息处理技术及其算法。用户界面的质量高低,在某种程度上取决 于事件及消息管理技术的优劣 3.1 事件驱动机制的实现方法 以下列出本人所参与的注塑机械手控制软件中,用于装载键盘和鼠标事件所产 生消息的消息队列的数据结构: struct event_define { struct event_define *Last; unsigned char ScanCode; unsigned char KeyState; int MouseState; int CursorX; int CursorY; struct event_define *Next; }; 下面介绍这一结构体中各个元素的功能: (cid:122) struct event define *Last 中的指针Last 用于装指向上一个消息队列记录的地 址; (cid:122) struct event define *Next 中的指针 Next 用于装指向下一个消息队列记录的 地址。这两个指针中的内容是在消息队列初始化过程中完成的,使消息队 列形成首尾相链的队列,同时头指针与尾指针都指向消息队列中的默认为 0 的消息数据记录; (cid:122) unsigned char ScanCode 中的 ScanCode 用于装键盘敲击事件发生时,被敲击 键的键值; (cid:122) unsigned char KeyState 中的 KeyState 用于装键盘敲击事件发生时当时键的 状态(压下或抬起); (cid:122) (cid:122) int MouseState 中的 MouseState 用于装鼠标事件发生时鼠标消息的内容,如 鼠标左键压下、左键抬起等; int CursorX 和 int CursorY 中的 CursorY 和 CursorX 分别用于装鼠标事件发 生时鼠标在显示屏上的坐标值;本项目中有关消息的装入都是用中断方式 来完成的,下面简要介绍有关中断处理的具体方法。 在程序中,当鼠标、键盘和串口数据事件发生时,本程序把这类事件当做中断 来处理。这样做的好处在于:CPU 不必花大量的时间去查寻外部事件是否产生。因 为,中断事件何时发生是不能预知的,一旦有外部事件请求中断,则会向 CPU 的接 收中断信号的引脚发出电信号,这些信号 CPU 是马上可以知道的。如键盘何时有键 按下,是随机的,CPU 不用反复查寻键盘状态,而可以去执行其它程序,一旦有按 键按下,键盘马上产生中断请求信号,CPU 得知这信号后,便立即去执行为键盘服 务的中断程序。服务完后,CPU 又恢复执行被中断了的程序逻辑。 中断方式处理事件的优点在于:执行速度快,可实时处理,不占用 CPU 过多的 时间等优点。注塑机械手控制软件中,中断服务程序完成的主要任务就是把中断事 件装入相应的消息队列中。如:当有键盘敲击时,就把键盘当前被敲击的键值及状 态放入消息队列,紧接着把尾指针指向下一个消息队列数据记录。如果在键盘敲击 前,头指针与尾指针指向同一个消息队列数据记录,则键盘敲击后,尾指针指向了 下一个消息队列数据记录,这样头指针与尾指针就指向了不同的消息队列数据记录。 若此时又有新的消息进入,则把它放入尾指针当前消息队列数据记录中,并把尾指 针前移,指向下一个消息队列数据记录。而主程序则用循环结构不断检测消息队列 的头指针与尾指针是否指向同一地址。若二者指向同一地址,则转入下一次循环, 再次检测消息队列的头指针与尾指针是否指向同一地址,如此反复。若某次检测发 现头指针与尾指针指向了不同地址则说明有消息装入消息队列,此时主程序将读出 消息内容,并将头指针向前移动,使之指向下一个消息队列数据记录的地址,接着 对当前消息做相应的处理,处理完成后再次检测消息队列的头指针与尾指针是否指 向同一地址,若不同则做相应处理,若相同则进入下一轮循环,如此反复。这样由 外部事件将消息放入消息队列中,使尾指针前移;而主程序按先进先出的顺序读出 消息队列中的数据记录,并使头指针向前移动,然后根据消息内容做相应处理。这 种事件处理方式又称消息处理机制,如图 1。 在上述消息处理的过程中易出现一种特殊情况,即消息密度较高,主程序处理 的速度低于消息装入消息队列的速度,最后将导致消息队列装满,却仍有新消息产 生。针对这种情况,有两种处理方法,一种是忽略新来的消息;一种是用新来的消 息覆盖原来的消息。本程序采用的办法是忽略新来的消息,直到消息队列空出新的 队列数据记录,才将空出队列后产生的消息装入队列。如果这种情况发生,就会导 致队列装满后和在队列空出新的数据记录期间产生的消息不被响应和处理,这种情 况在程序实际运行中是不允许发生的。为了避免这种主程序处理的速度低于消息进 入的速度的情况,可以采取的措施有三个: (cid:122) 中断服务程序用汇编语言编写; (cid:122) 主程序消息处理部分尽量简洁; (cid:122) 设定消息队列的数据记录个数足够大。 鼠标事件 键盘事件 串口事件 尾事件指针 头事件指针 主程序读入头事 件指针所指消息 队列数据记录内 容,并把头指针向 前移动一位 消息队列 主程序 主程序根据不同的消息类 型转入相应的消息处理函 数 鼠标事件处理 键盘事件处理 串口事件处理 程序 程序 图 1 消息处理机制 程序
更多简介内容

推荐帖子

CAN总线接受到错误信息?在数据里增加CRC校验?
CAN-bus总线协议以高稳定性,高容错率而著称于世,然而仍有很多用户在使用的时候担心CAN会接受到错误的信息,在数据里增加了CRC校验的部分,这种做法是否有必要?CAN会收到错误的数据吗? 信息的传递,古往今来都是人类无比关注的一个问题。从最原始的肢体语言到高端的电子信号,信息传达的方法五花八门。而对于信息安全的追求也是从古至今未有变过,我国西周时期的《太公兵法》就有过“阴符”“阴书”的设计来
火辣西米秀 【无线连接】
走线不走心,迟早会返工
作者 | 姜杰(一博科技高速先生团队队员)   走线熙熙,汲汲交期;走线攘攘,亟亟归档。 项目伊始,高速先生的内心其实是抗拒的,因为实在看不出仿真的必要:目标信号是DDR3L,数据速率最高800Mbps,地址控制类信号走线拓扑为一拖二、T型拓扑。信号普通、速率寻常、拓扑简单。 架不住客户的一再坚持,加上前期项目介入阶段,客户言辞闪烁,提供PCB文件时也不大爽快,似乎有难
yvonneGan PCB设计
移动通信系统中常见的RF干扰原因
     可能造成射频 干扰的原因正不断增多,有些显而易见容易跟踪,有些则非常细微,很难识别发现。虽然仔细设计基站可以提供一定的保护,但多数情况下对干扰信号只能在源头处进行控制。本文讨论射频干扰的各种可能成因,了解其根源后将有助于工程师对其进行测量 跟踪和排除。   射频干扰信号会给无线通信 基站覆盖区域内的移动通信带来许多问题,如电话掉线、连接出现噪声、信道丢失以及接收语音质量很差等
Jacktang RF/无线
选对GaN功率放大器-原来设计如此简单
本帖最后由 alan000345 于 2020-5-11 11:21 编辑 GaN功率放大器由于其突出的优点应用的领域越来越多,这里给大家推荐一款高性能的宽带 GaN 功率放大器-TGA2962,助力您的新产品设计。    这款GaN 功率放大器是Qorvo最新推出的高性能宽带功率放大器 (PA)。这款功率放大器是专为通信应用和测试仪表应用而设计,拥有多项性能突破:它能够在 2-20 G
alan000345 【Zigbee 部落】
电源的PWM与PFM区别
科技的发展产生了很多的电源设计者,从事开关电源工作的工程师们,说到PWM与PFM两种控制技术应该是在熟悉不过了。他们分别在开关电源里面起着怎么的作用,占有怎样的地位?   开关电源的控制技术主要有三种:(1)脉冲宽度调制(PWM);(2)脉冲频率调制(PFM);(3)脉冲宽度频率调制(PWM-PFM).   PWM:(pulse width modulation)脉冲宽度调制  
fish001 【模拟与混合信号】
单片机基础:详解按键单击、双击、长按
前言:很多人学单片机的时候马马虎虎,许多例程都是知其然不知其所以然。这样其实是害了自己,拿来就用自然很方便,但如果不懂其中的原理,只要功能要求稍微变一点,估计你就蒙圈了。毕竟技巧是基于扎实的基础之上的! 下面这篇文章,作者是马潮老师,AVR单片机的教育者,出版过很多本书。通过一个IO口,详细讲解了按键单击、双击、长按的各种情况,适合初学者慢慢啃。 用户基本操作定义:     1。短按
fish001 【微控制器 MCU】

评论

登录/注册

意见反馈

求资源

回顶部

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })