邱霞+段渭軍+黃亮+許宗成
摘 要: 將無(wú)線傳感器網(wǎng)絡(luò)(WSN)應(yīng)用于戰(zhàn)場(chǎng)感知等軍事領(lǐng)域的研究已經(jīng)廣泛展開(kāi)。無(wú)線傳感器網(wǎng)絡(luò)系統(tǒng)架構(gòu)包括無(wú)線傳感器網(wǎng)絡(luò)、SINK節(jié)點(diǎn)和PC端監(jiān)控軟件。為了方便用戶了解網(wǎng)絡(luò)狀態(tài)和管理網(wǎng)絡(luò),使用PyQt設(shè)計(jì)與實(shí)現(xiàn)了無(wú)線傳感器網(wǎng)絡(luò)PC端監(jiān)控軟件,PyQt是結(jié)合了Qt的C++跨平臺(tái)程序框架和Python的躊平臺(tái)解釋性腳本語(yǔ)言。對(duì)此監(jiān)控軟件進(jìn)行模塊化獨(dú)立設(shè)計(jì),各子程序模塊不集成于主程序模塊,使程序的設(shè)計(jì)操作簡(jiǎn)單化。
關(guān)鍵詞: Python; PyQt; 無(wú)線傳感器網(wǎng)絡(luò); 監(jiān)控軟件
中圖分類號(hào): TN911?34; TP312 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)16?0065?03
Development of wireless sensor network monitoring software based on Python
QIU Xia, DUAN Wei?jun, HUANG Liang, XU Zong?cheng
(School of Electronics Information, Northwestern Polytechnical University, Xian 710072, China)
Abstract: The research that WSN is applied to battlefield perception and other military fields has been widely expanded. WSN system architecture consists of wireless sensor network, SINK node and PC monitoring software. In order to facilitate users to understand the network status and mange the network, A PC monitoring software of WSN was designed and realized by the aid of PyQt, which combines the Qt C++ cross?platform program framework with the cross?platform interpreted language of Python. The modular monitoring software was independently designed, and each subroutine module is not integrated in the main program module, so as to simplify the design operation of the program.
Keywords: Python; PyQt; WSN; monitoring software
0 引 言
無(wú)線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSN)是由大量的密集部署在監(jiān)控區(qū)域的智能傳感器節(jié)點(diǎn)構(gòu)成的一種網(wǎng)絡(luò)應(yīng)用系統(tǒng)[1]。這些傳感器節(jié)點(diǎn)以自組織(AD?Hoc)[2]和多跳(Multi?Hop)的方式交互數(shù)據(jù),協(xié)作地感知、采集、處理和傳輸其覆蓋地理區(qū)域內(nèi)被監(jiān)測(cè)對(duì)象的相關(guān)信息。其具有大規(guī)模、自組織、動(dòng)態(tài)性、可靠性、應(yīng)用相關(guān)和以數(shù)據(jù)為中心的特點(diǎn)。目前相關(guān)的無(wú)線傳感器網(wǎng)絡(luò)理論研究和應(yīng)用研究已廣泛展開(kāi),對(duì)戰(zhàn)場(chǎng)環(huán)境進(jìn)行信息采集的網(wǎng)絡(luò)系統(tǒng)是研究的一大重點(diǎn)。
典型的無(wú)線傳感器網(wǎng)絡(luò)系統(tǒng)由無(wú)線傳感器網(wǎng)絡(luò)、SINK節(jié)點(diǎn)和PC端監(jiān)控軟件組成。為方便用戶了解網(wǎng)絡(luò)狀態(tài)和管理網(wǎng)絡(luò),需要提供界面友好和功能完善的上位機(jī)監(jiān)控軟件。用戶通過(guò)PC機(jī)上的監(jiān)控界面可方便直觀看到整個(gè)網(wǎng)絡(luò)的動(dòng)態(tài)顯示,并且可以與網(wǎng)絡(luò)進(jìn)行交互操作。本文介紹了基于PyQt的無(wú)線傳感器網(wǎng)絡(luò)監(jiān)控軟件的開(kāi)發(fā)。
1 關(guān)鍵技術(shù)與編程工具開(kāi)發(fā)
PC端監(jiān)控軟件的服務(wù)器操作系統(tǒng)采用Windows XP操作系統(tǒng),開(kāi)發(fā)平臺(tái)采用Python2.6+PyQt4+eric4?4.2.2a。Python是功能很強(qiáng)大的跨平臺(tái)解釋性腳本語(yǔ)言,Qt是C++跨平臺(tái)應(yīng)用程序框架,二者的結(jié)合就是PyQt[3]。而Eric則是由Python開(kāi)發(fā)的一款支持PyQt的IDE。Python是一種開(kāi)源的腳本編程語(yǔ)言,收可移植的ANSI C編寫(xiě),可以輕松駕馭Windows,Linux,Mac等主流操作系統(tǒng),可移植性極強(qiáng)[4]。Eric4是一款Python,Ruby的IDE,其代碼功能強(qiáng)大,與Qt4的完美結(jié)合,非常適合開(kāi)發(fā)圖形界面的Python應(yīng)用程序。
下面介紹如何搭建PyQt開(kāi)發(fā)環(huán)境:
(1) 下載Python,eric和PyQt,分別為python?2.7.3 msi,eric4?4.5.15.zip和PyQt?Py2.7?x86?gpl?4.8.5?1.exe。Python和PyQt的版本要一致,推薦使用2.7版本,3.0版本正在測(cè)試中。
(2) 安裝軟件。首先安裝Python2.7,默認(rèn)安裝到D:\python27目錄下,安裝成功后,會(huì)出現(xiàn)在菜單中。緊接著安裝PyQt,一路回車即可。在安裝Eric前,需要配置環(huán)境變量。將Python所在路徑復(fù)制到環(huán)境變量里的Path里即可。再來(lái)解壓Eric4?4.5.15.zip到D盤里。解壓之后,可在DOS命令下運(yùn)行 D:\python27\python D:\eric4?4.5.15\install.py。運(yùn)行完之后,就會(huì)在D:\python27目錄下生成eric4.bat文件。此時(shí),開(kāi)發(fā)環(huán)境已經(jīng)搭建完成。
2 無(wú)線傳感器網(wǎng)絡(luò)體系結(jié)構(gòu)
在監(jiān)測(cè)區(qū)域里部署傳感器節(jié)點(diǎn),這些節(jié)點(diǎn)通過(guò)自組織協(xié)議構(gòu)成無(wú)線傳感器網(wǎng)絡(luò)。傳感器節(jié)點(diǎn)負(fù)責(zé)感知、采集、處理和傳輸網(wǎng)絡(luò)覆蓋地理區(qū)域內(nèi)被感知對(duì)象的信息,并向SINK節(jié)點(diǎn)報(bào)告,SINK節(jié)點(diǎn)再通過(guò)串口將信息送達(dá)用戶。用戶在遠(yuǎn)端可知網(wǎng)絡(luò)部署區(qū)域內(nèi)的環(huán)境變化和網(wǎng)絡(luò)的運(yùn)行情況,也可以通過(guò)SINK節(jié)點(diǎn)[5]向網(wǎng)絡(luò)發(fā)布查詢請(qǐng)求和控制命令。圖1為所描述的系統(tǒng)結(jié)構(gòu)圖。
圖1 系統(tǒng)結(jié)構(gòu)圖
SINK節(jié)點(diǎn)可以充當(dāng)網(wǎng)絡(luò)的協(xié)調(diào)器,具有較強(qiáng)的處理、存儲(chǔ)和通信能力。連接傳感器網(wǎng)絡(luò)與電腦終端監(jiān)控中心,實(shí)現(xiàn)兩者之間通信協(xié)議的轉(zhuǎn)換。將網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)據(jù)收集后處理,最后發(fā)送到電腦終端的監(jiān)控中心。提供網(wǎng)絡(luò)控制功能,將監(jiān)控中心計(jì)算機(jī)的用戶命令發(fā)送給網(wǎng)絡(luò)中的節(jié)點(diǎn)。用戶監(jiān)控中心通過(guò)PC端的界面遠(yuǎn)程觀察網(wǎng)絡(luò)所處狀態(tài)和發(fā)送指令,還可以隨時(shí)瀏覽歷史狀態(tài),實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)的遠(yuǎn)程管理和控制。
3 監(jiān)控軟件開(kāi)發(fā)
網(wǎng)絡(luò)節(jié)點(diǎn)作為終端,負(fù)責(zé)信息的采集和共享,實(shí)現(xiàn)多節(jié)點(diǎn)協(xié)同地執(zhí)行任務(wù);SINK節(jié)點(diǎn)維護(hù)整個(gè)網(wǎng)絡(luò),并與監(jiān)控軟件交互;監(jiān)控軟件主要對(duì)網(wǎng)絡(luò)數(shù)據(jù)管理和顯示,方便用戶監(jiān)測(cè)網(wǎng)絡(luò)拓?fù)洳⑦M(jìn)行網(wǎng)絡(luò)調(diào)整,保證無(wú)線傳感器網(wǎng)絡(luò)的持續(xù)穩(wěn)定工作。下面來(lái)介紹監(jiān)控軟件的開(kāi)發(fā)。
3.1 監(jiān)控軟件主界面
監(jiān)控軟件主界面主要分為四個(gè)主要部分:系統(tǒng)主菜單和功能按鈕、節(jié)點(diǎn)狀態(tài)欄、二維場(chǎng)景顯示、信息欄。用戶通過(guò)操作主菜單和功能按鈕使用軟件的功能命令。用戶設(shè)置正確的串口參數(shù)后打開(kāi)串口,然后開(kāi)始與SINK節(jié)點(diǎn)的通信。監(jiān)控軟件進(jìn)行數(shù)據(jù)包的解析后在主界面信息欄將數(shù)據(jù)包輸出,在場(chǎng)景顯示處顯示網(wǎng)絡(luò)拓?fù)洹?shù)據(jù)流、節(jié)點(diǎn)地址等信息。右側(cè)的節(jié)點(diǎn)狀態(tài)欄實(shí)時(shí)顯示節(jié)點(diǎn)當(dāng)前的橫縱坐標(biāo)。圖2為監(jiān)控軟件主界面。
圖2 監(jiān)控軟件主界面
3.2 主要功能
對(duì)監(jiān)控軟件進(jìn)行模塊化獨(dú)立設(shè)計(jì),各子程序模塊不集成于主程序模塊,子模塊可獨(dú)立運(yùn)行,從而降低了程序的復(fù)雜度,使程序的設(shè)計(jì)操作簡(jiǎn)單化[5]。監(jiān)控軟件的整體功能模塊結(jié)構(gòu)如圖3所示。
圖3 整體功能模塊結(jié)構(gòu)圖
3.2.1 消息獲取和處理
PC端監(jiān)控軟件通過(guò)串口與SINK節(jié)點(diǎn)連接,從而利用SINK節(jié)點(diǎn)來(lái)獲取各個(gè)節(jié)點(diǎn)和鏈路信息。圖4為消息獲取和處理的流程。由于監(jiān)控軟件基于Python編寫(xiě),為了便于操作串口,程序采用Pyserial[6]串口控制模塊。Pyserial模塊是一個(gè)用來(lái)控制串口的Python第三方庫(kù),支持Python調(diào)用Windows,Linux系統(tǒng)調(diào)用,模塊啟用后會(huì)自動(dòng)選擇后端操作系統(tǒng)。為了方便用戶打開(kāi)指定的串口并按照指定的波特率通信,軟件增加了串口設(shè)置對(duì)話框GUI,負(fù)責(zé)設(shè)置串口號(hào)和波特率。完成串口設(shè)置后,就可以進(jìn)行下一步操作。點(diǎn)擊工具欄上的三個(gè)按鈕就打開(kāi)選擇數(shù)據(jù)文件對(duì)話框,打開(kāi)文件后開(kāi)始接收來(lái)自串口的消息并將接收到的數(shù)據(jù)進(jìn)行處理,按照數(shù)據(jù)文件格式保存到文件中,同時(shí)在主界面的顯示場(chǎng)景中繪制各節(jié)點(diǎn)、通信路徑等,在狀態(tài)欄顯示節(jié)點(diǎn)的狀態(tài)和坐標(biāo)信息。
圖4 消息獲取和處理的流程
3.2.2 節(jié)點(diǎn)地址等狀態(tài)信息顯示
用戶在系統(tǒng)運(yùn)行的任意時(shí)刻都可查詢?nèi)我夤?jié)點(diǎn)的狀態(tài)信息,能夠?qū)⒐?jié)點(diǎn)地址和坐標(biāo)、節(jié)點(diǎn)類型、運(yùn)行狀態(tài)等信息顯示在界面上,用戶在PC端就可進(jìn)行節(jié)點(diǎn)監(jiān)控。
3.2.3 網(wǎng)絡(luò)場(chǎng)景顯示
通過(guò)主界面的二維場(chǎng)景顯示,可以直觀地看到網(wǎng)絡(luò)當(dāng)前狀態(tài)。顯示場(chǎng)景中用正方形表示小車節(jié)點(diǎn),圓形代表入侵節(jié)點(diǎn),兩者使用不同的顏色標(biāo)記。小車節(jié)點(diǎn)上方顯示其地址以此做區(qū)分,而對(duì)入侵節(jié)點(diǎn)進(jìn)行編號(hào)顯示,小車節(jié)點(diǎn)周圍的圓形虛線代表其感知范圍。節(jié)點(diǎn)之間通信時(shí)記錄數(shù)據(jù)的通信鏈路,在圖中以綠色虛線顯示,如果節(jié)點(diǎn)之間通信失敗則將之前顯示的鏈路刪除。當(dāng)鏈路上有數(shù)據(jù)包發(fā)送成功時(shí),鏈路用閃爍代表。顯示界面如圖5所示。
圖5 二維場(chǎng)景顯示
3.2.4 網(wǎng)絡(luò)控制
在網(wǎng)絡(luò)控制模塊用戶向節(jié)點(diǎn)網(wǎng)絡(luò)發(fā)送控制命令管理網(wǎng)絡(luò),監(jiān)控軟件設(shè)計(jì)實(shí)現(xiàn)了控制對(duì)話框方便操作。用戶單擊工具欄中的按鈕就可以彈出控制對(duì)話框。
根據(jù)系統(tǒng)要求,目前支持遠(yuǎn)程控制命令有:開(kāi)啟小車,組網(wǎng)攻擊,小車移動(dòng),開(kāi)始通信組網(wǎng)等。目的地址:輸入小車的16位網(wǎng)絡(luò)地址(可以從狀態(tài)欄或者3D場(chǎng)景小車上方看到)。消息負(fù)載內(nèi)容:按照協(xié)議填寫(xiě)相應(yīng)的負(fù)載,不同的控制命令負(fù)載類型不同。點(diǎn)擊發(fā)送即可,可以在狀態(tài)欄收到網(wǎng)絡(luò)節(jié)點(diǎn)的反饋消息。
3.2.5 場(chǎng)景回放
通過(guò)從本地保存的數(shù)據(jù)文件中提取數(shù)據(jù),重現(xiàn)網(wǎng)絡(luò)某一時(shí)間段的場(chǎng)景,特別是攻擊場(chǎng)景的重現(xiàn),可以看到入侵節(jié)點(diǎn)的移動(dòng)軌跡和網(wǎng)絡(luò)節(jié)點(diǎn)的攻擊過(guò)程。場(chǎng)景回放是指監(jiān)控軟件通過(guò)從本地?cái)?shù)據(jù)文件(實(shí)時(shí)連接到網(wǎng)絡(luò)保存下來(lái)的)按時(shí)間順序讀取各不同時(shí)刻的消息,獲取各類節(jié)點(diǎn)和通信流的信息,在三維場(chǎng)景中重現(xiàn)各時(shí)刻的畫(huà)面。軟件根據(jù)讀取的坐標(biāo)信息重繪車庫(kù)、小車、通信流,當(dāng)有敵節(jié)點(diǎn)入侵時(shí)繪制入侵節(jié)點(diǎn),展現(xiàn)小車節(jié)點(diǎn)和入侵節(jié)點(diǎn)的移動(dòng)過(guò)程、攻擊過(guò)程,從而回放攻擊場(chǎng)景。
3.2.6 網(wǎng)絡(luò)測(cè)試
為了實(shí)現(xiàn)從數(shù)據(jù)上分析網(wǎng)絡(luò)性能,從更深的層次了解網(wǎng)絡(luò)運(yùn)行狀態(tài),增加了網(wǎng)絡(luò)測(cè)試部分。主要實(shí)現(xiàn)端到端時(shí)延[7]、節(jié)點(diǎn)通信的丟包率[8]、組網(wǎng)協(xié)議的連通性這幾項(xiàng)。在監(jiān)控軟件中設(shè)計(jì)和實(shí)現(xiàn)了網(wǎng)絡(luò)測(cè)試模塊,這個(gè)模塊的主要作用是使用戶在PC端就可以方便的測(cè)試當(dāng)前網(wǎng)絡(luò)的性能如何,對(duì)結(jié)果進(jìn)行分析。如果出現(xiàn)問(wèn)題那么要尋找解決方案,保證用戶能夠掌握戰(zhàn)場(chǎng)上出現(xiàn)的狀況快速做出反應(yīng),采取措施。實(shí)現(xiàn)了三項(xiàng)測(cè)試內(nèi)容:系統(tǒng)響應(yīng)時(shí)間測(cè)試、端到端時(shí)延測(cè)試[9]、丟包率測(cè)試。從菜單欄的Test選項(xiàng)就可以選擇要進(jìn)行哪項(xiàng)測(cè)試。
系統(tǒng)響應(yīng)時(shí)間的測(cè)試方案是SINK節(jié)點(diǎn)向全網(wǎng)節(jié)點(diǎn)廣播一個(gè)命令要求其他節(jié)點(diǎn)向SINK節(jié)點(diǎn)返回一個(gè)響應(yīng)幀,SINK節(jié)點(diǎn)由串口向監(jiān)控中心匯報(bào)響應(yīng)節(jié)點(diǎn)和此節(jié)點(diǎn)的響應(yīng)時(shí)間。端到端時(shí)延的測(cè)試方案是將源節(jié)點(diǎn)地址、目的節(jié)點(diǎn)地址、負(fù)載內(nèi)容這三個(gè)參數(shù)發(fā)送給SINK節(jié)點(diǎn),SINK節(jié)點(diǎn)通知源節(jié)點(diǎn)發(fā)起到目的節(jié)點(diǎn)的時(shí)延測(cè)試,測(cè)試時(shí)的負(fù)載就是從監(jiān)控軟件輸入的負(fù)載內(nèi)容。源節(jié)點(diǎn)將測(cè)試到的時(shí)延值與到目的節(jié)點(diǎn)路由跳數(shù)一起通過(guò)網(wǎng)絡(luò)多跳通信發(fā)送到SINK節(jié)點(diǎn),然后通過(guò)串口上傳到監(jiān)控中心。丟包率測(cè)試的是兩節(jié)點(diǎn)之間通信時(shí)的丟包情況,如果丟包過(guò)大則要分析原因采取一定的措施,例如調(diào)整節(jié)點(diǎn)部署等。
4 結(jié) 語(yǔ)
本文介紹了基于PyQt的無(wú)線傳感器網(wǎng)絡(luò)監(jiān)控系統(tǒng),方便用戶了解網(wǎng)絡(luò)狀態(tài)和管理網(wǎng)絡(luò)。PyQt結(jié)合Qt的C++跨平臺(tái)程序框架和Python的跨平臺(tái)解釋性腳本語(yǔ)言。監(jiān)控軟件有六大功能模塊,分別是消息獲取和處理模塊、節(jié)點(diǎn)地址等狀態(tài)信息顯示模塊、網(wǎng)絡(luò)場(chǎng)景顯示模塊、網(wǎng)絡(luò)控制模塊、場(chǎng)景回放模塊和網(wǎng)絡(luò)測(cè)試測(cè)試模塊。該系統(tǒng)仍存在有不足之處,監(jiān)控軟件實(shí)現(xiàn)功能簡(jiǎn)單,可靠性不高,安全性不高,這需要進(jìn)一步研究。
(上接第67頁(yè))
參考文獻(xiàn)
[1] 屈峰.無(wú)線傳感器網(wǎng)絡(luò)及其應(yīng)用[J].四川兵工學(xué)報(bào),2013,34(2):111?113.
[2] 程皓.無(wú)線傳感器網(wǎng)絡(luò)自組織協(xié)議的研究與實(shí)現(xiàn)[J].傳感器與儀器儀表,2009,25(12):88?90.
[3] MISRA Sanjay. Estimating complexity of programs in Python Language [J]. Technical Gazette, 2011, 18 (1): 12?18.
[4] 陳笑飛.基于Python的虛擬儀器技術(shù)研究及實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2012,20(16):48?50.
[5] TIAN Yu. Design and application of sink node for wireless sensor network, COMPEL [J]. International Journal for Computation and Mathematics in Electrical and Electronic Engineering, 2013, 32 (2): 531?544.
[6] 王清華.基于無(wú)線傳感器網(wǎng)絡(luò)的煤礦瓦斯監(jiān)測(cè)系統(tǒng)軟件的研究[J].煤礦機(jī)械,2012,33(12):232?234.
[7] 夏永鏗.基于Web的群體機(jī)器人遠(yuǎn)程控制系統(tǒng)研究與實(shí)現(xiàn)[J]. 微型電腦應(yīng)用,2013,29(2):13?15.
[8] 鄔春學(xué).基于Internet的網(wǎng)絡(luò)控制系統(tǒng)端到端時(shí)延分析[J].計(jì)算機(jī)工程,2007,33(22):158?160.
[9] 李鵬. ZigBee網(wǎng)絡(luò)性能分析及網(wǎng)絡(luò)規(guī)劃應(yīng)用研究[D].武漢:華中師范大學(xué),2009.
[10] COLOMB R M. End to end development engineering [J]. Journal of Software Engineering and Applications, 2011, 4 (4): 195?216.
系統(tǒng)響應(yīng)時(shí)間的測(cè)試方案是SINK節(jié)點(diǎn)向全網(wǎng)節(jié)點(diǎn)廣播一個(gè)命令要求其他節(jié)點(diǎn)向SINK節(jié)點(diǎn)返回一個(gè)響應(yīng)幀,SINK節(jié)點(diǎn)由串口向監(jiān)控中心匯報(bào)響應(yīng)節(jié)點(diǎn)和此節(jié)點(diǎn)的響應(yīng)時(shí)間。端到端時(shí)延的測(cè)試方案是將源節(jié)點(diǎn)地址、目的節(jié)點(diǎn)地址、負(fù)載內(nèi)容這三個(gè)參數(shù)發(fā)送給SINK節(jié)點(diǎn),SINK節(jié)點(diǎn)通知源節(jié)點(diǎn)發(fā)起到目的節(jié)點(diǎn)的時(shí)延測(cè)試,測(cè)試時(shí)的負(fù)載就是從監(jiān)控軟件輸入的負(fù)載內(nèi)容。源節(jié)點(diǎn)將測(cè)試到的時(shí)延值與到目的節(jié)點(diǎn)路由跳數(shù)一起通過(guò)網(wǎng)絡(luò)多跳通信發(fā)送到SINK節(jié)點(diǎn),然后通過(guò)串口上傳到監(jiān)控中心。丟包率測(cè)試的是兩節(jié)點(diǎn)之間通信時(shí)的丟包情況,如果丟包過(guò)大則要分析原因采取一定的措施,例如調(diào)整節(jié)點(diǎn)部署等。
4 結(jié) 語(yǔ)
本文介紹了基于PyQt的無(wú)線傳感器網(wǎng)絡(luò)監(jiān)控系統(tǒng),方便用戶了解網(wǎng)絡(luò)狀態(tài)和管理網(wǎng)絡(luò)。PyQt結(jié)合Qt的C++跨平臺(tái)程序框架和Python的跨平臺(tái)解釋性腳本語(yǔ)言。監(jiān)控軟件有六大功能模塊,分別是消息獲取和處理模塊、節(jié)點(diǎn)地址等狀態(tài)信息顯示模塊、網(wǎng)絡(luò)場(chǎng)景顯示模塊、網(wǎng)絡(luò)控制模塊、場(chǎng)景回放模塊和網(wǎng)絡(luò)測(cè)試測(cè)試模塊。該系統(tǒng)仍存在有不足之處,監(jiān)控軟件實(shí)現(xiàn)功能簡(jiǎn)單,可靠性不高,安全性不高,這需要進(jìn)一步研究。
(上接第67頁(yè))
參考文獻(xiàn)
[1] 屈峰.無(wú)線傳感器網(wǎng)絡(luò)及其應(yīng)用[J].四川兵工學(xué)報(bào),2013,34(2):111?113.
[2] 程皓.無(wú)線傳感器網(wǎng)絡(luò)自組織協(xié)議的研究與實(shí)現(xiàn)[J].傳感器與儀器儀表,2009,25(12):88?90.
[3] MISRA Sanjay. Estimating complexity of programs in Python Language [J]. Technical Gazette, 2011, 18 (1): 12?18.
[4] 陳笑飛.基于Python的虛擬儀器技術(shù)研究及實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2012,20(16):48?50.
[5] TIAN Yu. Design and application of sink node for wireless sensor network, COMPEL [J]. International Journal for Computation and Mathematics in Electrical and Electronic Engineering, 2013, 32 (2): 531?544.
[6] 王清華.基于無(wú)線傳感器網(wǎng)絡(luò)的煤礦瓦斯監(jiān)測(cè)系統(tǒng)軟件的研究[J].煤礦機(jī)械,2012,33(12):232?234.
[7] 夏永鏗.基于Web的群體機(jī)器人遠(yuǎn)程控制系統(tǒng)研究與實(shí)現(xiàn)[J]. 微型電腦應(yīng)用,2013,29(2):13?15.
[8] 鄔春學(xué).基于Internet的網(wǎng)絡(luò)控制系統(tǒng)端到端時(shí)延分析[J].計(jì)算機(jī)工程,2007,33(22):158?160.
[9] 李鵬. ZigBee網(wǎng)絡(luò)性能分析及網(wǎng)絡(luò)規(guī)劃應(yīng)用研究[D].武漢:華中師范大學(xué),2009.
[10] COLOMB R M. End to end development engineering [J]. Journal of Software Engineering and Applications, 2011, 4 (4): 195?216.
系統(tǒng)響應(yīng)時(shí)間的測(cè)試方案是SINK節(jié)點(diǎn)向全網(wǎng)節(jié)點(diǎn)廣播一個(gè)命令要求其他節(jié)點(diǎn)向SINK節(jié)點(diǎn)返回一個(gè)響應(yīng)幀,SINK節(jié)點(diǎn)由串口向監(jiān)控中心匯報(bào)響應(yīng)節(jié)點(diǎn)和此節(jié)點(diǎn)的響應(yīng)時(shí)間。端到端時(shí)延的測(cè)試方案是將源節(jié)點(diǎn)地址、目的節(jié)點(diǎn)地址、負(fù)載內(nèi)容這三個(gè)參數(shù)發(fā)送給SINK節(jié)點(diǎn),SINK節(jié)點(diǎn)通知源節(jié)點(diǎn)發(fā)起到目的節(jié)點(diǎn)的時(shí)延測(cè)試,測(cè)試時(shí)的負(fù)載就是從監(jiān)控軟件輸入的負(fù)載內(nèi)容。源節(jié)點(diǎn)將測(cè)試到的時(shí)延值與到目的節(jié)點(diǎn)路由跳數(shù)一起通過(guò)網(wǎng)絡(luò)多跳通信發(fā)送到SINK節(jié)點(diǎn),然后通過(guò)串口上傳到監(jiān)控中心。丟包率測(cè)試的是兩節(jié)點(diǎn)之間通信時(shí)的丟包情況,如果丟包過(guò)大則要分析原因采取一定的措施,例如調(diào)整節(jié)點(diǎn)部署等。
4 結(jié) 語(yǔ)
本文介紹了基于PyQt的無(wú)線傳感器網(wǎng)絡(luò)監(jiān)控系統(tǒng),方便用戶了解網(wǎng)絡(luò)狀態(tài)和管理網(wǎng)絡(luò)。PyQt結(jié)合Qt的C++跨平臺(tái)程序框架和Python的跨平臺(tái)解釋性腳本語(yǔ)言。監(jiān)控軟件有六大功能模塊,分別是消息獲取和處理模塊、節(jié)點(diǎn)地址等狀態(tài)信息顯示模塊、網(wǎng)絡(luò)場(chǎng)景顯示模塊、網(wǎng)絡(luò)控制模塊、場(chǎng)景回放模塊和網(wǎng)絡(luò)測(cè)試測(cè)試模塊。該系統(tǒng)仍存在有不足之處,監(jiān)控軟件實(shí)現(xiàn)功能簡(jiǎn)單,可靠性不高,安全性不高,這需要進(jìn)一步研究。
(上接第67頁(yè))
參考文獻(xiàn)
[1] 屈峰.無(wú)線傳感器網(wǎng)絡(luò)及其應(yīng)用[J].四川兵工學(xué)報(bào),2013,34(2):111?113.
[2] 程皓.無(wú)線傳感器網(wǎng)絡(luò)自組織協(xié)議的研究與實(shí)現(xiàn)[J].傳感器與儀器儀表,2009,25(12):88?90.
[3] MISRA Sanjay. Estimating complexity of programs in Python Language [J]. Technical Gazette, 2011, 18 (1): 12?18.
[4] 陳笑飛.基于Python的虛擬儀器技術(shù)研究及實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2012,20(16):48?50.
[5] TIAN Yu. Design and application of sink node for wireless sensor network, COMPEL [J]. International Journal for Computation and Mathematics in Electrical and Electronic Engineering, 2013, 32 (2): 531?544.
[6] 王清華.基于無(wú)線傳感器網(wǎng)絡(luò)的煤礦瓦斯監(jiān)測(cè)系統(tǒng)軟件的研究[J].煤礦機(jī)械,2012,33(12):232?234.
[7] 夏永鏗.基于Web的群體機(jī)器人遠(yuǎn)程控制系統(tǒng)研究與實(shí)現(xiàn)[J]. 微型電腦應(yīng)用,2013,29(2):13?15.
[8] 鄔春學(xué).基于Internet的網(wǎng)絡(luò)控制系統(tǒng)端到端時(shí)延分析[J].計(jì)算機(jī)工程,2007,33(22):158?160.
[9] 李鵬. ZigBee網(wǎng)絡(luò)性能分析及網(wǎng)絡(luò)規(guī)劃應(yīng)用研究[D].武漢:華中師范大學(xué),2009.
[10] COLOMB R M. End to end development engineering [J]. Journal of Software Engineering and Applications, 2011, 4 (4): 195?216.