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

LabVIEW初級教程之數組和簇的詳細資料說明

評論