微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 关于labview的队列的简单领悟

关于labview的队列的简单领悟

时间:01-09 来源:互联网 点击:
无意中发现,labview中的队列在编程中简约且实用。用白话描述一下队列就是:创建一个栈,先入先出的栈,通过元素如队列将该元素压进栈,通过元素出队列将元素弹出。同时,可以设置队列的大小,当队列满的时候,协调队列的输入和输出,让输入(也就是元素如队列)等待,直到出现了存储空间,才执行输入。

下面是队列的函数,包括:


我们看一个典型应用:(这个是labview帮助里面的例子)




前面产生一个随机数,压进队列,后面的循环从队列中读出元素。这两个循环可以设置不同的循环时间。

当入队列的时间快于出队列的时间,队列很快就会满掉,此时,队列调节入队列循环等待,当有空间时,执行如队列循环。当入队列时间小于出队列时间时,后一个循环等待队列中存在元素时,才能够读取元素(元素出队列)。

t入

反之:



队列先解释道这了。

我现在就想试试字符串是不是可以压进队列,同时读出来会是什么样子。下面的实验就是:

我谢了这样的一段代码,是想让字符串输入队列再读出来。框图如下:


发现这段代码执行不下去。一直在执行但是不能结束。

经过分析,我认为是这样的:由于我把队列的大小设置成为2,而我需要雅茹三个元素,所以,必须等待有一个元素被读取之后,才能将第三个元素压进去。而我设计的这个程序有问题,问题在于:我的后一个循环的队列引用是从第一个循环传过来的,第一个循环没执行完,那么第二个循环就无法执行。但是第一个循环要想结束,必须需要将第三个元素压入,但是条件是第二个循环读出来一个元素。他们互相限制,自然就死循环了。

于是把程序框图改成:


队列引用菜前面直接引过来,就不会出现这样的问题。并且所有的三个元素没有丢失。能够全部压进队列并被独取出来。

另外:如果设置的是字符串的话,确实是以字符串为单位的。压入的时候什么样子,读出来就是什么样子。就像一个字符串数组一样。

OVER

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top