概述
很多簡儀的板卡支持流盤功能,即AI任務模式支持Record模式。當軟件使用該模式后,即可使用流盤功能。
如何解讀回放流盤文件?最簡單的方法就是參考簡儀為每種設備提供的C# 范例。用戶可以登錄簡儀官網https://www.jytek.com/,注冊下載簡儀大全《JYPEDIA》,在“Drivers and Software” 頁中搜索下載需要的C# 范例。簡儀提供各類語言的設備使用范例,但C# 范例具有最全的功能集合,其中包含了流盤文件解讀回放范例。其他語言開發者若也想實現流盤文件的解讀回放功能,可參考C# 范例來實現。
本文特地匯總了簡儀主流板卡的解讀回放流盤文件的方法,如下表。

如上表所展示的原始數據解讀方法,主要分為3種方法:
方法1-直接讀取Double值
這種方法最為簡單直接,由于保存的數據就是Double類型,因此只需要直接讀取就可以,多用于采樣率不高的板卡。
方法2-將Int16值轉換成Double值
這種方法將保存的Int16類型數據根據量程進行Double類型轉換。由于不同卡在設計的時候量程系數不同,因此需要查看表中的系數A和系數B來進行轉換。這種方法較多用于采樣率高的板卡中。
方法3-根據通道的標定系數轉換成Double值
這種方法需將保存的Int16或Int32數據根據每個通道對應的標定系數進行標定轉換成Double類型。好處是每個通道具有獨立的標定系數,此種方法或可能是簡儀未來發布的設備的主要解讀回放流盤文件的方法。
此3種方法的使用通常出現在解讀回放流盤文件的最后一步“將原始數據轉換為Double值”,完整的步驟為:
了解多通道數據存放順序
從流盤文件讀取原始數據
將原始數據轉換為Double值
下文將詳細介紹這幾個步驟。
了解多通道數據存放順序
無論何種數據格式(Double或Int16或Int32),多通道數據在流盤數據文件中按以下順序存放:

用戶在使用BinaryReader回讀回來后,均需要按此規律將數據歸類到各個通道。
從流盤文件讀取原始數據
根據流盤數據文件所保存的數據格式,采用合適的方法讀取數據。以下以C# 語言為例。
創建一個BinaryReader的實例

_playbackfs是FileStream類型,創建流盤文件的文件流。
_playbackbr是BinaryReader類型,基于_playbackfs創建。
讀取byte[]類型的1維數據
如果要讀取的數據元素個數為N,且數據類型為Double,那么要讀取的字節數就是N*sizeof(double),如下

playback是一個原始數據類型的2維數組。
如果是double[,]類型,則是double[每通道樣本數,通道數]
如果是Int16[,]類型,則是Int16[每通道樣本數,通道數]
buf是byte[]類型,即讀到的數據,是個1維數組。
根據通道和原始數據類型數轉為2維原始數據
為了方便區分各個通道數據,通常還需要將上一步驟中讀取到的byte[]類型的1維數據轉換為多維的原始數據。用戶可以根據上一節“多通道數據存放順序”所描述的方法來轉換,或直接使用C# 中的Buffer.BlockCopy方法。

playback是一個原始數據類型的2維數組。
如果是double[,]類型,則是double[每通道樣本數,通道數]
如果是Int16[,]類型,則是Int16[每通道樣本數,通道數]
將原始數據轉換為Double值
將原始數據轉換為Double值有三種方法,以下詳細說明這三種方法的實現。
方法1-直接讀取Double值
前提條件:通道數量
方法:按照多通道存放順序讀取Double類型數據即可。可參考范例”Winform AI Data Playback”,以5500系列為例,如下方代碼:

其中:
buf是byte[]類型
playback是double[,]類型
_playbackbr是BinaryReader類型
方法2-將Int16值轉換成Double值
前提條件:通道數量,所用量程,系數A和系數B(查閱本文開篇表格,或參考查閱范例)
方法:按照多通道存放順序讀取Int16數據,并參考范例“Winform AI Data Playback”。以5320系列為例,A是0x7FFF而B是1,如下方代碼:

其中:
buf是byte[]類型;
rawData是short[,]類型;
_playbackbr是BinaryReader類型;
playData是double[,]類型;
0x7FFF是系數A
scaleValue=所用量程*系數B
方法3-根據通道的標定系數轉換成Double值
前提條件:保存原始數據類型(Int16或Int32),通道數量,所用標定系數(在AI任務啟動前,通過GetScalingCoefficients方法獲取。該函數返回值為ScalingCoefficients類型的數組。包含了每個通道的Gain和Offset標定系數)
方法:根據保存的原始數據類型,按照多通道存放順序讀取原始數據,并利用每個通道的Gain和Offset系數對原始數據進行重新的標定。
則轉換方法是

其中:
readValue是double[],是某個通道的轉換后的Double類型數組;
readRawValue是Int16[]或Int32[],是某個通道的原始數據,其數據類型取決于流盤時設置的保存的數據類型。
scalingCoefficients是ScalingCoefficients[],這個值需要用戶在流盤時記錄下來。通過AI任務的GetScalingCoefficients()方法獲取。
-
AI
+關注
關注
91文章
39755瀏覽量
301352 -
板卡
+關注
關注
3文章
176瀏覽量
17482 -
文件
+關注
關注
1文章
594瀏覽量
26054
原文標題:測量小百科 | 如何解讀回放流盤文件
文章出處:【微信號:簡儀科技,微信公眾號:簡儀科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
如何解讀運放數據規格書
STM32F107VCT6使用USB HOST OTG掛載U盤連續讀寫文件錯誤是怎么回事?如何解決?
系統設計人員如何解讀產品說明書規范
電腦c盤那些文件可以刪除_電腦c盤滿怎么擴大
MXNet源碼解讀筆記一 ---- 如何解析參數文件
u盤插在電腦上不顯示怎么回事?如何解決?
BOM與焊盤為什么不匹配?
水庫增殖放流站物聯網智慧管理系統方案
使用簡儀科技產品構建高速數據流盤與回放系統解決方案
如何解讀回放流盤文件
評論