动态事情注册可彻底操控LabVIEW发生的事情的类型和时刻。动态事情可使事情仅在应用程序的某个部分发生,也可在应用程序运行时改动发生事情的VI或控件。运用动态注册,可在子VI中处理事情而不是仅在发生事情的VI中处理事情。
处理动态注册的事情首要包括以下4个过程。
· 第1步:获取要处理的事情目标的VI服务器引证;
· 第2步:将VI服务器引证衔接至“注册事情”函数以注册目标的事情;
· 第3步:将事情结构放在While循环中,处理目标事情直至呈现中止条件中止;
· 第4步:经过撤销注册事情函数以中止事情发生。
要动态注册目标事情,必须先获取该目标的VI服务器引证。可经过翻开应用程序引证和翻开VI引证函数来获取应用程序和VI的引证。要获取控件引证,可运用特点节点查询VI的控件,或右键单击该控件、从弹出的方便菜单中挑选“创立→引证”来创立控件引证常量。
运用注册事情函数可动态注册事情,注册事情函数坐落函数选板的“编程→对话框与用户界面一事情”,拖动上下箭头可调整“注册事情”函数的巨细以显现一个或多个事情源输入端。将应用程序、VI或控件引证衔接到每一个事情源输入端,右键单击每一个输入端,从方便菜单的“事情”中挑选想要注册的事情。所能挑选的事情取决于衔接到事情源输入端的VI服务器引证类型。
“事情”方便菜单上的事情与静态注册事情时在“修正事情”对话框呈现的事情相同。“注册事情”函数履行时,LabVIEW将对每个事情源输入引证句柄相关联的目标上的事情进行注册。一旦注册了事情,LabVIEW将按事情发生的次序将事情放入行列,直到事情结构来处理这些事情。除非有另一目标在函数履行之前己经注册了事情,不然将不会发生事情。
动态事情接线端类似于移位寄存器,可右键单击事情结构并从弹出的方便菜单中挑选“显现动态事情接线端”来获取。左接线端接受事情注册引证句柄或事情注册引证句柄的簇;假如不衔接内部的右接线端,右接线端的数据将与左接线端相同。可是,可经过“注册事情”函数将事情注册引证句柄或事情注册引证句柄的簇衔接至内部的右接线端并动态地修正事情注册。
要中止发生事情,可将事情结构右侧的动态事情接线端衔接至坐落“注册事情”函数左上角的“事情注册引证句柄”输入端。“撤销注册事情”函数坐落函数选板的“编程→对话框与用户界面→事情”,其处于含有该事情结构的While循环外。“撤销注册事情”函数履行时,
LabVIEW将把该事情注册引证句柄所指定的全部事情注册撤销,毁掉与该事情注册引证句柄相关的事情行列,一起抛弃任何尚在行列中的事情。假如用户不撤销注册事情,而包括事情结构的While循环履行完毕后用户叉履行了可发生事情的操作,那么LabVIEW将无限地查询事情。假如事情已装备为将前面板确定,则此刻Ⅵ无呼应。在这种情况下,LabVIEW将在Ⅵ空闲时毁掉事情行列。