<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > LabVIEW中測(cè)試測(cè)量數(shù)據(jù)的存儲(chǔ)(4)

          LabVIEW中測(cè)試測(cè)量數(shù)據(jù)的存儲(chǔ)(4)

          作者: 時(shí)間:2017-01-06 來源:網(wǎng)絡(luò) 收藏
          針對(duì)于測(cè)試測(cè)量行業(yè)的數(shù)據(jù)存儲(chǔ)LabVIEW提供了數(shù)種不同的文件格式,先來介紹一下LVM格式。

          LVM(LabVIEW Measurement File)總體來說是一種比較輕量級(jí)的文件格式。它基于ASCII編碼,用一般的文本編輯器打開都能看懂。當(dāng)然,這個(gè)特點(diǎn)優(yōu)劣參半,非二進(jìn)制代碼的文件,總體來說性能較低,并且不夠緊湊(即存儲(chǔ)相同信息量,文件稍大)。所以,LVM文件格式適用于對(duì)性能、文件大小并不具有太高要求的情形。

          本文引用地址:http://www.ex-cimer.com/article/201701/337029.htm

          上圖顯示的就是用普通的文本編輯器打開一個(gè)LVM文件的情形。可以看到第11行文字為"***End_of_Header***",可見lvm文件具有header信息,header中的每一行都是一個(gè)鍵值對(duì),表示該文件的一個(gè)屬性,屬性名與屬性值之間目前以Tab分開。

          第13行開始就是文件的主體部分,LVM文件中也有類似于"segment"的概念。每次往相同的文件中寫入信息都會(huì)往這個(gè)文件的末尾增加一個(gè)segment。segment也可以含有自己的header,header中自然也是存著針對(duì)于這個(gè)segment的屬性信息。在segment的header之后就是真正的原始數(shù)據(jù)。比如一個(gè)波形圖的數(shù)據(jù)。在上圖中,我們存儲(chǔ)了一個(gè)一維數(shù)組的數(shù)據(jù)。LVM文件最多可以支持二維數(shù)組的數(shù)據(jù),如果打開存儲(chǔ)二維數(shù)組的LVM文件,其原始數(shù)據(jù)部分看起來會(huì)與上圖稍有不同,很像一個(gè)excel中存儲(chǔ)的數(shù)據(jù)。

          在LabVIEW中操作LVM文件格式的API主要是Read/Write Measurement File,如下圖所示:

          LVM文件還有一個(gè)缺點(diǎn),就是header中的屬性是固定的,僅通過LabVIEW的API并不能增加用戶自定義的屬性,這是一個(gè)限制。當(dāng)然,不排除這樣的情況:用戶自己用文本編輯器打開LVM文件,向其中寫入或者修改一些屬性。

          世上沒有完美的文件格式。LVM文件格式也有其自己的優(yōu)缺點(diǎn),有其獨(dú)特的應(yīng)用條件。并不能根據(jù)某個(gè)單一的指標(biāo)判斷它是好是壞,使用時(shí)應(yīng)先判斷自己的應(yīng)用要求,作出合適的選擇。



          評(píng)論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();