5.1.2 枚举和Ring控件


枚举类型

Picture
      LabVIEW开发环境提供了枚举类型的控件,用户可以从控件选板上找到它。枚举类型的引入为程序设计提供了许多意想不到的好处。

      整型数值的一个极特殊应用情况就是enum,或称为枚举类型。枚举类型是从C语言中借用来的一个概念。

      在枚举类型中,可将每个从零开始的、连续的整数值按顺序分配给一组名称或字符串。例如:红、绿、黄,就对应着0、1、2。开始、停止、纪录、打印、就分别对应于0、1、2、3。
      显然,使用文字或字符串要比使用数字更直观、方便、概念性更强。假如,你有20个朋友,你是喜欢直接用0-19个数字来代表他们,还是用名字表示他们,那个更好呢?

       我们借用A Software Engineering Approach to LabVIEW——Jon Conway一书中有关枚举的说法,来介绍枚举控件在程序设计中的一些用途:


——可以将枚举类型的控件看作下拉列表控件

——枚举型的数据类型是:U8(256)、U16(65536)、U32(更多),括号内是枚举类型可保留的元素数目

——将枚举类型控件连接到Case结构时,Case 结构中标签显示的是字符串,而不是数字

——除了递增和递减外,枚举类型可按数字方式进行算法操作

——递增和递减操作在开始和结束位置交替进行


——可将数字转换成为最接近的枚举类型数据,超出范围的数字则被设置为最后一个枚举类型数据



      除了枚举类型外,还有下拉列表(Ring)控件也有类似的功能,在LabVIEW图形化语言程序中,这两种控件的使用情况是随处可见,特别是在状态机中,枚举常数使用的更为普遍。下面看看它们在LabVIEW图形化语言VI中的几个应用实例。


枚举和Ring常数的应用实例

Picture
      在许多VI的程序框图中,枚举和下拉列表常数随处可见。在例图中,左端带有双向箭头,右端带有下拉箭头的是枚举常数;而仅右端带有下拉箭头的是下拉列表常数。
     

枚举常数在状态机中的应用实例

Picture
      枚举常数在状态机中也大量使用。在例图中,我们可以看到在不同的地方使用了四个枚举常数。

       在上面介绍枚举控件和下拉列表在程序设计中的应用,第一条就是:“可以将枚举类型的控件看作下拉列表控件” ,从例1中也看到了他们的用法比较相似,那么枚举控件与下拉表控件本质上有什么不同呢?如何在程序设计中灵活使用呢?为此我们做了一个简单的对比,请看下面的对比说明:

枚举类型

Picture
枚举类型

Ring

Picture
下拉列表

只有三种数据可做选择

Picture
      标签对应值必须为顺序整型0, 1, 2, ...(U8、U16、U32)

有多达11种数据可做选择

Picture
      可选择多种数据类型。标签对应的值可以以任何顺序存在(只要不冲突)。


Picture
      在Case中可以显示字符
      在多个Case框架中可以一次添加所有值
      字符串只有在编辑状态下才可以修改

Picture






      在Case中只能显示数字
      在多个Case框架中只能一次添加一个值
      在程序运行时也可以修改内容


      可以说:枚举类型(特别是枚举常数)在应用程序设计中使用的非常广泛,它的使用即增加了程序设计的灵活性,同时也增加了程序的可读性。


显示枚举控件和Ring控件中的内容

Picture

用字符串的方式显示枚举控件中的内容,有两种方法:

1、使用“格式化写入字符串”函数
     
“格式化写入字符串”在字符串函数板上可以找到,应用见例图。
      利用这个特性可以显示状态机所处的状态。

2、使用“属性节点”
      见例图中的:属性〉下拉列表文本〉文本
      这些简单的应用在程序设计中经常会用到,我在编程过程中曾大量的使用。




Picture
上一页
Picture
下一页

这里也可以留言,但是其他到访者将不会看到