事件是对活动发生的异步通知,可以来自用户界面、外部I/O或程序其他部分。事件主要分为以下三类:
(1)用户界面事件:包括鼠标单击、键盘按键等动作。
(2)外部I/O事件:包括数据采集完毕或发生错误时,硬件定时器或触发器发出信号等事件。
(3)其他类型的事件:可通过编程生成并与程序的不同部分通信。
LabVIEW支持用户界面事件及通过编程生成的事件,但不支持外部I/O事件。(www.xing528.com)
在由事件驱动的程序中,系统中发生的事件将直接影响执行流程,而一般的过程性程序按预定的自然顺序执行。事件驱动程序通常包含一个循环,该循环等待事件的发生并执行代码来响应事件,然后不断重复等待下一个事件的发生。程序如何响应事件取决于该事件的代码。事件驱动程序的执行顺序取决于具体所发生的事件以及事件发生的顺序。程序的某些部分可能因其所处理的事件频繁发生而频繁执行,而其他部分也可能由于相应事件从未发生而根本不执行。
另外,在LabVIEW中使用用户界面事件可使前面板的用户操作与程序框图执行保持同步。事件允许用户每当执行某个特定操作时执行特定的事件处理分支,如果没有事件,程序框图必须在一个循环中轮询前面板对象的状态,以检查有否发生任何变化。轮询前面板对象需要较多的CPU时间,且如果执行太快可能检测不到变化。通过事件响应特定的用户操作,就不必轮询前面板即可确定用户执行了何种操作。LabVIEW将在指定的交互发生时主动通知程序框图,事件不仅可以减少程序对CPU的需求、简化程序框图代码,还可以保证程序框图对用户的所有交互都能作出响应。
使用编程生成的事件,可实现在程序中不存在数据流依赖关系的不同部分之间的通信。通过编程产生的事件具有许多与用户界面事件相同的优点,并且可共享相同的事件处理代码,从而更易于实现高级结构,如使用事件的队列式状态机。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。