一種網絡數據包解析及分發方法
【技術領域】
[0001] 本發明屬于直升機綜合試驗測試通信技術領域,具體涉及一種網絡數據包解析及 分發方法。
【背景技術】
[0002] 直升機綜合試驗是直升機研制過程中的一個重要階段,目前綜合試驗包括旋翼系 統試驗、地面聯合試驗、風洞試驗、防除冰試驗等。綜合試驗測試的特點及難點包括:測試參 數類型多、測試通道多、數據采樣率范圍寬、數據處理要求多樣等。該方法是基于地面聯合 試驗測試需求開發的,設計目標是設計一套基于網絡的分布式通用測試系統。要實現該目 標,不僅需要在硬件選型及集成等方面充分考慮系統的特點及難點,在軟件設計方面同樣 如此。網絡數據包格式定義、解析及分發是測試系統軟件開發的重要內容,也是其核心技術 之一。
[0003] 現有技術中,地面聯合試驗臺根據測試參數類型的不同,采用不同的數據采集設 備,各系統工作原理及方式各異,且各自獨立,這種技術可能引起的問題有:
[0004] (1)之前采用各個硬件供應商提供的各自專用的網絡數據包格式,導致不同類型 參數的網絡數據包格式各不相同,增加了網絡數據解析的難度及工作量,解析效率也較低;
[0005] (2)傳統的網絡數據包解析方法采用將多個通道的數據緩存為多維數組的形式, 不適用于包含多種采樣率的數據包;
[0006] (3)傳統的數據解析、分發模塊設計未充分考慮模塊的通用性,難于直接將模塊移 植到其它試驗臺測試軟件。
【發明內容】
[0007] 為了解決上述問題,本發明提供了一種網絡數據包解析及分發方法,并據此,對網 絡數據包進行了格式上的設計,所述網絡數據包解析及分發方法主要包括以下步驟:
[0008] Sl、接收數據采集服務器發來的數據包;
[0009] S2、判斷接收的數據包是否有幀頭及幀尾,如果沒有幀頭和幀尾,則需將接收的數 據拼接為完整的幀,所述完整的幀還包括通道標識及對應通道內的數據;
[0010] S3、將步驟S2中的完整的幀內包含的通道標識生成一維數組A;
[0011] S4、根據步驟S3中生成的一維數組A內的通道標識判斷步驟S2中的完整的幀內是 否有客戶端需要的數據,如果有,則將客戶端需要的數據對應的通道標識生成一維數組B;
[0012] S5、根據一維數組B內的通道標識,獲取完整幀內通道標識對應的數據,并將每一 通道標識所對應的數據轉換為單精度浮點型數據,將所述單精度浮點型數據結合對應的通 道標識生成單通道一維數組Cl~Cn,其中,η為一維數組B內的數據個數;
[0013] S6、將所述η個單通道一維數組放入隊列,同時,在出隊列時,根據采樣點數對所述 任一單通道一維數組內的數據進行拼接;
[0014] S7、將由步驟S6處理后的單通道一維數組從隊列中導出,通過客戶端進行處理及 顯不O
[0015] 優選的是,在所述步驟SI中,所述接收數據采集服務器發來的數據包由客戶端通 信層接收,并傳送給所述客戶端的處理層。
[0016] 在上述方案中優選的是,在所述步驟S2中,所述客戶端設置有判斷模塊,預置有幀 頭和幀尾,當所述判斷模塊讀取所述數據包的數據時,調用所述預置的幀頭和幀尾對所述 數據包的數據進行比對判斷。
[0017] 在上述方案中優選的是,在所述步驟S4中,所述客戶端設置有通道劃分模塊,通道 劃分模塊內存儲有設備所需的通道數據,當所述通道劃分模塊讀取所述一維數組A時,調用 所述存儲的所需的通道數據,來生成一維數組B。
[0018] 在上述方案中優選的是,在所述步驟S5中,所述客戶端設置有數據轉換單元,所述 數據轉換單元的輸入端為預置的多種數據類型,所述數據轉換單元的輸出端為單精度浮點 型數據類型。
[0019] 在上述方案中優選的是,在所述步驟S7中,所述將單通道的一維數組進行輸出顯 示時,包括以下步驟:
[0020] 計算通道所需數據點數,所述通道所需數據點數是指當通道內數據需要輸出時所 需要的數據點數;
[0021 ]多個數據與通道標識所在的一維數組出序列;
[0022]將上述多個一維數組拼接,直至拼接后的一維數組的點數達到通道所需數據點 數,其中,每一個數據包內的各通道的點數為采樣率/采樣時間內發送的數據包個數,所述 采樣率為數據包內通道數據進行輸出顯示時所需要的數據量;
[0023]將拼接后的一維數組發送到客戶端顯示界面。
[0024]本發明的關鍵點在于:
[0025] 將不同類型參數的網絡數據包格式統一設置;
[0026] 將多個通道的數據緩存為一維數組,采用隊列緩存數據,克服了包含多種采樣率 的數據包無法同時解析的問題;
[0027] 該數據解析、分發模塊的設計充分考慮了模塊的通用性,可以直接將該模塊移植 到其它試驗臺測試軟件中,避免重復開發。
[0028] 本發明的有益效果:通過上述改進,有效地解決了多種測試參數類型、多測試通 道、寬數據采樣率范圍以及數據處理要求多樣等不能同時解析的問題,實現了統一解析、統 一分發,實現了系統的通用性要求,降低了試驗成本。
【附圖說明】
[0029]圖1為本發明的一優選實施例的網絡數據接收、解析及入隊列流程圖。
[0030] 圖2為本發明的一優選實施例的數據出隊列、拼接、通知流程圖。
【具體實施方式】
[0031] 為使本發明實施的目的、技術方案和優點更加清楚,下面將結合本發明實施例中 的附圖,對本發明實施例中的技術方案進行更加詳細的描述。在附圖中,自始至終相同或類 似的標號表示相同或類似的元件或具有相同或類似功能的元件。所描述的實施例是本發明 一部分實施例,而不是全部的實施例。下面通過參考附圖描述的實施例是示例性的,旨在用 于解釋本發明,而不能理解為對本發明的限制。基于本發明中的實施例,本領域普通技術人 員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。下 面結合附圖對本發明的實施例進行詳細說明。
[0032] 在本發明的描述中,需要理解的是,術語"中心"、"縱向"、"橫向"、"前"、"后"、 "左"、"右"、"豎直"、"水平"、"頂"、"底" "內"、"外"等指示的方位或位置關系為基于附圖所 示的方位或位置關系,僅是為了便于描述本發明和簡化描述,而不是指示或暗示所指的裝 置或元件必須具有特定的方位、以特定的方位構造和操作,因此不能理解為對本發明保護 范圍的限制。
[0033] 下面通過實施例對本發明做進一步詳細說明。本發明提供了一種網絡數據包解析 及分發方法,其目的在與:
[0034] (1)根據綜合試驗測試的特點,定義一種專用的網絡數據包格式,該格式適用于目 前綜合試驗不同試驗臺試驗測試,又具備一定的功能擴展性;
[0035] (2)開發網絡數據解析及分發模塊,該模塊適用于不同數據類型、不同數據采樣 率、不同數據處理要求。不需對模塊作任何改動,該模塊可直接移植到綜合試驗其它試驗臺 試驗測試軟件。
[0036] 本實施例中,網絡數據包解析及分發方法主要包括以下步驟,如圖1所示:
[0037] Sl、接收數據采集服務器發來的數據包。
[0038] S2、判斷接收的數據包是否有幀頭及幀尾,如果沒有幀頭和幀尾,則需將接收的數 據拼接為完整的幀。
[0039]需要說明的是,這里的完整的幀,即為完整的數據包,所述完整的數據包除了包含 幀頭和幀尾以外,還包括幀頭和幀尾之間的多個通道標識及對應通道的數據。例如,表1。 [0040]表1完整數據包所包含的內容
[0043] 如上表所示,所述的完整的數據包包括幀頭(55AAAA55)和幀尾(AA5555AA)、位于 兩者之間的數據包幀長度(288)、多個通道ID(通道4、通道5、通道6)以及每一個通道ID內的 多個數據。
[0044] S3、將步驟S2中的完整的幀內包含的通道標識生成一維數組A。
[0045] 比如,將表1中的通道4、通道5以及通道6三個通道的ID組合成一維數組A,A = {4, 5,6}〇
[0046] S4、根據步驟S3中生成的一維數組A內的通道標識判斷步驟S2中的完整的幀內