4.1.1 枚举类型(Enum)、和下拉列表型控件
整型数值的一个极特殊应用情况就是enum,或称为枚举类型。枚举类型是从C语言中借用来的一个概念。
在枚举类型中,可将每个从零开始的、连续的整数值按顺序分配给一组名称或字符串。例如:红、绿、黄,就对应着0、1、2。开始、停止、纪录、打印、就分别对应于0、1、2、3。
显然,使用文字或字符串要比使用数字更直观、方便、概念性更强。假如,你有20个朋友,你是喜欢直接用0-19个数字来代表他们,还是用名字表示他们,那个更好呢?
LabVIEW图形化语言提供了枚举类型的控件,用户可以从控件选板上找到它。枚举类型的引入为程序设计提供了许多意想不到的好处。我们借用A Software Engineering Approach to LabVIEW——Jon Conway一书中有关枚举的说法,来介绍枚举控件在程序设计中的一些用途:
——可以将枚举类型的控件看作下拉列表控件
——枚举型的数据类型是:U8(256)、U16(65536)、U32(更多),括号内是枚举类型可保留的元素数目
——将枚举类型控件连接到Case结构时,Case 结构中标签显示的是字符串,而不是数字
——除了递增和递减外,枚举类型可按数字方式进行算法操作
——递增和递减操作在开始和结束位置交替进行
——可将数字转换成为最接近的枚举类型数据,超出范围的数字则被设置为最后一个枚举类型数据
除了枚举类型外,还有下拉列表控件也有类似的功能,在LabVIEW图形化语言程序中,这两种控件的使用情况是随处可见,特别是在状态机中,枚举常数使用的更为普遍。下面看看它们在LabVIEW图形化语言VI中的几个应用实例。
例1、随处可见的枚举常数和下拉表常数
在许多VI的程序框图中,枚举和下拉列表常数随处可见。在例图中,左端带有双向箭头,右端带有下拉箭头的是枚举常数;而仅右端带有下拉箭头的是下拉列表常数。
例2、状态机中使用的枚举常数
枚举常数在状态机中也大量使用。在例图中,我们可以看到在不同的地方使用了四个枚举常数。
在上面介绍枚举控件在程序设计中的用途中,第一条就是:“可以将枚举类型的控件看作下拉列表控件” ,从例1中也看到了他们的用法比较相似,那么枚举控件与下拉表控件本质上有什么不同呢?如何在程序设计中灵活使用呢?根据我的了解做了一个简单的对比,请看下面的对比说明:
可以说:枚举类型(特别是枚举常数)在应用程序设计中使用的非常广泛,它的使用即增加了程序设计的灵活性,同时也增加了程序的可读性。关于它的其它方面应用实例,也可参考 《A Software Engineering Approach to LabVIEW》——Jon Conway一书中有关枚举的介绍。
显示枚举控件的内容
用字符串的方式显示枚举控件中的内容,有两种方法:
1、使用“格式化写入字符串”函数
“格式化写入字符串”在字符串函数板上可以找到,应用见例图。
利用这个特性可以显示状态机所处的状态。
2、使用“属性节点”
见例图中的:属性〉下拉列表文本〉文本
这些简单的应用在程序设计中经常会用到,我在编程过程中曾大量的使用。