3.4 簇型数据
与数组类似,簇也是LabVIEW中一种集合型的数据结构,它对应于C语言等文本编程语言的结构体变量。很多情况下,为了便于引用,需要将不同的数据类型组合成一个有机整体。例如,一名学生的姓名、性别、年龄、成绩等数据项,都与这名学生有关,只有把它们组合成一个组合项才能真正详尽地反映情况。簇正是这样的一种数据结构,它可以包含很多种不同类型的数据,而数组只能包含同一类型的数据。可以把簇想象成一束电缆束,电缆束中每一根线代表一个元素。
3.4.1 簇的创建
簇的创建方法与数组类似。簇位于控件选板中的“新式→数组、矩阵与簇”子选板中,将其拖入前面板中,可以看到一个空簇,如图3-26所示。在簇中可以添加不同对象。图3-28中的簇是在其中添加了数组、布尔和字符串控件。
在程序框图中创建簇的方法与在前面板中创建簇的方法相同,读者可以自己进行尝试。
3.4.2 簇函数
簇函数位于函数选板下“编程→簇、类与变体”子选板中,如图3-27所示。
图3-26 在前面板中创建簇
图3-27 簇函数选板
下面对常用的簇函数的使用进行详细的介绍。
(1)按名称解除捆绑
“按名称解除捆绑”函数的功能是根据名称有选择地输出簇的内部元素,其中元素名称就是指元素的标签。
如图3-28所示,在前面板中创建一个簇,簇中包含数组、滚动条和字符串三个数据。将“按名称解除捆绑”函数拖放于程序框图中,初始情况下只有一个输出接线端,类型默认为簇中第一个输入数据类型,可通过单击该端口选择希望解除捆绑的数据类型,或者在函数图标中下拉图标边框以改变输出数据端口数量来同时对原簇数据中的几个值进行解除捆绑。
图3-28 “按名称解除捆绑”函数的使用
(2)按名称捆绑
“按名称捆绑”函数的接线端子如图3-29所示,其功能是通过簇的内部元素来给簇的内部元素赋值。参考簇是必需的,该函数通过参考簇来获得元素名称。
与“按名称解除捆绑”函数类似,图3-29所示的前面板上簇中有数值、布尔和字符串3个数据。将“按名称捆绑”函数拖放至程序框图中时,默认只有一个输入接线端,当其输入簇端口接入簇数据时,左侧的接线端口默认为第一个簇数据类型,本例中为数值。可以通过单击该端口选择希望替换的数据类型,并输入替换值,也可以利用函数图标下拉通过改变替换元素数量来同时对原簇数据中的几个值进行替换。本例中对字符串型和布尔型数据进行了替换。
图3-29 “按名称捆绑”函数的使用
(3)解除捆绑
该函数的功能是解开簇中各个元素的值。默认情况下,它会根据输入簇自动调整输入端子的数目和数据类型,并按照内部元素索引的顺序排列。每一个输出接线端对应一个元素,并在接线端上显示出对应元素的数据类型。同时,接线端上数据类型出现的顺序与簇中元素的数据类型顺序一致,但是可以选择输出元素的个数。该函数的应用较简单,此处不再举例。
(4)创建簇数组
“创建簇数组”函数的功能是将每个组件的输入捆绑为簇,然后将所有组件簇组成以簇为元素的数组。每个簇都是一个成员。
如图3-30所示,首先需要将输入的2个一维数组转成簇数据,然后再将簇数据组成1个一维数组。生成的簇数组中有两个元素,每个元素均为一个簇,每个簇则含有1个一维数组。在使用簇数组时,要求输入数据类型必须一致。
图3-30 “创建簇数组”函数的使用
(5)簇至数组转换/数组至簇转换
“簇与数组转换”函数的功能是将相同数据类型元素组成的簇转换为数据类型相同的一维数组;“数组至簇转换”函数的功能是将一维数组转换为簇,簇元素和一维数组元素的数据类型相同。可通过右击函数,从快捷菜单中选择簇的大小,设置簇中元素的数量。
默认的簇有9个元素,因此在使用“数组至簇转换”函数时,在创建的空簇中必须放入9个元素,当输入数组的值不足9个时,簇则默认为0。可以通过右击函数图标选择“簇大小”项来更改簇元素的个数,最大可达到256个。
(6)变体
“簇函数”选板的最后一个图标为“变体属性”函数。该函数用来添加、获取和删除LabVIEW变体的属性,以及操作变体数据。“变体属性”函数中各个子函数的主要功能如下。
1)转换为变体:将任意LabVIEW数据转换为变体数据。也可用于将ActiveX数据转换为变体数据。
2)变体至数据转换:将变体数据转换为可为LabVIEW所显示或处理的LabVIEW数据类型,也可用于将变体数据转换为ActiveX数据。
3)平化字符串至变体转换:将平化数据转换为变体数据。
4)变体至平化字符串转换:将变体数据转换为一个平化的字符串以及一个代表了数据类型的整数数组。ActiveX变体数据无法平化。
5)获取变体属性:根据是否连接了名称参数,从某个属性的所有属性或值中获取名称和值。
6)设置变体属性:用于创建或改变变体数据的某个属性或值。
7)删除变体属性:删除变体数据中的属性和值。