如何正确地将颜色信息从Teststand传入LabVIEW或是LabWindows/CVI的代码模块中?



主要软件:
主要软件版本: 4.0
主要软件修正版本: N/A
次要软件: LabVIEW Development Systems>>LabVIEW Professional Development System

问题: 如何最佳地实现将由4位整形数表示的颜色信息传入LabVIEW或是LabWindows/CVI编写的代码模块中?

解答: 颜色信息一般为4位整数的形式,通常使用小端序以及大端序的格式。Windows,ActiveX以及Teststand中使用小端序格式,按照0x00BBGGRR字节的格式存储红、绿、蓝三种颜色的信息。而LaBVIEW以及LabWindows/CVI则使用大端序的格式存储三种颜色分量的信息。

TestStand提供一系列的颜色常量,例如tsCyan or tsDarkBlue。由于Teststand采用小端序,红色(tsRed)的整数数值为0x000000FF。然而,由于 LabVIEW及LabWindows/CVI are为大端序,0x000000FF实际上表示的是蓝色,红色则是由0x00FF0000来表示。

因此,如果要正确地在Teststand以及利用NI的应用程序开发环境编写的代码模块之间传递颜色信息,需要转换代表颜色的整数的字节顺序。

最简单的实现方法是在Teststand中使用表达式ConvertColor(tsRed)。例如,我们在传递给LabVIEW的代码模块的输入参数中输入ConvertColor(tsRed),则LabVIEW中即可正确地呈现的代表红色(0x00FF0000)的数据。

另外一个方法是在代码模块中使用可实现转换功能的相关函数。在LabVIEW中,可以通过使用Color to RGB.vi以及RGB to Color.vi这两个函数实现,函数以及接线方式如下图所示。

VI Snippet: Passing Color to LabVIEW

此外,下方附件中的子VI可以在LabVIEW编写的代码模块中调用,可简单易用地实现颜色信息大小端转换的功能。



相关链接: TestStand 4.2 Help: Color

附件:
ConvertColor.vi




报告日期: 10/04/2010
最近更新: 05/02/2017
文档编号: 5E3AI234