網絡無線偵察接收機軟件系統的設計和實現
為了從無線電信號中獲取對方的信息而對通信信號進行搜索、截獲、測量、分析、識別、監視以及對輻射源測向和定位,以獲取其技術參數、功能、類型、位置和用途而構成的系統,稱為無線偵察接收機系統。其中計算機軟件系統是整個偵察接收機系統的重要組成部分,本系統中軟件和硬件之間的數據傳輸是依靠網絡進行的。
本文在分析網絡無線偵察接收機軟件系統框架的基礎上,結合wxWidgets庫給出如何設計用戶界面、如何利用wxMathPlot對接收到的數據進行畫圖、信號處理的基本方法,重點分析了如何解決網絡接收數據時可能出現的“粘包”問題,最后給出了軟件運行效果。
1 網絡無線偵察接收機軟件系統總體設計
網絡無線偵察接收機的總體設計如圖1所示。硬件系統采集到的數據通過網絡采用TCP/IP協議傳送給信號實時顯示系統。整個軟件系統主要由以下幾個模塊組成:網絡模塊、GUI模塊、信號處理模塊、畫圖模塊、存儲模塊。其中網絡模塊主要負責接收硬件發送的數據;GUI模塊則負責與用戶的交互;信號處理模塊則主要負責對采集到的信號進行一定的處理,如功率譜估計、解調等;畫圖模塊則需要將網絡收到的數據實時顯示在用戶界面;存儲模塊則負責將收到的數據存儲在電腦磁盤。其中GUI模塊是整個軟件系統的核心,其余各模塊之間的信息傳遞則是通過GUI模塊,GUI模塊相當于一個信息中轉站。
目前支持C++進行GUI開發的軟件包很多,主流的包括wxWidgets、MFC、QT等等。和其他GUI開發庫相比,wxWidgets擁有豐富的并且開源組件,可以吸引眾多人士對其進行改進,對其不斷擴充和發展;為其所支持的各種平臺提供幾乎一致的GUI應用程序接口(API)。程序從一個平臺換到另一個運行,只需要重新編譯,鏈接相應的庫文件即可。它提供了一個與平臺無關的framework,所以程序設計時選用wxWidgets-2.8.0庫進行GUI開發,編譯工具使用的是codeblocks8.02。
2 關鍵模塊設計
2.1 GUI模塊的設計
Win32程序的main函數代表程序運行起點,對于wxWidgets程序,整個程序的執行即主線程開始啟動,是從建立一個wxApp類的對象并調用其類成員函數OnInit()函數開始的。OnInit()函數中需要完成的工作則是創建程序窗口的實例。程序中使用的頂層窗口是從wxFrame(一個可以容納其他窗口和控件的頂層窗口,通常擁有標題欄和菜單欄)派生出來的。
2.2 畫圖模塊的設計
信號處理的結果需要在界面上顯示出來,如頻譜圖,星座圖等。
wxMathPlot是一個用來畫二維曲線的圖形庫。系統中主要使用該庫繪制一些分析曲線,向用戶展示分析結果(如頻譜圖)。wxMathPlot采用的也是類繼承的方式。坐標軸和曲線都是以Layer的方式疊加在畫圖窗上的。
c++相關文章:c++教程
評論