新闻中心

EEPW首页 > 测试测量 > 设计应用 > LabVIEW程序设计模式(五)—生产者/消费者模式(5)

LabVIEW程序设计模式(五)—生产者/消费者模式(5)

作者: 时间:2017-01-09 来源:网络 收藏



图 49 PCTest_Execute_Controller.vi
消费者循环采用典型的状态机模式,如图 50所示。使用TestItems字符串记录需要执行的vi的名字(与测试组件相对应),TestIndex表示当前运行的测试项的Index值,该值可以用于记录当前的运行状态以暂停程序的运行。


图 50 消费者循环
消费者共有3种运行状态:运行(Run)、暂停(Pause)和停止(Stop),在每一种状态下主程序前面板控件的显示均会有所不同,因此消费者会根据不同的运行状态修改生产者程序前面板上控件的属性(通过Reference)。图 51所示为Run状态的执行代码,程序首先选择当前的测试组件并且调用相应的测试代码;然后将TestIndex加1,不断地调用Run状态直至收到其它的控制指令(如Stop或Pause)或者测试项执行完毕。


图 51 消费者Run状态
整个程序的退出与其它的设计模式略有不同,其退出流程如图 52所示。关键在于确保消费者循环能够顺利退出,然后再退出生产者循环。因为消费者的Reference均是来源于生产者,一旦生产者先于消费者退出,则会导致消费者循环报错。这里重点强调退出的顺序主要是为了避免程序报错和系统资源没有释放。


图 52 退出流程
在实际应用过程中,可能会遇到更加复杂的情况,如出现多个子程序。那么主程序与各个子程序之间如何通讯呢?各个子程序之间又是如何通讯呢?事实上,只要掌握了队列的用法,这些问题就迎刃而解了。

上一页 1 2 下一页

评论


技术专区

关闭