×
测量测试 > 测试测量应用 > 详情

LabVIEW程序设计模式(三)—用户界面事件模式

发布时间:2021-01-25 发布时间:
|
针对基本状态机模式的第(4~5)个问题,需要对模式进行改进。本节将一一分析这些问题对应的解决方案,并最终形成一种新的状态机模式——用户界面事件模式。
  1. 程序一直在占用CPU资源。
  2. 无法响应更多的前面板事件。
熟悉LabVIEW的工程师应该能够很容易地解决这两个问题,在LabVIEW 7.0以后的版本中提供的事件结构(Event Structure)能够让我们非常便捷地处理这两类问题。
在LabVIEW中事件结构的使用并不是一件难事,根据事件的发出源,事件可以抽象地分为用户界面事件和用户自定义事件。相关的基本知识可以参考有关的书籍,这里不再阐述事件结构的使用方法。
图 14所示的结构称为用户界面事件模式,它能够很便捷地响应各种事件并且不占用CPU的资源,这是由LabVIEW中事件结构本身的特性决定的。


图 14 用户界面事件模式
【应用3】
本例要模拟一个简单的画图板功能。它有4个功能选项:点(point)、线(line)、圆(circle)和椭圆(oval),一次完成的绘画过程是:在画布上单击鼠标开始绘制→按住鼠标的同时在画布上拖动鼠标→在画布上放开鼠标结束绘制。
程序的前面板如图 15所示,由上下两大部分组成。上面用于选择需要画图的样式,下面是画布,右上方的X表示程序的结束。


图 15 画图板前面板
由于系统需要响应鼠标在画布上单击、移动和释放事件,因此使用状态机模式是无法解决的,只能通过事件结构。因此本例将使用用户界面事件模式实现上述的画图板功能。
程序的背面板如图 16所示。共有4个事件。
  1. Panel Close?:响应前面板的X动作,这是一个过滤性事件,当事件发生时并不真正关闭前面板而只是停止程序的运行。
  2. Picture :表示绘画的开始。
  3. Picture :表示绘画的路径和轨迹。
  4. Picture :表示绘画的结束,此时一定要加入事件,因为当鼠标移动到画布的外面时就可以认为是绘画结束了,并不需要一定要求鼠标在画布中释放。


图 16 画图板背面板
Picture 事件如图 17所示,这个步骤表示绘制的开始,每次的绘制都必须从这个步骤开始。事件分支左侧的Button参数表示单击鼠标的键位,只有在单击鼠标左键时才被认为是合理的和有效的,当单击其它的键位时并不开始绘制。在有效绘制中,需要将画笔移动到鼠标当前单击的位置。当选择的画图模式是Line、和Point时,使用Draw point.vi函数可以在当前的位置上画一个点并且将画笔移动到当前位置。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
基于凌华科技PCI-9846和LabVIEW数据采集分析系统