当前位置:首页 > 测试测量 > 测试测量
[导读]先了解控件和数据类型的关系。LV控件面板上的图标都是典型的控件,说通俗一些,控件就是一个包含很多属性的容器,值是控件的一个属性,如下图所示的数字输入控件,值的数据类型就是控件所代表的数据类型,描述一个控

先了解控件和数据类型的关系。LV控件面板上的图标都是典型的控件,说通俗一些,控件就是一个包含很多属性的容器,值是控件的一个属性,如下图所示的数字输入控件,值的数据类型就是控件所代表的数据类型,描述一个控件是通过类型描述符实现的,包括控件的名称、控件类型及控件所代表的数据类型等等。了解LV的数据类型是非常有必要的。特别是使用DLLs(shared libraries)、CINs(code interface nodes)或需要利用文件I/O往文件写入/读取二进制数(binary data)的用户,更有必须了解数据结构类型及在内存中存储格式。

数据类型之一——数字(Numeric)

包括:byte、word、long、SGL、DBL等

数据类型之二——数值型数组(Array)

存储为一个句柄(handle,指针的指针),指向的结构包括一个数值(I32)和一个数组,数值表达数组的大小,数组的元素表达每一个数字,这些数字在内存中连续存储。

提示:为了正确对齐数字,在第一个数字前可能需要附加一些字节数。当句柄为0,则是空数组。下列两图分别描述一维单精度(SGL)浮点数组、四维字整数(I16)数组,左边的数字代表偏移(offset)数组在内存起始存储位置的字节数。

其他数据类型

布尔、字符串、字符串数组、簇、路径

布尔(Boolean)型数据是字节型数据,存储为8位数值(一个字节),数值0表示False,其余数值代表True。布尔数组的存储格式如下图所示:

字符串(string)是一个字符型数组,存储为一个句柄(handle),指向的结构包括一个数值和一个数组(与数值型数组相同)。数组每个成员表达一个字符,数值表达数组长度。

字符串数组(Array of Strings)是非常特殊的数据类型,这也是CLF和CIN的难点。字符串在内存中是连续存储的,但是,字符串数组却与一般连续存放的二维数组不同,其元素(字符串)是以长度开头连续存储的,而字符串数组本身是存储在内存中另外位置的。(通过句柄与字符串建立联系)

提示:

1:和其他类型的数组一样,字符串数组也是以I32长度开头的,接下是每个字符串的首地址指针(句柄)——U32数值,表示字符串在内存中的地址(第一个字符)。由于字符串数组需要从内存的不同区域访问字符串(连续存储),会耗费更多的时间,因此,用一个长的字符串代替字符串数组,程序会更加高效。

2:LV是以句柄(Handle)描述数组和字符串,Handle本身是U32,占四个字节,它包含的内容是指向一个数据结构的指针,因为数据结构在内存中是可以重新分配的,所以它的地址会经常发生变化,而Handle的地址是不会变化的,通过Handle就可以跟踪数据结构。另外,对于每个数组和字符串,在长度信息之前还有一个16个字节的头部信息,(LV内部使用,类型描述符),因此一个最简单的数组至少占24个字节:HANDLE(U32)+HEADER(16Byte)+SIZE(I32)=24 BYTE。

簇是一种数据类型,一个簇是一个由若干数据类型的成员组成的集合体,类似于C语言中的结构体和Pascal语言中的记录。簇的成员有一种逻辑上的顺序,这是由它们放进去的先后顺序决定的,与它们在簇中摆放的位置无关。前面的成员被删除时,后面的成员会递补。改变簇成员逻辑顺序的方法是在簇上弹出快捷菜单,选Reorder Controls In Cluster…弹出一个对话框,为簇成员设置新的逻辑顺序。

在内存中,簇直接存放标量数据(numeric)。对于数组、字符串或路径,簇只是存储这些数据类型的的首地址指针。不同操作平台(OS)在数据对齐有所差异,为确保存储数据的第一个元素对齐,可能需要往这个元素前添加一些字节数。下列图形显示一个簇(元素包括单精度浮点数、扩展精度浮点数和一个指向一维无符号字整型数组的首地址指针)在不同操作系统下的存储格式。

提示:簇可以直接嵌套簇,簇间接存储的数据(指针)只有数组、字符串或路径这三种数据类型。下图显示簇(元素两个标量数字加一个数组)和簇(元素为一个带两个标量数字的簇和一个数组)具有相同的存储方式。

路径

路径:使用标准的Windows语法,可以使用相对路径和绝对路径。存储为路径类型、路径成员数和路径成员。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭