專利名稱::一種適用于無線傳感器網(wǎng)絡(luò)的節(jié)點實時數(shù)據(jù)解析方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及無線傳感器網(wǎng)絡(luò)領(lǐng)域,尤其涉及對無線傳感器網(wǎng)絡(luò)中節(jié)點數(shù)據(jù)的實時分析、提取、處理和顯示的實現(xiàn)方法。
背景技術(shù):
:無線傳感器網(wǎng)絡(luò)(WirelessSensorNetworks,WSN)就是由多個傳感器節(jié)點通過無線通信方式組成的網(wǎng)絡(luò)系統(tǒng)。開發(fā)者需要針對具體的應(yīng)用為不同功能的節(jié)點編寫不同的程序,但由于傳感器節(jié)點缺乏人機界面,難以驗證程序的運行效果,所以,開發(fā)者往往通過傳感器網(wǎng)絡(luò)數(shù)據(jù)收集系統(tǒng)來收集網(wǎng)絡(luò)節(jié)點數(shù)據(jù),再對所收集的數(shù)據(jù)進行后臺處理,離線分析相關(guān)程序及算法的性能。由于傳感器節(jié)點收發(fā)的數(shù)據(jù)包包含協(xié)議數(shù)據(jù)與用戶數(shù)據(jù)兩部分,協(xié)議數(shù)據(jù)是節(jié)點通信中各層協(xié)議需要的數(shù)據(jù),參照相應(yīng)的協(xié)議??山忉尦龈髯侄蔚囊饬x;用戶數(shù)據(jù)是研究人員需要利用傳感器節(jié)點來傳輸?shù)男畔?,?shù)據(jù)內(nèi)容不受協(xié)議限制,具體的數(shù)據(jù)結(jié)構(gòu)及長度由相關(guān)工作人員所決定。。由于數(shù)據(jù)位置,類型,長度都不可預(yù)料,現(xiàn)有的測試平臺都缺乏對用戶數(shù)據(jù)部分的解析功能。
發(fā)明內(nèi)容有鑒于此,本發(fā)明提供一種通用的適用于無線傳感器網(wǎng)絡(luò)的實時數(shù)據(jù)解析方法,使用戶在無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)收集工具下,可以輸入數(shù)據(jù)解析規(guī)則,從而實時對數(shù)據(jù)進行復(fù)雜處理、分析及顯示,輔助研究人員驗證相關(guān)算法及程序的有效性。所述的適于用無線傳感器網(wǎng)絡(luò)實時數(shù)據(jù)解析方法包括收集接口、解析腳本、腳本編輯環(huán)境、腳本編譯器及應(yīng)用情景模塊。以上模塊搭建起節(jié)點數(shù)據(jù)分析平臺,其中,所述的收集接口用于直接從傳感器網(wǎng)絡(luò)中收集數(shù)據(jù),或者從其它無線傳感器網(wǎng)絡(luò)數(shù)據(jù)收集工具中收集數(shù)據(jù)。所述的解析腳本定義了豐富的數(shù)據(jù)解析規(guī)則,用戶可以根據(jù)解析規(guī)則,自定義解析腳本,對收集的數(shù)據(jù)進行過濾、提取、聚類、模式匹配等復(fù)雜處理及分析,解析腳本易修改、保存及重用,每條解析腳本可以用于多次數(shù)據(jù)解析,每次數(shù)據(jù)解析也可運行多條解析腳本。解析規(guī)則指在自定義字段中,用戶需要指明這個字段對應(yīng)的數(shù)據(jù)類型,在用戶數(shù)據(jù)部分的開始位置,數(shù)據(jù)長度,數(shù)據(jù)類型。也可以不指明位置與長度,分析器將按順序計算開始位置和采用該類型的默認長度來進行數(shù)據(jù)轉(zhuǎn)換,對于某些長度確定的類型,長度的輸入將被忽略,例如intl6將固定采用2個字節(jié)長度,而int默認為4字節(jié)長度,但允許指定1,2,4或者8位長度,string類型則可以輸入任意長度數(shù)值。解析規(guī)則的數(shù)據(jù)過濾條件,可以但不限定以where關(guān)鍵字表示開始,支持同時指定多個清楚條件,條件之間支持邏輯運算。每個條件以字段值直接或經(jīng)過數(shù)學(xué)運算后匹配進行過濾。3所述的解析腳本編輯環(huán)境提供的關(guān)鍵字列表功能,通過智能感知用戶正在輸入的文字,提示關(guān)鍵字列表,方便用戶進行快捷的輸入,同時對已經(jīng)輸入的語句進行關(guān)鍵字匹配,不同類型的關(guān)鍵字顯示不同的顏色。所述的腳本編譯器可以檢測腳本是否符合解析規(guī)則,如果輸入腳本不符合解析規(guī)則,將提示出錯位置與相關(guān)信息方便用戶改正,如果語法正確,將調(diào)用buildtable方法,獲得一個table對象,解釋器根據(jù)收集的數(shù)據(jù)與table對象判斷數(shù)據(jù)是否符合過濾條件,如果不符合,將忽略處理,如果符合,將提取數(shù)據(jù),并填充到table對象中,依次按照用戶定義的解析規(guī)則進行處理分析,最后分析處理完的結(jié)果和table對象傳給應(yīng)用情景模塊。所述的應(yīng)用情景模塊根據(jù)腳本解析器傳來的table對象中關(guān)于應(yīng)用情景的定義,動態(tài)生成應(yīng)用情景顯示區(qū)。顯示區(qū)可以線性圖、柱狀圖、等圖表顯示。本發(fā)明的有益效果簡單易用只需要腳本語句,不需要復(fù)雜操作。容易理解語法類似T-SQL語言,語法簡單,規(guī)則嚴謹。數(shù)據(jù)解析真正實現(xiàn)了節(jié)點數(shù)據(jù)中的用戶數(shù)據(jù)解析功能。直觀觀察開發(fā)人員可以直觀的觀察節(jié)點的數(shù)據(jù)包內(nèi)容。數(shù)據(jù)排版可以隨意指定需要字段,順序,別名,清晰明了。數(shù)據(jù)捕捉通過指定嚴格的過濾條件,可以實現(xiàn)數(shù)據(jù)捕捉功能。數(shù)據(jù)搜索利用本發(fā)明,可以對歷史數(shù)據(jù)實現(xiàn)強大的搜索功能。適應(yīng)性強當節(jié)點程序變動時,可以通過修改語句快速適應(yīng)新規(guī)則。方便比較對同一個節(jié)點同時使用幾個腳本,可以查看不同情況下的數(shù)據(jù)差別。附圖為自定義分析流程實施方式為了使上述目的、技術(shù)方案、以及優(yōu)點更加清楚,下面結(jié)合具體實施例進行詳細描述。本發(fā)明實施例提供一系統(tǒng)用于自定義解析及顯示無線傳感器網(wǎng)絡(luò)數(shù)據(jù)的方法,包括用于收集傳感器網(wǎng)絡(luò)數(shù)據(jù)收集接口、自定義解析語句的解析腳本,輔助編寫解析腳本語言的腳本編輯環(huán)境,生成解析程序?qū)ο蟮哪_本編譯器和豐富的應(yīng)用情景顯示模塊。收集接口分別提供直接用于收集傳感器網(wǎng)絡(luò)的串口接口,和接受來自第三方的采集工具的TCP/IP接口。通過將所有的傳感器節(jié)點設(shè)備連接到具有服務(wù)器終端,收集接口可以直接收集傳感器節(jié)點的數(shù)據(jù)。收集接口也可以連接到指定的TCP/IP端口與第三收集工具進行通信,收集第三方工具傳送過來的傳感器數(shù)據(jù)。解析腳本主要包括過濾語句、分析語句及顯示語句過濾語句主要負責節(jié)點數(shù)據(jù)的篩選過濾,分析語句包含了數(shù)據(jù)處理、分析的算法及模式,通過運算分析語句生成的結(jié)果和顯示語句的定義,可以動態(tài)的生成信息顯示區(qū)。所有的解析腳本生成后都會加載到同一個內(nèi)存表中,用戶可以在使用的過程中隨時進行切換。以下結(jié)合例子進一步說明腳本的組成selectsourceid,intl6as"MS",int(3,l)+uxintl6astimeas集時間,,where(intl6+5)>30orissend=true上述的例子中,指定了過濾條件中,用戶數(shù)據(jù)中,第一個數(shù)據(jù)類型intl6,它的值加上5后如果大于30,或者這個數(shù)據(jù)包是個發(fā)送的數(shù)據(jù)包,則符合過濾條件,將進行數(shù)據(jù)提取,否則將忽略處理。上述例子中,指定以默認的字段名提取數(shù)據(jù)包的來源節(jié)點id作為第一個字段,第二個提取字段是自定義字段用戶數(shù)據(jù)中第一個數(shù)據(jù)類型為intl6,以“濕度”作為字段名提取,第三個字段是個復(fù)合的自定義字段,從用戶數(shù)據(jù)第3個字節(jié)開始,取一個字節(jié)的int類型,加上接下來的uxint類型作為“溫度”返回,最后一個字段為平臺附加上的采集時間信肩、ο腳本編譯器主要有語句分析,數(shù)據(jù)過濾、處理及調(diào)用應(yīng)用情景模塊顯示結(jié)果的功能。所述的腳本編譯器對腳本的語句分析功能,包括對語句進行詞法分析,提取關(guān)鍵字、運算符、數(shù)字以及字符串,并通過讀取xml文件中指定的記號與記號類的對應(yīng)關(guān)系,轉(zhuǎn)換為相應(yīng)的記號對象,保存到鏈表中,每個記號對象都繼承自一個token對象,token對象具有tokenvalue屬性作為運算結(jié)果,token對象可以有多個子對象,當調(diào)用execute方法時,將對每個子對象進行遞歸調(diào)用,使得最終返回結(jié)果,每個token對象具有優(yōu)先級屬性,不同的類型的token對象優(yōu)先等級不同,腳本編譯器將根據(jù)優(yōu)先級來生產(chǎn)語法樹。腳本編譯器對鏈表中每個記號對象進行分析,先以第一個select記號作為語法樹的根,對后面的記號對象根據(jù)優(yōu)先級不同進行處理,按照“高進低處”的原則把優(yōu)先級高的壓入堆棧,優(yōu)先級低的對象彈出作為當前對象的子,最終形成一棵語法樹。對于某些特殊對象,將進行額外的處理,例如as記號對象,將把其后的字符串對象賦值給最近的字段對象的一個屬性以用作返回,對于自定義字段對象,將進行后面對象的查找,以匹配自定義對象的解析規(guī)則,對于where對象,將作為select對象的最后一個葉子。記號與記號對象對應(yīng)關(guān)系,以xml文檔的格式進行規(guī)定,例如<TokenRecord><TokenKeyword>〈TokenWord="and"Class="TokenAnd"/>〈TokenWord=〃false〃Class=〃TokenBool〃/></TokenKeyword><TokenSymbol>〈TokenWord=〃(〃Class=〃TokenLeftBracket〃Example=〃2氺(5—3)=4〃/>〈TokenWord=〃+〃Class=〃TokenPlus〃Example=//2+3=5或,abcJ+'def,=,abcdef,〃/></TokenSymbol><TokenField>〈TokenWord=〃issend〃Class=〃TokenIsSendField〃/>〈TokenWord="localid"Class="TokenLocalIdField"/>5〈TokenWord=〃sourceid〃Class=〃TokenSourceIdField〃/></TokenField><TokenSQL>〈TokenWord=〃select〃Class=〃TokenSelect〃Example=〃select氺〃/>〈TokenWord=〃where〃Class=〃TokenWhere〃Example=〃where*〃/>〈TokenWord=〃as〃Class=〃TokenAs〃Example=〃where*〃/></TokenSQL><TokenCustomField>〈TokenWord=〃int〃Class=〃TokenIntCustomField〃/>〈TokenWord=〃single〃Class=〃TokenSingleCustomField〃/></TokenCustomField></TokenRecord>0所述腳本編譯器的執(zhí)行腳本語句中的數(shù)據(jù)過濾、處理及調(diào)用應(yīng)用情景模塊顯示結(jié)果功能包括以下步驟。腳本編譯器調(diào)用buildtable方法獲得一個table對象,該對象包含有要解析的字段類型,字段名等信息。收到收集接口的數(shù)據(jù)后,腳本編譯器開始判斷table對象是否有過濾語言對象where,如果有,則調(diào)用where對象的execute方法,并判斷運行結(jié)果,如果為真,將進行數(shù)據(jù)提取,填充到table中,否則忽略數(shù)據(jù)。where對象的execute方法,將對where下面的子對象進行遞歸調(diào)用。以上述例子為例,where對象下的子將是or對象,or對象第一個子為“〉”對象,第二個子為“=”對象。Or對象將分別調(diào)用這兩個對象的execute方法后,對兩者的值進行or比較,得到的值賦給tokenvalue屬性供上面的where對象作為最終過濾條件判斷。上述例子中,“=”對象的第一個對象為固定字段issend,第二個對象為數(shù)值true,“=”記號對象將調(diào)用issend字段的execute方法,得到的值與true進行相等判斷,得到的結(jié)果賦值給tokenvalue屬性以供上層的or對象使用。issend對象將對傳入的數(shù)據(jù)進行數(shù)據(jù)提取,取得的數(shù)值賦給tokenvalue屬性,以供層的”=”對象使用。true作為數(shù)值類型的對象,execute方法不進行任何操作,上層對象直接對其tokenvalue值進行使用。腳本編譯器執(zhí)行數(shù)據(jù)處理發(fā)生在執(zhí)行完數(shù)據(jù)過濾操作后。數(shù)據(jù)處理既可是簡單的加減乘除運行,也可以是調(diào)用其它引擎進行聚類、模式匹配等數(shù)據(jù)處理。簡單的運算如上述例子,腳本編譯器直接可以計算出結(jié)果。對于復(fù)雜的數(shù)據(jù)處理,用戶可以根據(jù)需要選擇相關(guān)處理引擎來輔助分析處理。以采用Matlab引擎為例selectEngine(,,MatLab,,,EngineArray(nxuintl6(7,2),Pathas〃溫度〃nxuintl6(9,2)as〃iS度〃nxuintl6(11,2)as〃光照〃wheredatatype=〃S〃andsendtype=75第一個參數(shù)調(diào)用的引擎的名稱,第二個參數(shù)是需要傳入的數(shù)據(jù),第三個參數(shù)是保存計算過程的XML文件的路徑,這樣便可以將EngineArray里的參數(shù)傳入到MatLab的引擎函數(shù),MatLab引擎便會調(diào)用I^ath里保存的計算方法進行計算并返回計算結(jié)果,然后把每個字段的結(jié)果填充到table對象中,以事件方式通知應(yīng)用情景模塊顯示。應(yīng)用情景模塊根據(jù)table對象中的信息,生成需要顯示的內(nèi)容如溫度、溫度、光照和其對應(yīng)的結(jié)果。權(quán)利要求1.一種適用于無線傳感器網(wǎng)絡(luò)的節(jié)點實時數(shù)據(jù)解析方法,其特征在于通用的適用于無線傳感器網(wǎng)絡(luò)的實時數(shù)據(jù)解析方法,通過部署收集接口、解析腳本、腳本編輯環(huán)境、腳本編譯器及應(yīng)用情景模塊,搭建平臺對用戶數(shù)據(jù)進行分析;在平臺中提供腳本輸入模塊,用戶以腳本形式輸入自定義的解析語句,在平臺中可以預(yù)設(shè)場景,用戶可以通過選擇場景指定解析語句,分析器模塊根據(jù)語法規(guī)則對解析語句進行分析,生成解釋器實例,平臺把采集到的數(shù)據(jù)或數(shù)據(jù)庫中讀取的數(shù)據(jù)傳遞到解釋器,解釋器對符合過濾條件的數(shù)據(jù)進行數(shù)據(jù)解析,提取數(shù)據(jù)返回,以表格方式顯示所有數(shù)據(jù)或以圖形方式顯示最新數(shù)據(jù),使用戶在無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)收集工具下,通過輸入數(shù)據(jù)解析規(guī)則,從而實時對復(fù)雜數(shù)據(jù)進行處理、分析及顯示,輔助研究人員驗證相關(guān)算法及程序的有效性。2.根據(jù)權(quán)利要求1所述的一種適用于無線傳感器網(wǎng)絡(luò)的節(jié)點實時數(shù)據(jù)解析方法,其特征在于提供一個數(shù)據(jù)分析平臺,對無線傳感器網(wǎng)絡(luò)中的包括用戶數(shù)據(jù)部分在內(nèi)的傳感器節(jié)點收發(fā)的數(shù)據(jù)包進行解析。3.根據(jù)權(quán)利要求1所述的一種適用于無線傳感器網(wǎng)絡(luò)的節(jié)點實時數(shù)據(jù)解析方法,其特征在于通過增加收集接口、解析腳本、腳本編輯環(huán)境、腳本編譯器及應(yīng)用情景模塊實現(xiàn)對于一般無線傳感器網(wǎng)絡(luò)的實時數(shù)據(jù)進行解析。4.根據(jù)權(quán)利要求1所述的一種適用于無線傳感器網(wǎng)絡(luò)的節(jié)點實時數(shù)據(jù)解析方法,其特征在于每個節(jié)點可以同時打開多個輸入模塊,輸入不同的語句實現(xiàn)不同的解析規(guī)則,也可以針對所有節(jié)點打開輸入模塊,對所有節(jié)點使用同樣的解析規(guī)則,每一個解析語句將會生成一個解釋器,而每個解釋器是獨立運作,不影響其他解釋器的運行。5.根據(jù)權(quán)利要求1所述的一種適用于無線傳感器網(wǎng)絡(luò)的節(jié)點實時數(shù)據(jù)解析方法,其特征在于收集接口用于直接從傳感器網(wǎng)絡(luò)中收集數(shù)據(jù),或者從其它無線傳感器網(wǎng)絡(luò)數(shù)據(jù)收集工具中收集數(shù)據(jù),收集接口分別提供直接用于收集傳感器網(wǎng)絡(luò)的串口接口,和接受來自第三方的采集工具的TCP/IP接口;通過將所有的傳感器節(jié)點設(shè)備連接到具有服務(wù)器終端,收集接口可以直接收集傳感器節(jié)點的數(shù)據(jù)。6.根據(jù)權(quán)利要求1所述的一種適用于無線傳感器網(wǎng)絡(luò)的節(jié)點實時數(shù)據(jù)解析方法,其特征在于用戶可以根據(jù)解析規(guī)則,自定義解析腳本,對收集的數(shù)據(jù)進行過濾、提取、聚類、模式匹配等復(fù)雜處理及分析,解析腳本易修改、保存及重用,每條解析腳本可以用于多次數(shù)據(jù)解析,每次數(shù)據(jù)解析也可運行多條解析腳本。7.根據(jù)權(quán)利要求1所述的一種適用于無線傳感器網(wǎng)絡(luò)的節(jié)點實時數(shù)據(jù)解析方法,其特征在于腳本編譯器主要實現(xiàn)語句分析,數(shù)據(jù)過濾、處理及調(diào)用應(yīng)用情景模塊顯示結(jié)果。8.根據(jù)權(quán)利要求1所述的一種適用于無線傳感器網(wǎng)絡(luò)的節(jié)點實時數(shù)據(jù)解析方法,其特征在于解析腳本編輯環(huán)境提供的關(guān)鍵字列表功能,通過智能感知用戶正在輸入的文字,提示關(guān)鍵字列表,方便用戶進行快捷的輸入,同時對已經(jīng)輸入的語句進行關(guān)鍵字匹配,不同類型的關(guān)鍵字顯示不同的顏色。全文摘要本發(fā)明公開了一種適用于無線傳感器網(wǎng)絡(luò)的節(jié)點實時數(shù)據(jù)解析方法,即通過部署收集接口、解析腳本、腳本編輯環(huán)境、腳本編譯器及應(yīng)用情景模塊,形成解析平臺,對用戶數(shù)據(jù)進行分析。平臺提供腳本輸入模塊,在平臺中可以預(yù)設(shè)場景,用戶可以通過選擇場景指定解析語句,分析器模塊根據(jù)語法規(guī)則對解析語句進行分析,生成解釋器實例,平臺把采集到的數(shù)據(jù)或數(shù)據(jù)庫中讀取的數(shù)據(jù)傳遞到解釋器,解釋器對符合過濾條件的數(shù)據(jù)進行數(shù)據(jù)解析,提取數(shù)據(jù)返回,以表格方式顯示所有數(shù)據(jù)或以圖形方式顯示最新數(shù)據(jù),使用戶在無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)收集工具下,通過輸入數(shù)據(jù)解析規(guī)則,實時對復(fù)雜數(shù)據(jù)進行處理、分析及顯示,輔助研究人員驗證相關(guān)算法及程序的有效性。文檔編號H04W84/18GK102063470SQ20101058728公開日2011年5月18日申請日期2010年12月14日優(yōu)先權(quán)日2010年12月14日發(fā)明者劉云淮,趙云,陳振宇,高民,黃才炎申請人:廣州市香港科大霍英東研究院