新聞中心

EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > labview的數(shù)據(jù)類型----無所不在的類型描述符 TYPE DESCRIPTOR

labview的數(shù)據(jù)類型----無所不在的類型描述符 TYPE DESCRIPTOR

作者: 時(shí)間:2017-01-09 來源:網(wǎng)絡(luò) 收藏
大家都知道,LV是基于數(shù)據(jù)流的圖形編程語言.我們在單步監(jiān)視LV的運(yùn)行時(shí),在連線的任何一處查看的它的數(shù)據(jù)都是相同的,確實(shí)有點(diǎn)數(shù)據(jù)流動(dòng)的意思.

LABVIEW的連線顏色,線條粗細(xì)代表不同的數(shù)據(jù),差別很大的兩種類型是無法連接到一起的,可見,LV在任何時(shí)刻都知道正在流動(dòng)的數(shù)據(jù)類型,它是通過什么實(shí)現(xiàn)的那?

本文引用地址:http://butianyuan.cn/article/201701/337209.htm

答案是:類型描述符.TYPE DESCRIPTOR

類型描述符包括那些內(nèi)容那,我們從最簡單地BOOLEAN看一下



LABIEW隨時(shí)維護(hù)一個(gè)存儲結(jié)構(gòu),其中包括類型描述符,可以看出,BOOLEAN的存儲結(jié)構(gòu)是一個(gè)I16數(shù)組,目前共有四個(gè)元素,

0x08 0x4021 0x0343 0x4243

第一個(gè)I16是長度字節(jié):4*2BYTE=8 BYTE

第二個(gè)I16是分成高位字節(jié)和低位字節(jié)兩部分:40和21(HEX),其中40是LV保留部分,21是BOOLEAN的類型碼,類型碼是一一對應(yīng)的(TYPE CODE)

第三個(gè)元素高位字節(jié)表示控件名字的長度,低位字節(jié)是名字第一個(gè)字母的ASCII,接下來是第二個(gè)字母和第三個(gè)字母.

這里 把長度和類型碼合在一起稱做類型描述符(TYPE DESCRIPTOR)

TYPE DESCRIPTOR:


所以類型描述符中包括了控件數(shù)據(jù)的類型和這個(gè)存儲結(jié)構(gòu)總長度,可以看出,我們例子中的BOOLEAN名稱是ABC,對應(yīng)的ASCII分別是41,42,43.我們知道,BOOLEAN在內(nèi)存中占一個(gè)字節(jié),類型描述符中沒有它的值,它的值體現(xiàn)在它所占的內(nèi)存字節(jié)中,該字節(jié)為0,則為FALSE,該字節(jié)非0,則為TRUE.

在看看標(biāo)量數(shù)值類型


U8: 0X0008 0X4005 0X0255 0X3800

8*2BCODE=052 CAHR 55->U 38->8

U16:0X0008 0X4006 0X355 0X3136

8*2BCODE=063 CAHR 55->U 31->1 36->6

DBL: 0X0008 0X400A 0X0344 0X424C

8*2BCODE=0A3 CAHR 44->D 42->B 4C->L


其他數(shù)值標(biāo)量也完全相似.它的存儲結(jié)構(gòu)包括類型描述符(長度和類型碼),名稱長度和名稱的ASCII串.

ENUM和RING本質(zhì)上也是數(shù)值數(shù)據(jù)類型,不過它包含了復(fù)雜的名稱,先看看ENUM.


可以看到,數(shù)據(jù)總長度是0x16,類型碼是0x16,0x04表示ENUM共包括四個(gè)元素,0x0241中0X02表示第一個(gè)元素名稱長度是2個(gè)字符,分別是0X41,0X41 (AA),依次,第二個(gè)元素是0X42 0X42(BB),第三個(gè)元素是0X43 0X43(CC),第四個(gè)元素是0X44,0X44(DD),最后0X0341中的高字節(jié)0X03表示枚舉的名稱字符傳長度是3個(gè)字節(jié)(字符),分別是0X41,0X42,0X43,就是ABC.


上一頁 1 2 下一頁

評論


技術(shù)專區(qū)

關(guān)閉