新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 解碼labview讀寫(xiě)二進(jìn)制文件格式

解碼labview讀寫(xiě)二進(jìn)制文件格式

作者: 時(shí)間:2017-01-05 來(lái)源:網(wǎng)絡(luò) 收藏
一直覺(jué)得NI很惡心,最近越發(fā)覺(jué)得惡心,竟知道騙錢(qián),我花了2周去探它該死的數(shù)據(jù)格式,問(wèn)他們售后居然說(shuō)不知道...還得我親自動(dòng)手...現(xiàn)在把數(shù)據(jù)格式寫(xiě)下來(lái),為大家做點(diǎn)貢獻(xiàn)吧...
關(guān)于用matlab/vc讀二進(jìn)制文件 write to binary file的數(shù)據(jù)
NI可以直接用這個(gè)函數(shù)把數(shù)據(jù)寫(xiě)下來(lái),但是讀取格式不告訴你,要你用它的軟件去讀...
讀的方法:
1) 用uchar去讀,將數(shù)據(jù)轉(zhuǎn)置存儲(chǔ);
2)用浮點(diǎn)去讀,倒序;--------這些在網(wǎng)上可以查到,下面才是關(guān)鍵....
對(duì)64位數(shù)據(jù):
3)每個(gè)通道有21個(gè)數(shù)據(jù)是頭文件,即21*64bit的頭信息,可以不去管它,跳過(guò);

4)除了頭文件外,每個(gè)通道還有1-3個(gè)字節(jié)的信息(不知道什么玩意兒),要跳過(guò);具體來(lái)講是這樣,如果有6個(gè)通道,第一個(gè)通道存儲(chǔ)了1個(gè)字節(jié),要扣除;第2,4,5個(gè)通道多了2個(gè)字節(jié),要扣除;第3,6通道多了3個(gè)字節(jié)要扣除.但是必須從3開(kāi)始扣.即假如總共N字節(jié)數(shù)據(jù),則第一個(gè)通道讀N-3個(gè),接下來(lái)2,4,5要讀N-4個(gè),剩下的3,6要讀N-5個(gè).只有這樣才能正確的讀取.不過(guò)要注意數(shù)據(jù)倒序的問(wèn)題,實(shí)際的數(shù)據(jù)可能正好通道順序相反.
5)剩下的就是編程的問(wèn)題了,還有很多細(xì)節(jié)大家可以自己解決,再看怎么要內(nèi)存最小,耗時(shí)最短...
我是沒(méi)有在NI的說(shuō)明文檔里面找對(duì)相關(guān)的數(shù)據(jù)存儲(chǔ)格式,這里是6個(gè)通道的舉例,要是5個(gè)通道又得慢慢試了...
再來(lái)一句,NI真惡心,其實(shí)沒(méi)必要保留數(shù)據(jù)格式...搞的人家都要用它的軟件...


評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉