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