數(shù)據(jù)分發(fā)服務(wù)(Data Distribution Service,DDS)源于美軍的數(shù)據(jù)鏈,作為網(wǎng)絡(luò)數(shù)據(jù)通訊的核心技術(shù),能可靠實時地交換分配群體數(shù)據(jù),其傳輸能力比通常的戰(zhàn)術(shù)數(shù)據(jù)鏈高幾個數(shù)量級。DDS必須確保在極少的時間和不限制網(wǎng)絡(luò)中的報告數(shù)據(jù)容量的條件下,高度可靠地傳輸數(shù)據(jù)。
大家在使用DDS傳遞數(shù)據(jù)時可能遇到過波形采樣數(shù)過大導(dǎo)致無法傳遞的情況,或者無法使用DDS傳遞Cluster的情況,今天小編將帶領(lǐng)大家一起解決這個問題,下面請跟隨小編一起來學(xué)習(xí)一下吧!
本文教程:
DDS傳遞簇與大型數(shù)組的教程
兩種情況的發(fā)生和當(dāng)前傳遞數(shù)據(jù)的數(shù)據(jù)類型有關(guān),如果使用DDS傳遞的數(shù)據(jù)類型為字符串,所有其他形式的數(shù)據(jù)類型最終都會以特定的方式轉(zhuǎn)變成字符串,再在DDS中進(jìn)行傳遞。
當(dāng)波形采樣數(shù)大于2000時,波形數(shù)據(jù)向字符串轉(zhuǎn)換時會導(dǎo)致字符串過長而無法傳遞;當(dāng)使用Cluster時,Cluster向字符串轉(zhuǎn)換的過程會發(fā)生問題,導(dǎo)致字符串?dāng)?shù)據(jù)的異常。
為了在一般環(huán)境下解決這個問題,我們就需要使用RTI DDS的工具來創(chuàng)建一些用于“傳遞特定數(shù)據(jù)類型的VI”實現(xiàn)利用DDS傳遞特定數(shù)據(jù)類型數(shù)據(jù)。
下圖為波形數(shù)據(jù)向字符串轉(zhuǎn)換的邏輯
一、解決方法:
1、RTI DDS安裝
首先我們需要安裝RTI DDS的工具包。
在VIPM中搜索“RTI DDS”在選中彈出的“RTI DDS Toolkit”然后點擊右上角的“Install”等待自動安裝。
2、創(chuàng)建一個自定義類型
若想借助 RTI DDS 的工具創(chuàng)建一個用于 “傳遞特定數(shù)據(jù)類型” 的 VI,第一步要創(chuàng)建一個自定義類型,以此作為生成 “傳遞特定數(shù)據(jù)類型” VI 的前提條件。我們以波形數(shù)據(jù)為例展開說明,它兼具大數(shù)組和 Cluster 的特性。
創(chuàng)建一個自定義類型,在項目樹“My Computer”右擊選中“New”-“Type Definition”。
在為“傳遞特定數(shù)據(jù)類型的VI”創(chuàng)建自定義類型過程中,需注意以下三點:
1、必須為自定義類型命名。
2、若自定義類型中包含數(shù)組元素,需嚴(yán)格設(shè)定數(shù)組長度,并需要設(shè)為默認(rèn)值。設(shè)定方法為:跳轉(zhuǎn)至目標(biāo)索引(如示意下圖中的10000位),隨后輸入“0”或預(yù)設(shè)的初始化數(shù)據(jù)值。注意:完成“Make Current Value Default”設(shè)置后,建議先退出編輯界面再重新進(jìn)入,以便確認(rèn)操作成功生效。
3、變體以及部分特定數(shù)據(jù)類型不可用于自定義類型之中。
3、創(chuàng)建API
RTI DDS提供了一個工具,用于創(chuàng)建“傳遞特定數(shù)據(jù)類型的VI”。單擊工具欄的“Tool”,在彈出的菜單欄中選中“RTI DDS Toolkit”-“RTI DDS ComplexType Generator…”。
在彈出的VI界面按下圖進(jìn)行配置
Type of Generation:這里選擇“Advance”(高級)。創(chuàng)建復(fù)雜數(shù)據(jù)類型一定要選這個。Simple只能創(chuàng)建一些簡單的數(shù)據(jù)類型。
Save the Type Definition:可以選擇“Yes”or“No”,取決于你是否希望生成VI的同級文件目錄下包含用于創(chuàng)建VI的自定義數(shù)據(jù)類型。
Path to the Custom Type Definition:用于選擇剛剛創(chuàng)建的自定義數(shù)據(jù)類型的文件路徑。
Output Directory:用于VI生成的文件路徑,最后所有的VI都會生成在此文件路徑下。
Generate Example VIS:決定是否生成VI范例。
Domain ID:DDS的一種屬性,這里是用于生成范例的一個參數(shù)。
Topic Name:DDS傳遞數(shù)據(jù)的一種屬性,這里是用于生成范例的一個參數(shù)。
完成配置后,單擊“Generate Code”開始生成VI。彈出如下提示,則表示生成成功。
最后在剛剛選擇的“Output Directory”文件路徑下會生成一些VI,如果“Save the Type Definition”選擇“No”,則不會出現(xiàn)“.ctl”文件。
4、范例演示
在項目中新建一個虛擬文件夾,將剛剛生成的VI全部加到項目中(如果項目中包含用于創(chuàng)建VI的自定義類型,則不要將生成的自定義類型加入,否則會沖突報錯)。
然后選擇“Write Example”以及“Read Example”,分別運行兩個VI,即可進(jìn)行數(shù)據(jù)傳遞。
5、程序解析
我們從整體結(jié)構(gòu)來看,其實DDS的讀和寫只有三個步驟:
①創(chuàng)建讀寫節(jié)點
②讀寫數(shù)據(jù)
③釋放節(jié)點
6、總結(jié)
如果我們想在一般環(huán)境下利用DDS傳遞Cluster以及大型數(shù)組,流程如下:
1、創(chuàng)建自定義類型
2、確認(rèn)自定義類型中沒有DDS不能解析的數(shù)據(jù)類型
3、確認(rèn)自定義類型中的數(shù)組已經(jīng)定義了大小
4、選擇好參數(shù)之后,利用工具創(chuàng)建VI
5、使用VI搭建功能
以上就是DDS傳遞簇與大型數(shù)組的教程的所有內(nèi)容啦,歡迎大家留言討論,交流分享!
以上內(nèi)容就是本期的全部內(nèi)容,更多關(guān)于測試系統(tǒng)中的實際軟硬件應(yīng)用知識,可關(guān)注本公眾號/下方合集,敬請期待!
-
DDS
+關(guān)注
關(guān)注
22文章
670瀏覽量
153855 -
波形
+關(guān)注
關(guān)注
3文章
386瀏覽量
32038 -
字符串
+關(guān)注
關(guān)注
1文章
589瀏覽量
21026 -
數(shù)組
+關(guān)注
關(guān)注
1文章
419瀏覽量
26324
原文標(biāo)題:教程 | DDS傳遞簇與大型數(shù)組的教程
文章出處:【微信號:華穗科技,微信公眾號:華穗科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
關(guān)于簇數(shù)組的一個問題
簇轉(zhuǎn)換為簇數(shù)組,無法轉(zhuǎn)換
數(shù)組和簇的操作
數(shù)組和簇的操作
labview的簇數(shù)組編輯
LabVIEW數(shù)組至簇轉(zhuǎn)換元素的對應(yīng)問題
創(chuàng)建簇數(shù)組不匹配的問題
Labview之創(chuàng)建簇數(shù)組
Labview之簇數(shù)組與二維數(shù)組顯示
介紹了數(shù)組和簇數(shù)據(jù)類型以及創(chuàng)建和使用數(shù)組和簇的方法

LabVIEW初級教程之數(shù)組和簇的詳細(xì)資料說明

LabVIEW初級教程之數(shù)組和簇的相關(guān)例程免費下載

評論