一種實現無線傳感器網絡可視化的方法
2023-07-20 05:05:21 1
專利名稱:一種實現無線傳感器網絡可視化的方法
技術領域:
本發明涉及無線傳感器網絡可視化技術領域,尤其涉及一種實現無線傳感器網絡可視化的方法。
背景技術:
可視化技術(Visualization)是利用計算機圖形學和圖像處理技術,將數據轉換成圖形或圖像在屏幕上顯示出來,並進行交互處理的理論、方法和技術。它涉及到計算機圖形學、圖像處理、計算機視覺、計算機輔助設計等多個領域,成為研究數據表示、數據處理、決策分析等一系列問題的綜合技術。
科學計算可視化能夠把科學數據,包括測量獲得的數值、圖像或者計算中涉及、產生的數字信息變為直觀的、以圖形圖像信息表示的、隨時間和空間變化的物理現象或物理量呈現在研究者面前,使他們能夠觀察、模擬和計算。科學計算可視化自1987年提出以來,在各工程和計算領域得到了廣泛的應用和發展。
無線傳感器網絡(wireless sensor network)是由部署在監測區域內大量的廉價微型傳感器節點組成,通過無線通信方式形成的一個面向任務的自組織的網絡系統。其目的是協作地感知、採集並處理網絡覆蓋區域內中的目標信息,並進行控制或者發送給觀察者。對於科研人員或網絡的管理員不可能自己去處理這些數據,並從中分析出網絡的行為,知曉所要監測的物理量的變化。
無線傳感器網絡所產生的海量觀測數據,需要我們開發出一種有效的可視化方法或系統,將這些數據以一種更易理解和分析的形式展現出來,以方便觀察者分析網絡的行為。
本發明設計並實現了一套完整的可視化方法,方便用戶在本地或遠程實時觀察所獲取的傳感數據,以及無線傳感器網絡網絡結構和網絡內部的數據包的發送過程。
發明內容
(一)要解決的技術問題有鑑於此,本發明的主要目的在於提供一種實現無線傳感器網絡可視化的方法,使用戶可以在本地或遠程實時觀察所獲取的傳感數據,以及無線傳感器網絡網絡結構和網絡內部數據包的發送過程。
(二)技術方案為達到上述目的,本發明的技術方案是這樣實現的一種實現無線傳感器網絡可視化的方法,該方法包括A、啟動監聽進程獲取無線傳感器網絡中網關節點通過串口向主機發送的數據包;B、對獲取的數據包進行解析,提取出每個數據包的源地址欄位、數據包傳輸路徑上各節點ID號、傳感數據負載;C、根據解析出的數據包的源地址欄位構建節點分布視圖來可視化節點分布,根據解析出的數據包傳輸路徑上各節點ID號在所述節點分布視圖上繪製數據包的路由曲線來可視化數據包的發送過程,根據解析出的傳感數據負載構建傳感數據視圖,通過在所述傳感數據視圖上繪製各節點傳感數據的實時曲線來可視化傳感數據負載的變化。
步驟A中所述獲取數據包是以每個數據包的開始標誌和結束標誌來判斷接收的二進位數據流中數據包的開始和結束的。
所述數據包開始標誌為0×8e,結束標誌為0×7e,在數據包內不再出現開始標誌和結束標誌;在數據包內部如需要傳輸開始標誌0×8e,則將0×8e轉換為0×8d 0×6e,傳輸0×8d時將0×8d轉換成0×8d 0×6d;在數據包內部如果需要傳輸結束標誌0×7e,則將0×7e轉換成0×7d 0×6e,傳輸0×7d時將0×7d轉換成0×7d 0×5d;在接收的時候再將轉換之後的字節還原。
步驟C中所述根據解析出的數據包的源地址欄位構建節點分布視圖來可視化節點分布包括根據解析出的數據包的源地址欄位發現當前網絡中存在著哪些節點,並將發現的節點以一個小球的形式顯示出來,在小球旁邊標明節點的地址;選擇一張表徵節點所分布的實際環境的圖片作為地圖背景,將發現的節點拖動到與實際分布相對應的位置,構建節點分布視圖。
在所述構建節點分布視圖的過程中,地圖背景和所有節點的繪製採用雙緩衝的方式,即先在內存中繪製好,然後直接將內存中的圖像數據直接輸出到屏幕中。
步驟C中所述根據解析出的數據包傳輸路徑上各節點ID號在所述節點分布視圖上繪製數據包的路由曲線來可視化數據包的發送過程包括當數據包到達時,解析出數據包中的路由數據,獲取該數據包所經過的各個節點的ID號,然後在所述節點分布視圖上繪製路由包的路由曲線,並高亮顯示發送數據包的節點。
在繪製所述路由曲線時,直接在屏幕上繪製,繪製完後啟動定時器,當定時器消息到來時,擦除繪製效果。所述擦除是以雙緩衝方式重新繪製地圖背景和已發現的節點。
步驟C中所述根據解析出的傳感數據負載構建傳感數據視圖,通過在所述傳感數據視圖上繪製各節點傳感數據的實時曲線來可視化傳感數據負載的變化包括對所述節點分布視圖上的每個節點配置一個傳感數據鍊表和一個曲線數組,並建立一個繪製曲線的定時器;當解析出新的傳感數據時,將解析出的傳感數據緩存到每個節點對應的鍊表中;當定時器消息到達時,從節點的傳感數據鍊表中取出一個數據放到節點對應的曲線數組中,再從所述曲線數組中取出各個節點對應的數據,根據從所述曲線數組中取出的數據繪製節點傳感數據的實時曲線。
所述曲線數組用於保存最近繪製過的N個傳感數據值,N為一個根據視覺效果設定的經驗值;每次繪製消息到來時,從節點的傳感數據鍊表中取出一個數據放到節點對應的曲線數組中;如果曲線數組已滿,則插入新數據,刪除最先存入的數據。
所述繪製節點傳感數據的實時曲線,是根據曲線數組中保存的數據進行繪製的;當傳感數據的獲取的速度比繪製的速度慢時,從節點的傳感數據鍊表中取數據時總是取最後一個數據;在讀取傳感數據的時候,如果發現超過用戶設定的閾值,則發出警告信息。
在進行遠程可視化時,所述步驟B與步驟C之間進一步包括將解析出的每個數據包的源地址欄位、數據包傳輸路徑上各節點ID號、傳感數據負載保存到資料庫中,並遠程獲取資料庫中保存的每個數據包的源地址欄位、數據包傳輸路徑上各節點ID號、傳感數據負載。
預先在終端配置提供可視化服務的ActiveX控制項,聽述遠程獲取資料庫中保存的每個數據包的源地址欄位、數據包傳輸路徑上各節點ID號、傳感數據負載包括所述ActiveX控制項首先連接上遠程伺服器上的資料庫,如果需要查看當前網絡數據,則定時從資料庫中讀取當前網絡的運行數據信息,即讀取網絡當前每個數據包的源地址欄位、數據包傳輸路徑上各節點ID號、傳感數據負載;如果需要查看網絡歷史活動信息,則從資料庫的歷史數據表中讀取網絡的歷史數據信息,即讀取網絡以前每個數據包的源地址欄位、數據包傳輸路徑上各節點ID號、傳感數據負載。
該方法進一步包括顯示解析出來的傳感數據包中的數據,可視化原始數據包的內容。
所述顯示解析出來的傳感數據包中的原始數據包括採用分欄的方式將解析出來的傳感數據包中的數據以十六進位數值顯示出來,每一列代表著一定含義的欄位,每一行代表一個數據包;當用戶選中某一行數據時,再以樹形方式顯示選中數據包的層次結構,顯示原始數據包的內容。
(三)有益效果從上述技術方案可以看出,本發明具有以下有益效果1、利用本發明,可以自動解析從網關節點(或稱為基站)發送過來的數據,並以圖形化的方式展示網絡內部各個傳感器節點間的數據包通信過程,方便網絡管理者或用戶實時的觀察無線傳感器網絡的活動情況。
2、本發明提供的這種實現無線傳感器網絡可視化的方法,以實時曲線的方式顯示網絡所監測到的境參數的動態變化過程,並且可以設置閾值,當某個節點所監測到的傳感數據超過該閾值時,輸出報警提示信息。通過這種途徑來輔助使用者分析傳感數據。
3、本發明提供的這種實現無線傳感器網絡可視化的方法,在繪製網絡的活動情況時採用了雙緩衝繪製方式與直接繪製相結合,有效的防止出現閃爍現象,並且比單純用雙緩衝效率更高。
4、本發明提供的這種實現無線傳感器網絡可視化的方法,加入對網絡的支持,使用者在網站上註冊,登錄後,請求可視化服務。這樣可以讓更多的人,在不同的地方同時觀察同一個無線傳感器網絡的狀況。
5、本發明提供的這種實現無線傳感器網絡可視化的方法,用戶在本地可視化時可以按照傳感器節點在實際環境中的分布情況拖動軟體視圖中節點標識,使軟體中的節點位置與實際的節點分布大致對應,這樣在缺乏精確定位技術的情況下,也能形象的觀察網絡的活動情況。同時用戶拖動節點形成的節點分布信息,也會存入資料庫中,以使遠程用戶也可以觀察到同樣的效果。
6、本發明提供的這種實現無線傳感器網絡可視化的方法,由於引入了資料庫支持,每次實驗所收集的數據都將存入到資料庫當中,可以通過上面提到方法的去分析數據,既方便回放歷史數據,再現歷史場景,同時也為診斷網絡錯誤,分析網絡性能提供了原始數據。
圖1為本發明提供的實現無線傳感器網絡可視化總體技術方案的實現流程圖;圖2為本發明提供的實現無線傳感器網絡可視化總體架構的結構示意圖;圖3為伺服器端的軟體結構圖;圖4為依照本發明第一個實施例實現無線傳感器網絡本地可視化的方法流程圖;圖5為依照本發明第二個實施例實現無線傳感器網絡遠程可視化的方法流程圖;圖6為依照本發明第三個實施例實現無線傳感器網絡遠程歷史數據可視化的方法流程圖。
具體實施例方式
為使本發明的目的、技術方案和優點更加清楚明白,以下結合具體實施例,並參照附圖,對本發明進一步詳細說明。
如圖1所示,圖1為本發明提供的實現無線傳感器網絡可視化總體技術方案的實現流程圖,該方法包括以下步驟
步驟101啟動監聽進程獲取無線傳感器網絡中網關節點通過串口向主機發送的數據包;步驟102對獲取的數據包進行解析,提取出每個數據包的源地址欄位、數據包傳輸路徑上各節點ID號、傳感數據負載;步驟103根據解析出的數據包的源地址欄位構建節點分布視圖來可視化節點分布,根據解析出的數據包傳輸路徑上各節點ID號在所述節點分布視圖上繪製數據包的路由曲線來可視化數據包的發送過程,根據解析出的傳感數據負載構建傳感數據視圖,通過在所述傳感數據視圖上繪製各節點傳感數據的實時曲線來可視化傳感數據負載的變化。
上述步驟101中所述獲取數據包是以每個數據包的開始標誌和結束標誌來判斷接收的二進位數據流中數據包的開始和結束的。所述數據包開始標誌為0×8e,結束標誌為0×7e,在數據包內不再出現開始標誌和結束標誌;在數據包內部如需要傳輸開始標誌0×8e,則將0×8e轉換為0×8d 0×6e,傳輸0×8d時將0×8d轉換成0×8d 0×6d;在數據包內部如果需要傳輸結束標誌0×7e,則將0×7e轉換成0×7d 0×6e,傳輸0×7d時將0×7d轉換成0×7d0×5d;在接收的時候再將轉換之後的字節還原。
上述步驟103中所述根據解析出的數據包的源地址欄位構建節點分布視圖來可視化節點分布包括根據解析出的數據包的源地址欄位發現當前網絡中存在著哪些節點,並將發現的節點以一個小球的形式顯示出來,在小球旁邊標明節點的地址;選擇一張表徵節點所分布的實際環境的圖片作為地圖背景,將發現的節點拖動到與實際分布相對應的位置,構建節點分布視圖,這樣視圖中的各個節點所組成的網絡就與實際的網絡對應起來了。在所述構建節點分布視圖的過程中,地圖背景和所有節點的繪製採用雙緩衝的方式,即先在內存中繪製好,然後直接將內存中的圖像數據輸出到屏幕中,這樣可以有效的防止頻繁繪製時出現閃爍現象。
上述步驟103中所述根據解析出的數據包傳輸路徑上各節點ID號在所述節點分布視圖上繪製數據包的路由曲線來可視化數據包的發送過程包括當數據包到達時,解析出數據包中的路由數據,獲取該數據包所經過的各個節點的ID號,然後在所述節點分布視圖上繪製路由包的路由曲線,並高亮顯示發送數據包的節點,以此來觀察網絡內部的活動情況。在繪製所述路由曲線時,直接在屏幕上繪製,繪製完後啟動定時器,當定時器消息到來時,擦除繪製效果。所述擦除是以雙緩衝方式重新繪製地圖背景和已發現的節點,視覺效果就形成擦除。
上述步驟103中所述根據解析出的傳感數據負載在所述節點分布視圖上繪製節點傳感數據的實時曲線來可視化傳感數據負載的變化包括對所述節點分布視圖上的每個節點配置一個傳感數據鍊表和一個曲線數組,並建立一個繪製曲線的定時器;當解析出新的傳感數據時,將解析出的傳感數據緩存到每個節點對應的鍊表中;當定時器消息到達時,從節點的傳感數據鍊表中取出一個數據放到節點對應的曲線數組中,再從所述曲線數組中取出各個節點對應的數據,根據從所述曲線數組中取出的數據繪製節點傳感數據的實時曲線。
所述曲線數組用於保存最近繪製過的N個傳感數據值,N為一個根據視覺效果設定的經驗值;每次繪製消息到來時,從節點的傳感數據鍊表中取出一個數據放到節點對應的曲線數組中;如果曲線數組已滿,則插入新數據,刪除最先存入的數據。
所述繪製節點傳感數據的實時曲線,是根據曲線數組中保存的數據進行繪製的,只繪製對應曲線數組中保存的數據,這樣利用視覺暫留使得曲線具有滾動的效果,給人一種實時性的感覺。當傳感數據的獲取的速度比繪製的速度慢時,從節點的傳感數據鍊表中取數據時總是取最後一個數據;在讀取傳感數據的時候,如果發現超過用戶設定的閾值,則發出警告信息。
該方法在步驟103之後進一步包括顯示解析出來的傳感數據包中的數據,可視化原始數據包的內容。所述顯示解析出來的傳感數據負載中的數據包括採用分欄的方式將解析出來的傳感數據包中的數據以十六進位數值顯示出來。每一列代表著一定含義的欄位,每一行代表一個數據包;當用戶選中某一行數據時,再以樹形方式顯示選中數據包的層次結構,顯示原始數據包的內容。
如圖2所示,圖2為本發明提供的實現無線傳感器網絡可視化總體架構的結構示意圖。該總體架構包括一個一定規模的無線傳感器網絡(網絡中應包含一個網關節點,所有數據將發送給網關節點),一臺伺服器主機,數臺請求服務的客戶機。其中伺服器主機上的軟體結構如圖3所示。它包括數據收集和本地可視化軟體、mysql資料庫,apache(提供遠程訪問),php解釋器,提供可視化服務的網站程序。
基於圖1所述的實現無線傳感器網絡可視化總體技術方案的實現流程圖和圖2所述的實現無線傳感器網絡可視化總體架構的結構示意圖,以下結合具體的實施例對本發明實現無線傳感器網絡可視化的方法進一步詳細說明。
實施例一在本實施例中,以實現無線傳感器網絡本地可視化為例,以下結合附圖進一步說明實現無線傳感器網絡本地可視化的詳細方法和步驟。
如圖4所示,圖4為依照本發明第一個實施例實現無線傳感器網絡本地可視化的方法流程圖,該方法包括以下步驟步驟401通過啟動一個監聽進程來獲取無線傳感器網絡中網關節點(或稱為基站)通過串口向主機發送的數據包。
定義每個數據包開始標誌為0×8e,定義結束標誌為0×7e,以此標誌來判斷通過串口接收到的二進位數據流中數據包的開始和結束。在數據包內不能再出現包開始和結束標誌,在數據包內部如需要傳輸包開始標誌0×8e,則將0×8e轉換為0×8d 0×6e,傳輸0×8d時將0×8d轉換成0×8d 0×6d;如果需要傳輸包結束標誌0×7e,則將0×7e轉換成0×7d 0×6e,傳輸0×7d時將0×7d轉換成0×7d 0×5d。在接收的時候再將轉義之後的字節還原。
步驟402對接收到的數據包進行解析,提取出每個數據包的源地址欄位、數據包傳輸路徑上各節點ID號、傳感數據負載。
步驟403通過數據包的源地址欄位發現網絡中存在的傳感器節點,並將發現的節點以一個小球顯示在節點分布視圖中。一段時間後,大部分或全部的節點都已經發現。用戶可以拖動視圖中節點標識(用小球表示),使視圖中節點的分布與傳感器節點的實際分布相同,便於觀察。
步驟404通過獲取的數據包的傳輸路徑上各節點ID號,以這些節點在視圖上的坐標為基準點繪製擬和曲線,同時高亮顯示數據包發送的源節點,並用箭頭指向數據包發送的目的節點,以此來可視化數據包的發送過程。
步驟405傳感數據負載的可視化,則用與時間軸相關的曲線來表示,可以便於觀察傳感數據隨時間的的波動變化。
實施例二在本實施例中,以實現無線傳感器網絡遠程可視化為例,以下結合附圖進一步說明實現無線傳感器網絡遠程可視化的詳細方法和步驟。
如圖5所示,圖5為依照本發明第二個實施例實現無線傳感器網絡遠程可視化的方法流程圖,該方法包括以下步驟步驟501從網關節點收集數據。通過啟動一個監聽進程來獲取無線傳感器網絡中網關節點(或稱為基站)通過串口向主機發送的數據包。
每個數據包開始標誌定義為0×8e,結束標誌定義為0×7e,以此標誌來判斷通過串口接收到的二進位數據流中數據包的開始和結束。在數據包內不能再出現包開始和結束標誌,在數據包內部如需要傳輸包開始標誌0×8e,則將0×8e轉換為0×8d 0×6e,傳輸0×8d時將0×8d轉換成0×8d 0×6d;如果需要傳輸包結束標誌0×7e,則將0×7e轉換成0×7d 0×6e,傳輸0×7d時將0×7d轉換成0×7d 0×5d。在接收的時候再將轉義之後的字節還原。
步驟502對接收到的數據包進行解析,提取出每個數據包的源地址欄位、數據包傳輸路徑上各節點ID號、傳感數據負載,將解析出的數據存入到資料庫中。
在本步驟中,將將解析出的數據存入到資料庫中是將遠程可視化所需要的數據保存到mysql資料庫中,為遠程可視化提供一個數據接口。主要保存經過解析之後的數據,包括發送數據包的節點地址,數據所經過路徑上的節點的地址,數據包中所攜帶的傳感數據的值,還有在本地可視化階段讓用戶拖動各個傳感器節點所獲取的各節點分布的相對位置信息,這樣在遠程可視化的時候可以將發現的節點直接顯示在對應的位置,方便形象地觀察網絡行為。
步驟503用戶在網站上註冊登錄後,選擇查看當前網絡的數據。用戶發出請求後,提供可視化服務的ActiveX控制項會自動下載到用戶主機中。ActiveX控制項首先連接上遠程伺服器上的資料庫,如果當前網絡處在運行中,則定時從資料庫中讀取當前網絡的運行信息。主要是讀取接收到的各個數據包,提取出每個數據包的源地址欄位、數據包傳輸路徑上各節點ID號、傳感數據負載。
步驟504通過數據包的源地址欄位發現網絡中存在的傳感器節點,並將發現的節點以一個小球顯示在節點分布視圖中。一段時間後,大部分或全部的節點都已經發現。在本地視圖中用戶拖動節點後,節點的分布信息會存入到資料庫中。遠程的ACTIVEX控制項會定時的讀取這些分布信息,並映射到控制項的視圖當中。
步驟505通過獲取的數據包的傳輸路徑上各節點ID號,以這些節點在視圖上的坐標為基準點繪製擬和曲線,同時高亮顯示數據包發送的源節點,並用箭頭指向數據包發送的目的節點,以此來可視化數據包的發送過程。
步驟506傳感數據負載的可視化,則用與時間軸相關的曲線來表示,可以便於觀察傳感數據隨時間的的波動變化。
在上述步驟503至506實現遠程可視化的過程中,首先藉助於伺服器端軟體apache提供遠程訪問的功能,接著利用PHP實現一個WEB界面,在mysql資料庫中建立一個用戶表,用於驗證訪問網站的用戶的合法性。然後將可視化的功能封裝在一個ActiveX控制項裡面,並製作控制項對應的INF文件(用於在訪問本網站用戶的機器上安裝控制項),將控制項和所需要的動態連結庫文件打包成CAB格式(壓縮控制項文件,減小因為傳輸造成的延時),在HTML網頁文件中調用。當用戶使用WEB瀏覽器請求可視化服務的時候,會自動下載CAB文件並提示是否安裝該控制項,安裝之後就可以觀察到可視化效果。
遠程可視化也提供了三個功能節點分布視圖、實時曲線視圖、原始數據視圖。實現步驟與本地可視化大體近似。為了在遠程方便的觀察網絡的行為我們必須知道節點的分布情況,所以此處還需要藉助資料庫中保存的節點分布的相對坐標信息。因為WEB頁面上的空間相對較小一些,而且也不可能與本地可視化的視圖一一對應,所以此處還須對坐標進行一些轉換。轉換過程如下database=ylocal*localWidth+xlocal;XWeb=((float)(database%localWidth)/localWidth)*webWidth;YWeb=((float)(database/localWidth)/localHeight)*webWidth;Database表示在資料庫中的坐標值,類型是整型,xlocal和ylocal為對應的節點在本地視圖中的x、y坐標,xWeb和yWeb為經過換算之後對應節點在WEB控制項中應該顯示的x、y坐標,localWidth和localHeight為本地視圖的寬度和高度,webWidth和webHeight為控制項在頁面上的寬度和高度。
顯示數據包發送情況時,對從資料庫中讀出的數據包進行緩存,這樣就能基本上再現整個網絡的活動過程。在繪製曲線的時候,為了保證實時性,則只從資料庫中取出各個節點最新的傳感數據並顯示。另外有可能用戶請求實時可視化服務的時候,資料庫中可能已經儲存了大量的歷史數據,可視化這些歷史數據會耗費大量的時間,而不能反應當前網絡的情況。所以在第一次訪問資料庫時,一般只取讀取最近收集到的若干組數據,一般為15組數據。
實施例三在本實施例中,以實現無線傳感器網絡遠程歷史數據可視化為例,闡述如何回放歷史數據,再現網絡過去某段時間的活動情況。在回放歷史數據之前,資料庫中應存儲有過去實驗所收集的歷史數據。以下結合附圖進一步說明實現無線傳感器網絡遠程歷史數據可視化的詳細方法和步驟。
如圖6所示,圖6為依照本發明第三個實施例實現無線傳感器網絡遠程歷史數據可視化的方法流程圖,該方法包括以下步驟步驟601用戶在提供可視化服務的網站上註冊,通過驗證後,就可以到登錄提供可視化服務的網站。
步驟602從歷史數據列表中選擇所要查看歷史數據。用戶發出請求後,提供可視化服務的ActiveX控制項會自動下載到用戶主機中。
步驟603ActiveX控制項首先連接上遠程伺服器上的資料庫,定時從與步驟602中選擇的歷史數據對應的資料庫中讀取一定數量的數據包,提取出每個數據包的源地址欄位、數據包傳輸路徑上各節點ID號、傳感數據負載。
步驟604通過數據包的源地址欄位發現網絡中存在的傳感器節點,並將發現的節點以一個小球顯示在節點分布視圖中。一段時間後,大部分或全部的節點都已經發現。在本地視圖中用戶拖動節點後,節點的分布信息會存入到資料庫中。遠程的ACTIVEX控制項會定時的讀取這些分布信息,並映射到控制項的視圖當中。
步驟605通過獲取的數據包的傳輸路徑上各節點ID號,以這些節點在視圖上的坐標為基準點繪製擬和曲線,同時高亮顯示數據包發送的源節點,並用箭頭指向數據包發送的目的節點,以此來可視化數據包的發送過程。
步驟606傳感數據負載的可視化,則用與時間軸相關的曲線來表示,可以便於觀察傳感數據隨時間的的波動變化。
以上所述的具體實施例,對本發明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發明的具體實施例而已,並不用於限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
權利要求
1.一種實現無線傳感器網絡可視化的方法,其特徵在於,該方法包括A、啟動監聽進程獲取無線傳感器網絡中網關節點通過串口向主機發送的數據包;B、對獲取的數據包進行解析,提取出每個數據包的源地址欄位、數據包傳輸路徑上各節點ID號、傳感數據負載;C、根據解析出的數據包的源地址欄位構建節點分布視圖來可視化節點分布,根據解析出的數據包傳輸路徑上各節點ID號在所述節點分布視圖上繪製數據包的路由曲線來可視化數據包的發送過程,根據解析出的傳感數據負載構建傳感數據視圖,通過在所述傳感數據視圖上繪製各節點傳感數據的實時曲線來可視化傳感數據負載的變化。
2.根據權利要求1所述的實現無線傳感器網絡可視化的方法,其特徵在於,步驟A中所述獲取數據包是以每個數據包的開始標誌和結束標誌來判斷接收的二進位數據流中數據包的開始和結束的。
3.根據權利要求2所述的實現無線傳感器網絡可視化的方法,其特徵在於,所述數據包開始標誌為0x8e,結束標誌為0x7e,在數據包內不再出現開始標誌和結束標誌;在數據包內部如需要傳輸開始標誌0x8e,則將0x8e轉換為0x8d 0x6e,傳輸0x8d時將0x8d轉換成0x8d 0x6d;在數據包內部如果需要傳輸結束標誌0x7e,則將0x7e轉換成0x7d 0x6e,傳輸0x7d時將0x7d轉換成0x7d 0x5d;在接收的時候再將轉換之後的字節還原。
4.根據權利要求1所述的實現無線傳感器網絡可視化的方法,其特徵在於,步驟C中所述根據解析出的數據包的源地址欄位構建節點分布視圖來可視化節點分布包括根據解析出的數據包的源地址欄位發現當前網絡中存在著哪些節點,並將發現的節點以一個小球的形式顯示出來,在小球旁邊標明節點的地址;選擇一張表徵節點所分布的實際環境的圖片作為地圖背景,將發現的節點拖動到與實際分布相對應的位置,構建節點分布視圖。
5.根據權利要求4所述的實現無線傳感器網絡可視化的方法,其特徵在於,在所述構建節點分布視圖的過程中,地圖背景和所有節點的繪製採用雙緩衝的方式,即先在內存中繪製好,然後直接將內存中的圖像數據直接輸出到屏幕中。
6.根據權利要求1所述的實現無線傳感器網絡可視化的方法,其特徵在於,步驟C中所述根據解析出的數據包傳輸路徑上各節點ID號在所述節點分布視圖上繪製數據包的路由曲線來可視化數據包的發送過程包括當數據包到達時,解析出數據包中的路由數據,獲取該數據包所經過的各個節點的ID號,然後在所述節點分布視圖上繪製路由包的路由曲線,並高亮顯示發送數據包的節點。
7.根據權利要求6所述的實現無線傳感器網絡可視化的方法,其特徵在於,在繪製所述路由曲線時,直接在屏幕上繪製,繪製完後啟動定時器,當定時器消息到來時,擦除繪製效果。
8.根據權利要求7所述的實現無線傳感器網絡可視化的方法,其特徵在於,所述擦除是以雙緩衝方式重新繪製地圖背景和已發現的節點。
9.根據權利要求1所述的實現無線傳感器網絡可視化的方法,其特徵在於,步驟C中所述根據解析出的傳感數據負載構建傳感數據視圖,通過在所述傳感數據視圖上繪製各節點傳感數據的實時曲線來可視化傳感數據負載的變化包括對所述節點分布視圖上的每個節點配置一個傳感數據鍊表和一個曲線數組,並建立一個繪製曲線的定時器;當解析出新的傳感數據時,將解析出的傳感數據緩存到每個節點對應的鍊表中;當定時器消息到達時,從節點的傳感數據鍊表中取出一個數據放到節點對應的曲線數組中,再從所述曲線數組中取出各個節點對應的數據,根據從所述曲線數組中取出的數據繪製節點傳感數據的實時曲線。
10.根據權利要求9所述的實現無線傳感器網絡可視化的方法,其特徵在於,所述曲線數組用於保存最近繪製過的N個傳感數據值,N為一個根據視覺效果設定的經驗值;每次繪製消息到來時,從節點的傳感數據鍊表中取出一個數據放到節點對應的曲線數組中;如果曲線數組已滿,則插入新數據,刪除最先存入的數據。
11.根據權利要求9所述的實現無線傳感器網絡可視化的方法,其特徵在於,所述繪製節點傳感數據的實時曲線,是根據曲線數組中保存的數據進行繪製的;當傳感數據的獲取的速度比繪製的速度慢時,從節點的傳感數據鍊表中取數據時總是取最後一個數據;在讀取傳感數據的時候,如果發現超過用戶設定的閾值,則發出警告信息。
12.根據權利要求1所述的實現無線傳感器網絡可視化的方法,其特徵在於,在進行遠程可視化時,所述步驟B與步驟C之間進一步包括將解析出的每個數據包的源地址欄位、數據包傳輸路徑上各節點ID號、傳感數據負載保存到資料庫中,並遠程獲取資料庫中保存的每個數據包的源地址欄位、數據包傳輸路徑上各節點ID號、傳感數據負載。
13.根據權利要求12所述的實現無線傳感器網絡可視化的方法,其特徵在於,預先在終端配置提供可視化服務的ActiveX控制項,所述遠程獲取資料庫中保存的每個數據包的源地址欄位、數據包傳輸路徑上各節點ID號、傳感數據負載包括所述ActiveX控制項首先連接上遠程伺服器上的資料庫,如果需要查看當前網絡數據,則定時從資料庫中讀取當前網絡的運行數據信息,即讀取網絡當前每個數據包的源地址欄位、數據包傳輸路徑上各節點ID號、傳感數據負載;如果需要查看網絡歷史活動信息,則從資料庫的歷史數據表中讀取網絡的歷史數據信息,即讀取網絡以前每個數據包的源地址欄位、數據包傳輸路徑上各節點ID號、傳感數據負載。
14.根據權利要求1所述的實現無線傳感器網絡可視化的方法,其特徵在於,該方法進一步包括顯示解析出來的傳感數據包中的數據,可視化原始數據包的內容。
15.根據權利要求14所述的實現無線傳感器網絡可視化的方法,其特徵在於,所述顯示解析出來的傳感數據包中的原始數據包括採用分欄的方式將解析出來的傳感數據包中的數據以十六進位數值顯示出來,每一列代表著一定含義的欄位,每一行代表一個數據包;當用戶選中某一行數據時,再以樹形方式顯示選中數據包的層次結構,顯示原始數據包的內容。
全文摘要
本發明公開了一種實現無線傳感器網絡可視化的方法,包括A、啟動監聽進程獲取無線傳感器網絡中網關節點通過串口向主機發送的數據包;B、對獲取的數據包進行解析,提取出每個數據包的源地址欄位、數據包傳輸路徑上各節點ID號、傳感數據負載;C、根據解析出的數據包的源地址欄位構建節點分布視圖來可視化節點分布,根據解析出的數據包傳輸路徑上各節點ID號在所述節點分布視圖上繪製數據包的路由曲線來可視化數據包的發送過程,根據解析出的傳感數據負載構建傳感數據視圖,繪製各節點傳感數據的實時曲線來可視化傳感數據負載的變化。利用本發明,用戶可在本地或遠程實時觀察所獲取的傳感數據、無線傳感器網絡網絡結構和網絡內部數據包的發送。
文檔編號H04L29/08GK1964284SQ20061014435
公開日2007年5月16日 申請日期2006年12月4日 優先權日2006年12月4日
發明者盧業偉, 楊宇, 夏鵬, 徐勇軍, 李曉維 申請人:中國科學院計算技術研究所