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