5.2 LabVIEW 设计模式——主/从设计模式和生产者/消费者设计模式 在上一节中曾经谈到过,NI LabVIEW 中提供了六种最基本的设计模式。本节首先介绍其中的两种: 主/从设计模式与生产者/消费者设计模式(Master/Slave design pattern and Producer/Consumer design pattern)。这是由于这两种设计模式在结构上极为相似(使用的内置函数不同),所以我们在这里将一起来讨论(基本结构参见图 5.2-1、图 5.2-2)。 图 5.2-1 主/从设计模式 图 5.2-2 生产者/消费者设计模式 5.2.1 主/从设计模式(Master/Slave design pattern) 与主/从设计模式的相关内置函数(Notifier_通知)参见下图所示。 图 5.2.1-1 主/从设计模式内置函数(通知) 关于这些内置函数的定义和使用方法请参考LabVIEW Help 文件,这里就不再进行讨论了。 对于绝大多数LabVIEW 的学习者来讲,仅仅依据这些主/从操作提供的内置函数(通知),即便是借助于帮助文件也很难理解和设计出正确的应用程序代码或基本架构。因为 这些内置函数的内部程序代码是不对外开放的、不公开的,所以我们也就很难理解的更准确或更全面。 那么如何正确的使用它们呢? 通常有两个最简单、最直接的方法可以解决这个问题:一是,查看 NI 给出的设计模式或例程;二是,查看其它使用者所提供的实用例程。 其实,这里也再次间接的告诉大家,更多查看和理解其它 LabVIEW 开好者所提供的实用例程是学习LabVIEW 的最好方法之一。 通过图 5.2-1,就可以初略地领会到NI 基于数据流的图形化代码主/从设计模式的表达形式或架构。 从图 5.2-1 中,可以看到主/从设计模式的基本构成是:包括了两个While 循环(上面为主循环、下面的为从循环)和若干个“通知”内置函数(Notifier)构成。主 循环中的Case 结构用来确定是否向从循环发出通知。 该设计模式支持图形化代码的多种数据类型的数据输入(图 5.2-1 中的数据类型为:字符串);并且用一个Stop 按键来控制这两个While 循环的停止。 如果用“高亮执行”方式来查看它的数据流运行状态时,我们会发现:当主循环中的Case 结构的条件输入端为:F 时,主循环不会发出通知,从循环也不执行任何操作; 当主循环中的Case 结构的条件输入端为:T 时,主循环发出通知,从循环执行相应的操作。当我们按下“Stop”键时,主循环停止并利用错误簇(表现为:出现错误)通知 从循环也停止。 主/从设计模...