从子 VI 更新 LabVIEW GUI
Updating a LabVIEW GUI from a subVI
我正在编写一个程序来在 Labview 中控制两个类似的设备。为了避免复制代码,我使用了子 VI。但是我有一段代码,我在一个 while 循环中更新了 GUI 上的一些值。我想知道是否有可能以某种方式在我的子 VI 中加入这个循环,并让子 VI 在每次迭代后发送一个输出参数。
要从子 VI 中更新 GUI,您可以执行以下操作之一:
- 在顶层 VI 中创建一个 queue 或 notifier 并将引用传递给子 VI。在子VI中,将数据发送到队列或通知器。在顶层 VI 中,有一个循环等待队列或通知程序上的数据并将其写入前面板指示器。
- 为顶层 VI 中的前面板指示器创建一个 控件引用 ,并将该引用传递给您的子 VI。在子VI中,使用一个属性节点写入指标的
Value
属性
如果您查看 LabVIEW 帮助中以粗体显示的术语,您会找到有关如何使用它们的文档和示例。
在这些选项中,我会为任何数据使用队列,其中重要的是顶级 VI 接收每个数据点(例如,如果数据正在图表上绘制或记录到文件中)或通知程序用户只需要看到最新的值。为此目的使用控件引用有点 'quick and dirty' 并且会导致性能问题。
如果您需要像这样更新多个指标,您可能需要构建一个 集群,其中包含您发送到 queue/notifier 的数据,或包含控件引用。将您的集群另存为 typedef,这样您就可以在不破坏代码的情况下修改其内容。
我正在编写一个程序来在 Labview 中控制两个类似的设备。为了避免复制代码,我使用了子 VI。但是我有一段代码,我在一个 while 循环中更新了 GUI 上的一些值。我想知道是否有可能以某种方式在我的子 VI 中加入这个循环,并让子 VI 在每次迭代后发送一个输出参数。
要从子 VI 中更新 GUI,您可以执行以下操作之一:
- 在顶层 VI 中创建一个 queue 或 notifier 并将引用传递给子 VI。在子VI中,将数据发送到队列或通知器。在顶层 VI 中,有一个循环等待队列或通知程序上的数据并将其写入前面板指示器。
- 为顶层 VI 中的前面板指示器创建一个 控件引用 ,并将该引用传递给您的子 VI。在子VI中,使用一个属性节点写入指标的
Value
属性
如果您查看 LabVIEW 帮助中以粗体显示的术语,您会找到有关如何使用它们的文档和示例。
在这些选项中,我会为任何数据使用队列,其中重要的是顶级 VI 接收每个数据点(例如,如果数据正在图表上绘制或记录到文件中)或通知程序用户只需要看到最新的值。为此目的使用控件引用有点 'quick and dirty' 并且会导致性能问题。
如果您需要像这样更新多个指标,您可能需要构建一个 集群,其中包含您发送到 queue/notifier 的数据,或包含控件引用。将您的集群另存为 typedef,这样您就可以在不破坏代码的情况下修改其内容。