專(zhuān)利名稱(chēng):一種基于Zigbee協(xié)議的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)結(jié)構(gòu)維護(hù)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及無(wú)線(xiàn)傳感器網(wǎng)絡(luò)領(lǐng)域,尤其涉及一種基于Zigbee協(xié)議的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)結(jié)構(gòu)維護(hù)方法及系統(tǒng)。
背景技術(shù):
Zigbee是一種開(kāi)放性的低成本、低功耗、低數(shù)據(jù)速率、低復(fù)雜度、雙向傳輸、高可靠性的新型短距離無(wú)線(xiàn)通信技術(shù),該技術(shù)應(yīng)用簡(jiǎn)單,電池壽命長(zhǎng),成本低,可靠性高,具有自組網(wǎng)和自恢復(fù)能力。Zigbee可以在數(shù)千個(gè)節(jié)點(diǎn)之間相互協(xié)調(diào)實(shí)現(xiàn)通信。這些節(jié)點(diǎn)只需要很少的能量,以接力的方式通過(guò)無(wú)線(xiàn)電波將數(shù)據(jù)從一個(gè)節(jié)點(diǎn)傳到另一個(gè)節(jié)點(diǎn),所以它們的通信效率非常高。因此Zigbee在傳感器網(wǎng)絡(luò)、智能家居、工業(yè)自動(dòng)化等領(lǐng)域有著廣泛的應(yīng)用。為了方便的獲知網(wǎng)絡(luò)的信息,需要對(duì)網(wǎng)絡(luò)的結(jié)構(gòu)進(jìn)行監(jiān)控和維護(hù)。以基于Zigbee協(xié)議的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)為例,目前,主要通過(guò)在網(wǎng)絡(luò)的全功能節(jié)點(diǎn)處即網(wǎng)關(guān)節(jié)點(diǎn)和路由節(jié)點(diǎn)處維護(hù)一張只與全功能節(jié)點(diǎn)直接 關(guān)聯(lián)的節(jié)點(diǎn)信息的關(guān)聯(lián)表對(duì)網(wǎng)絡(luò)進(jìn)行管理。當(dāng)上述關(guān)聯(lián)表中的節(jié)點(diǎn)發(fā)生變化時(shí),進(jìn)行更新。但因?yàn)橹槐4嬷苯雨P(guān)聯(lián)的節(jié)點(diǎn)信息,因此,上述方式無(wú)法使用戶(hù)從網(wǎng)關(guān)處獲知整個(gè)網(wǎng)絡(luò)的主要結(jié)構(gòu)信息。
發(fā)明內(nèi)容
本發(fā)明旨在提供一種基于Zigbee協(xié)議的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)結(jié)構(gòu)維護(hù)方法及系統(tǒng),以實(shí)現(xiàn)在網(wǎng)關(guān)節(jié)點(diǎn)處對(duì)網(wǎng)絡(luò)中所有節(jié)點(diǎn)信息的維護(hù)?;诖耍景l(fā)明提供了一種基于Zigbee協(xié)議的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)結(jié)構(gòu)的維護(hù)方法,所述方法包括網(wǎng)關(guān)節(jié)點(diǎn)預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的步驟;所述網(wǎng)關(guān)節(jié)點(diǎn)檢測(cè)到網(wǎng)關(guān)子節(jié)點(diǎn)的變化,所述網(wǎng)關(guān)節(jié)點(diǎn)生成網(wǎng)關(guān)子節(jié)點(diǎn)變化信息的步驟,所述網(wǎng)關(guān)子節(jié)點(diǎn)包括網(wǎng)絡(luò)中與網(wǎng)關(guān)節(jié)點(diǎn)存在父子關(guān)系的路由節(jié)點(diǎn)和/或終端節(jié)占.網(wǎng)絡(luò)中路由節(jié)點(diǎn)檢測(cè)到路由子節(jié)點(diǎn)的變化,所述路由節(jié)點(diǎn)生成路由子節(jié)點(diǎn)變化信息并上報(bào)至所述網(wǎng)關(guān)節(jié)點(diǎn)的步驟;所述網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)網(wǎng)絡(luò)中節(jié)點(diǎn)的變化信息更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶(hù)查詢(xún)的步驟,所述網(wǎng)絡(luò)中節(jié)點(diǎn)包括所述網(wǎng)關(guān)子節(jié)點(diǎn)和所述路由子節(jié)點(diǎn);其中,所述網(wǎng)關(guān)節(jié)點(diǎn)預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的步驟包括;所述網(wǎng)關(guān)節(jié)點(diǎn)在所述網(wǎng)絡(luò)中廣播節(jié)點(diǎn)信息收集命令;網(wǎng)絡(luò)中的節(jié)點(diǎn)根據(jù)收到的所述廣播節(jié)點(diǎn)信息收集命令返回自身的節(jié)點(diǎn)信息至所述網(wǎng)關(guān)節(jié)點(diǎn);所述網(wǎng)關(guān)節(jié)點(diǎn)將所述網(wǎng)絡(luò)中的節(jié)點(diǎn)返回的所述節(jié)點(diǎn)信息進(jìn)行組合生成網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表并存儲(chǔ)。優(yōu)選的,所述網(wǎng)關(guān)節(jié)點(diǎn)檢測(cè)到網(wǎng)關(guān)子節(jié)點(diǎn)的變化,生成網(wǎng)關(guān)子節(jié)點(diǎn)變化信息,其中,所述網(wǎng)關(guān)子節(jié)點(diǎn)變化信息包括網(wǎng)關(guān)子節(jié)點(diǎn)加入信息和網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息;所述網(wǎng)關(guān)節(jié)點(diǎn)檢測(cè)到網(wǎng)關(guān)子節(jié)點(diǎn)的變化,生成網(wǎng)關(guān)子節(jié)點(diǎn)加入信息,包括當(dāng)一節(jié)點(diǎn)以所述網(wǎng)關(guān)節(jié)點(diǎn)為父節(jié)點(diǎn)加入所述網(wǎng)絡(luò)時(shí),所述網(wǎng)關(guān)節(jié)點(diǎn)生成網(wǎng)關(guān)子節(jié)點(diǎn)加入信息;所述網(wǎng)關(guān)節(jié)點(diǎn)檢測(cè)到網(wǎng)關(guān)子節(jié)點(diǎn)的變化,生成網(wǎng)關(guān) 子節(jié)點(diǎn)丟失信息,包括所述網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點(diǎn)確定下一跳網(wǎng)關(guān)子節(jié)點(diǎn);所述網(wǎng)關(guān)節(jié)點(diǎn)將所述待發(fā)送數(shù)據(jù)發(fā)送至所述下一跳網(wǎng)關(guān)子節(jié)點(diǎn);所述網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷所述下一跳網(wǎng)關(guān)子節(jié)點(diǎn)是否丟失;當(dāng)所述網(wǎng)關(guān)子節(jié)點(diǎn)丟失時(shí),則所述網(wǎng)關(guān)節(jié)點(diǎn)生成網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息。優(yōu)選的,所述網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)網(wǎng)絡(luò)中節(jié)點(diǎn)的變化信息更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表,包括當(dāng)所述節(jié)點(diǎn)的變化信息為節(jié)點(diǎn)的加入信息時(shí),所述網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述節(jié)點(diǎn)是否存在于所述網(wǎng)絡(luò)中;若所述節(jié)點(diǎn)存在于所述網(wǎng)絡(luò)中,則所述網(wǎng)關(guān)節(jié)點(diǎn)更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中存儲(chǔ)的所述節(jié)點(diǎn)的相應(yīng)信息;若所述節(jié)點(diǎn)未存在于所述網(wǎng)絡(luò)中,則所述網(wǎng)關(guān)節(jié)點(diǎn)在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中為所述節(jié)點(diǎn)分配存儲(chǔ)空間,并增加對(duì)應(yīng)的父子信息;當(dāng)所述節(jié)點(diǎn)的變化信息為節(jié)點(diǎn)的丟失信息時(shí),所述網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述節(jié)點(diǎn)是否已經(jīng)存在于所述網(wǎng)絡(luò)中;若所述節(jié)點(diǎn)存在于所述網(wǎng)絡(luò)中,則所述網(wǎng)關(guān)節(jié)點(diǎn)在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中刪除所述節(jié)點(diǎn)的信息;若所述節(jié)點(diǎn)未存在于所述網(wǎng)絡(luò)中,則所述網(wǎng)關(guān)節(jié)點(diǎn)提示出錯(cuò)。優(yōu)選的,所述網(wǎng)絡(luò)中路由節(jié)點(diǎn)檢測(cè)到路由子節(jié)點(diǎn)的變化,生成路由子節(jié)點(diǎn)變化信息并上報(bào)至所述網(wǎng)關(guān)節(jié)點(diǎn);其中,所述路由子節(jié)點(diǎn)變化信息包括路由子節(jié)點(diǎn)加入信息和路由子節(jié)點(diǎn)丟失信息;所述路由節(jié)點(diǎn)檢測(cè)到路由子節(jié)點(diǎn)的變化,生成路由子節(jié)點(diǎn)加入信息,包括當(dāng)一節(jié)點(diǎn)以所述路由節(jié)點(diǎn)為父節(jié)點(diǎn)加入所述網(wǎng)絡(luò)時(shí),所述路由節(jié)點(diǎn)生成路由子節(jié)點(diǎn)加入信息;所述路由節(jié)點(diǎn)上報(bào)所述路由子節(jié)點(diǎn)加入信息至所述網(wǎng)關(guān)節(jié)點(diǎn);所述路由節(jié)點(diǎn)檢測(cè)到路由子節(jié)點(diǎn)的變化,生成路由子節(jié)點(diǎn)丟失信息,包括所述路由節(jié)點(diǎn)根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點(diǎn)確定下一跳節(jié)點(diǎn);所述路由節(jié)點(diǎn)將所述待發(fā)送數(shù)據(jù)發(fā)送至所述下一跳節(jié)點(diǎn);所述路由節(jié)點(diǎn)根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)確定所述下一跳節(jié)點(diǎn)是否丟失;若所述下一跳節(jié)點(diǎn)丟失,且所述下一跳節(jié)點(diǎn)為所述路由節(jié)點(diǎn)的子節(jié)點(diǎn),則在所述路由節(jié)點(diǎn)的協(xié)議層生成路由子節(jié)點(diǎn)丟失信息并上報(bào)至所述路由節(jié)點(diǎn)的應(yīng)用層;當(dāng)所述路由節(jié)點(diǎn)的應(yīng)用層接收到所述路由子節(jié)點(diǎn)丟失信息時(shí),所述路由節(jié)點(diǎn)將所述路由子節(jié)點(diǎn)丟失信息上報(bào)至所述網(wǎng)關(guān)節(jié)點(diǎn);若所述下一跳節(jié)點(diǎn)丟失,且所述下一跳節(jié)點(diǎn)為路由節(jié)點(diǎn)的父節(jié)點(diǎn),則在所述路由節(jié)點(diǎn)的協(xié)議層生成路由父節(jié)點(diǎn)丟失信息并上報(bào)至所述路由節(jié)點(diǎn)的應(yīng)用層;當(dāng)所述路由節(jié)點(diǎn)的應(yīng)用層接收到所述路由父節(jié)點(diǎn)丟失信息時(shí),所述路由節(jié)點(diǎn)開(kāi)啟節(jié)點(diǎn)加入流程,選擇合適的節(jié)點(diǎn)為父節(jié)點(diǎn)重新加入所述網(wǎng)絡(luò)。優(yōu)選的,所述方法還包括
所述路由節(jié)點(diǎn)根據(jù)所述路由子節(jié)點(diǎn)的變化信息更新存儲(chǔ)于所述路由節(jié)點(diǎn)的路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶(hù)查詢(xún)所述路由節(jié)點(diǎn)處的拓?fù)浣Y(jié)構(gòu)信息。優(yōu)選的,所述路由節(jié)點(diǎn)根據(jù)所述路由子節(jié)點(diǎn)的變化信息更新存儲(chǔ)于所述路由節(jié)點(diǎn)的路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表包括當(dāng)所述路由子節(jié)點(diǎn)的變化信息為加入信息時(shí),所述路由節(jié)點(diǎn)根據(jù)路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述路由子節(jié)點(diǎn)是否已經(jīng)存在于所述網(wǎng)絡(luò)中;若是,則更新在所述路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表中所存儲(chǔ)的所述路由子節(jié)點(diǎn)的信息;若否,則在所述路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表中為所述路由子節(jié)點(diǎn)分配存儲(chǔ)空間,并增加對(duì)應(yīng)的父子信息;當(dāng)所述路由子節(jié)點(diǎn)的變化信息為丟失信息時(shí),所述路由節(jié)點(diǎn)根據(jù)路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述路由子節(jié)點(diǎn)是否已經(jīng)存在于所述網(wǎng)絡(luò)中;若是,則所述路由節(jié)點(diǎn)在所述路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表中刪除所述路由子節(jié)點(diǎn)的信息;若否,則所述路由節(jié)點(diǎn)提示出錯(cuò)。優(yōu)選的,所述方法還包括終端節(jié)點(diǎn)根據(jù)待發(fā)送數(shù)據(jù)目的節(jié)點(diǎn)確定下一跳終端父節(jié)點(diǎn);所述終端節(jié)點(diǎn)發(fā)送所述待發(fā)送數(shù)據(jù)至所述下一跳終端父節(jié)點(diǎn);所述終端節(jié)點(diǎn)根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷所述終端父節(jié)點(diǎn)是否丟失;若所述終端父節(jié)點(diǎn)丟失,則生成終端父節(jié)點(diǎn)丟失信息;所述終端節(jié)點(diǎn)根據(jù)所述終端父節(jié)點(diǎn)丟失信息開(kāi)啟孤點(diǎn)加入流程,選擇所述終端節(jié)點(diǎn)的父節(jié)點(diǎn)為父節(jié)點(diǎn)加入所述網(wǎng)絡(luò);若無(wú)法加入,則所述終端節(jié)點(diǎn)開(kāi)啟節(jié)點(diǎn)加入流程,選擇其他合適的節(jié)點(diǎn)為父節(jié)點(diǎn)加入所述網(wǎng)絡(luò)。優(yōu)選的,所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表米用分級(jí)動(dòng)態(tài)鏈表形式,在每一級(jí)中存儲(chǔ)上一級(jí)節(jié)點(diǎn)對(duì)應(yīng)的子節(jié)點(diǎn)信息。對(duì)應(yīng)上述方法,本發(fā)明還提供了一種基于Zigbee協(xié)議的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)結(jié)構(gòu)的維護(hù)系統(tǒng),所述系統(tǒng)包括網(wǎng)關(guān)節(jié)點(diǎn)、路由節(jié)點(diǎn)和終端節(jié)點(diǎn);所述網(wǎng)關(guān)節(jié)點(diǎn)包括網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表建立單兀,用于預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表;網(wǎng)關(guān)子節(jié)點(diǎn)變化信息生成單元,用于在檢測(cè)到網(wǎng)關(guān)子節(jié)點(diǎn)的變化時(shí)生成網(wǎng)關(guān)子節(jié)點(diǎn)變化信息;所述網(wǎng)關(guān)子節(jié)點(diǎn)包括網(wǎng)絡(luò)中與網(wǎng)關(guān)節(jié)點(diǎn)存在父子關(guān)系的路由節(jié)點(diǎn)和/或終端節(jié)點(diǎn);
網(wǎng)關(guān)更新單元,用于根據(jù)網(wǎng)絡(luò)中節(jié)點(diǎn)的變信息更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶(hù)查詢(xún);所述網(wǎng)絡(luò)中節(jié)點(diǎn)包括所述網(wǎng)關(guān)子節(jié)點(diǎn)和所述路由子節(jié)點(diǎn);所述路由節(jié)點(diǎn)包括路由子節(jié)點(diǎn)變化信息生成單元,用于在檢測(cè)到路由子節(jié)點(diǎn)的變化時(shí)生成路由子節(jié)點(diǎn)變化信息并上報(bào)至所述網(wǎng)關(guān)節(jié)點(diǎn);路由節(jié)點(diǎn)信息返回單元,用于根據(jù)接收到的廣播節(jié)點(diǎn)信息收集命令返回自身的節(jié)點(diǎn)信息至所述網(wǎng)關(guān)節(jié)點(diǎn); 所述終端節(jié)點(diǎn)包括終端節(jié)點(diǎn)信息返回單元,用于根據(jù)接收到的廣播節(jié)點(diǎn)信息收集命令返回自身的節(jié)點(diǎn)信息至所述網(wǎng)關(guān)節(jié)點(diǎn);所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表建立單元包括廣播單元,用于在所述網(wǎng)絡(luò)中廣播節(jié)點(diǎn)信息收集命令;網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表建立子單元,用于根據(jù)路由節(jié)點(diǎn)信息返回單元和終端節(jié)點(diǎn)信息返回單元返回的節(jié)點(diǎn)信息進(jìn)行組合生成網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表并存儲(chǔ)。優(yōu)選的,所述網(wǎng)關(guān)子節(jié)點(diǎn)變化信息生成單元,包括網(wǎng)關(guān)子節(jié)點(diǎn)加入信息生成單元和網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息生成單元;所述網(wǎng)關(guān)子節(jié)點(diǎn)加入信息生成單元,用于在檢測(cè)到網(wǎng)關(guān)子節(jié)點(diǎn)的變化時(shí),生成網(wǎng)關(guān)子節(jié)點(diǎn)加入信息;所述網(wǎng)關(guān)子節(jié)點(diǎn)加入信息生成單元,具體用于當(dāng)一節(jié)點(diǎn)以所述網(wǎng)關(guān)節(jié)點(diǎn)為父節(jié)點(diǎn)加入所述網(wǎng)絡(luò)時(shí),生成網(wǎng)關(guān)子節(jié)點(diǎn)加入信息;所述網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息生成單元,用于在檢測(cè)到網(wǎng)關(guān)子節(jié)點(diǎn)的變化,生成網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息,包括第一下一跳節(jié)點(diǎn)確定單元,用于根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點(diǎn)確定下一跳網(wǎng)關(guān)子節(jié)占.第一數(shù)據(jù)發(fā)送單元,用于將所述待發(fā)送數(shù)據(jù)發(fā)送至所述下一跳網(wǎng)關(guān)子節(jié)點(diǎn);網(wǎng)關(guān)子節(jié)點(diǎn)丟失判斷單元,用于根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷所述下一跳網(wǎng)關(guān)子節(jié)點(diǎn)是否丟失;網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息生成子單元,用于當(dāng)所述網(wǎng)關(guān)子節(jié)點(diǎn)丟失時(shí),生成網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息。優(yōu)選的,所述網(wǎng)關(guān)更新單元包括網(wǎng)關(guān)加入信息判斷單元,用于當(dāng)所述節(jié)點(diǎn)的變化信息為節(jié)點(diǎn)的加入信息時(shí),根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述節(jié)點(diǎn)是否存在于所述網(wǎng)絡(luò)中;網(wǎng)關(guān)加入信息更新子單元,用于在所述節(jié)點(diǎn)存在于所述網(wǎng)絡(luò)中時(shí),更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中存儲(chǔ)的所述節(jié)點(diǎn)的相應(yīng)信息;網(wǎng)關(guān)分配單元,用于在所述節(jié)點(diǎn)未存在于所述網(wǎng)絡(luò)中時(shí),在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中為所述節(jié)點(diǎn)分配存儲(chǔ)空間,并增加對(duì)應(yīng)的父子信息;網(wǎng)關(guān)丟失信息判斷單元,用于當(dāng)所述節(jié)點(diǎn)的變化信息為節(jié)點(diǎn)的丟失信息時(shí),根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述節(jié)點(diǎn)是否已經(jīng)存在于所述網(wǎng)絡(luò)中;網(wǎng)關(guān)丟失信息刪除單元,用于在若所述節(jié)點(diǎn)存在于所述網(wǎng)絡(luò)中時(shí),在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中刪除所述節(jié)點(diǎn)的信息;網(wǎng)關(guān)提示單元,用于在所述節(jié)點(diǎn)未存在于所述網(wǎng)絡(luò)中時(shí),提示出錯(cuò)。優(yōu)選的,所述路由子節(jié)點(diǎn)變化信息生成單元包括路由子節(jié)點(diǎn)加入信息生成單元和路由子節(jié)點(diǎn)丟失信息生成單元;所述路由子節(jié)點(diǎn)加入信息生成單元,用于在檢測(cè)到路由子節(jié)點(diǎn)的變化時(shí),生成路由子節(jié)點(diǎn)加入信息;所述路由子節(jié)點(diǎn)加入信息生成單元,包括 路由子節(jié)點(diǎn)加入信息生成子單元,用于當(dāng)一節(jié)點(diǎn)以所述路由節(jié)點(diǎn)為父節(jié)點(diǎn)加入所述網(wǎng)絡(luò)時(shí),生成路由子節(jié)點(diǎn)加入信息;所述路由子節(jié)點(diǎn)丟失信息生成單元,具體用于在檢測(cè)到路由子節(jié)點(diǎn)的變化時(shí),生成路由子節(jié)點(diǎn)丟失信息;包括第二下一跳節(jié)點(diǎn)確定單元,用于根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點(diǎn)確定下一跳節(jié)點(diǎn);第二數(shù)據(jù)發(fā)送單元,用于將所述待發(fā)送數(shù)據(jù)發(fā)送至所述下一跳節(jié)點(diǎn);路由子節(jié)點(diǎn)丟失判斷單元,用于根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)確定所述路由節(jié)點(diǎn)的下一跳節(jié)點(diǎn)是否丟失;協(xié)議層上報(bào)單元,用于在所述下一跳路由子節(jié)點(diǎn)丟失,且所述下一跳路由節(jié)點(diǎn)為所述路由節(jié)點(diǎn)的子節(jié)點(diǎn)時(shí),在所述路由節(jié)點(diǎn)的協(xié)議層生成路由子節(jié)點(diǎn)丟失信息并上報(bào)至所述路由節(jié)點(diǎn)的應(yīng)用層;應(yīng)用層上報(bào)單元,用于在所述路由節(jié)點(diǎn)的應(yīng)用層接收到所述路由子節(jié)點(diǎn)丟失信息時(shí),將所述路由子節(jié)點(diǎn)丟失信息上報(bào)至所述網(wǎng)關(guān)節(jié)點(diǎn);所述協(xié)議層上報(bào)單元,還用于在所述下一跳節(jié)點(diǎn)丟失,且所述下一跳節(jié)點(diǎn)為路由節(jié)點(diǎn)的父節(jié)點(diǎn)時(shí),在所述路由節(jié)點(diǎn)的協(xié)議層生成路由父節(jié)點(diǎn)丟失信息并上報(bào)至所述路由節(jié)點(diǎn)的應(yīng)用層;應(yīng)用層上報(bào)單元,還用于當(dāng)所述路由節(jié)點(diǎn)的應(yīng)用層接收到所述路由父節(jié)點(diǎn)丟失信息時(shí),開(kāi)啟節(jié)點(diǎn)加入流程,選擇合適的節(jié)點(diǎn)為父節(jié)點(diǎn)重新加入所述網(wǎng)絡(luò)。優(yōu)選的,所述路由節(jié)點(diǎn)還包括路由更新單元,用于根據(jù)所述路由子節(jié)點(diǎn)的變化信息更新存儲(chǔ)于所述路由節(jié)點(diǎn)的路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶(hù)查詢(xún)所述路由節(jié)點(diǎn)處的拓?fù)浣Y(jié)構(gòu)信息。優(yōu)選的,所述路由更新單元包括路由加入信息判斷單元,用于當(dāng)所述路由子節(jié)點(diǎn)的變化信息為加入信息時(shí),根據(jù)路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述路由子節(jié)點(diǎn)是否已經(jīng)存在于所述網(wǎng)絡(luò)中;路由加入信息更新子單元,用于在所述路由子節(jié)點(diǎn)已經(jīng)存在于所述網(wǎng)絡(luò)中時(shí),更新在所述路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表中所存儲(chǔ)的所述路由子節(jié)點(diǎn)的信息;路由分配單元,用于在所述路由子節(jié)點(diǎn)未存在于所述網(wǎng)絡(luò)中時(shí),在所述路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表中為所述路由子節(jié)點(diǎn)分配存儲(chǔ)空間,并增加對(duì)應(yīng)的父子信息;路由丟失信息判斷單元,用于當(dāng)所述路由子節(jié)點(diǎn)的變化信息為丟失信息時(shí),根據(jù)路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述路由子節(jié)點(diǎn)是否已經(jīng)存在于所述網(wǎng)絡(luò)中;路由丟失信息刪除單元,用于在所述路由子節(jié)點(diǎn)已經(jīng)存在于所述網(wǎng)絡(luò)中時(shí),在所述路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表中刪除所述路由子節(jié)點(diǎn)的信息;
路由提示單元,用于在所述路由子節(jié)點(diǎn)未存在于所述網(wǎng)絡(luò)中時(shí)提示出錯(cuò)。優(yōu)選的,所述終端節(jié)點(diǎn)還包括終端父節(jié)點(diǎn)確定單元,用于根據(jù)待發(fā)送數(shù)據(jù)目的節(jié)點(diǎn)確定下一跳終端父節(jié)點(diǎn);終端數(shù)據(jù)發(fā)送單元,用于發(fā)送所述待發(fā)送數(shù)據(jù)至所述下一跳終端父節(jié)點(diǎn);終端父節(jié)點(diǎn)丟失判斷單元,用于根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷所述終端父節(jié)點(diǎn)是否丟失;終端父節(jié)點(diǎn)丟失信息生成單元,用于在所述終端父節(jié)點(diǎn)丟失時(shí),生成終端父節(jié)點(diǎn)丟失 目息;
孤點(diǎn)加入單元,用于根據(jù)所述終端父節(jié)點(diǎn)丟失信息開(kāi)啟孤點(diǎn)加入流程,選擇所述終端節(jié)點(diǎn)的父節(jié)點(diǎn)為父節(jié)點(diǎn)加入所述網(wǎng)絡(luò);節(jié)點(diǎn)加入單元,用于在所述父節(jié)點(diǎn)無(wú)法通過(guò)孤點(diǎn)加入流程加入時(shí),開(kāi)啟節(jié)點(diǎn)加入流程,選擇其他合適的節(jié)點(diǎn)為父節(jié)點(diǎn)加入所述網(wǎng)絡(luò)。與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果本發(fā)明中網(wǎng)關(guān)節(jié)點(diǎn)預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表;網(wǎng)關(guān)節(jié)點(diǎn)檢測(cè)到網(wǎng)關(guān)子節(jié)點(diǎn)即網(wǎng)絡(luò)中與網(wǎng)關(guān)節(jié)點(diǎn)存在父子關(guān)系的路由節(jié)點(diǎn)和/或終端節(jié)點(diǎn)的變化后生成網(wǎng)關(guān)子節(jié)點(diǎn)變化信息,網(wǎng)絡(luò)中路由節(jié)點(diǎn)檢測(cè)到路由子節(jié)點(diǎn)的變化后生成路由子節(jié)點(diǎn)變化信息并上報(bào)至所述網(wǎng)關(guān)節(jié)點(diǎn);網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)網(wǎng)絡(luò)中節(jié)點(diǎn)即所述網(wǎng)關(guān)子節(jié)點(diǎn)和所述路由子節(jié)點(diǎn)的變化信息更新網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表,供用戶(hù)查詢(xún),通過(guò)上述過(guò)程使得在網(wǎng)關(guān)節(jié)點(diǎn)處維護(hù)了網(wǎng)絡(luò)中所有節(jié)點(diǎn)的信息,在后續(xù)用戶(hù)查詢(xún)時(shí)可以直接從網(wǎng)關(guān)節(jié)點(diǎn)處獲知所有節(jié)點(diǎn)的信息。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I是本發(fā)明網(wǎng)絡(luò)中各類(lèi)型節(jié)點(diǎn)連接示意圖;圖2是本發(fā)明方法實(shí)施例流程圖;圖3是本發(fā)明中網(wǎng)關(guān)節(jié)點(diǎn)生成網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息流程圖;圖4是本發(fā)明路由節(jié)點(diǎn)生成路由子節(jié)點(diǎn)丟失信息流程圖;圖5是本發(fā)明終端節(jié)點(diǎn)生成終端父節(jié)點(diǎn)變化信息流程圖;圖6是本發(fā)明網(wǎng)關(guān)節(jié)點(diǎn)更新網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表流程圖;圖7是本發(fā)明網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表結(jié)構(gòu)圖;圖8是本發(fā)明網(wǎng)絡(luò)中各節(jié)點(diǎn)信息維護(hù)示意圖;圖9是本發(fā)明系統(tǒng)實(shí)施例結(jié)構(gòu)圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。在本發(fā)明中,子節(jié)點(diǎn)和父節(jié)點(diǎn)是依據(jù)基于ZigBee協(xié)議的網(wǎng)絡(luò)中的節(jié)點(diǎn)通信關(guān)系劃分的。當(dāng)網(wǎng)絡(luò)中的某臺(tái)設(shè)備通過(guò)另一臺(tái)設(shè)備加入網(wǎng)絡(luò)時(shí),這兩臺(tái)設(shè)備就構(gòu)成了父子關(guān)系,新接入的設(shè)備成為子節(jié)點(diǎn),而另一臺(tái)設(shè)備稱(chēng)為該子節(jié)點(diǎn)的父節(jié)點(diǎn)。例如,設(shè)備A通過(guò)設(shè)備B加入到該ZigBee網(wǎng)絡(luò)中,則設(shè)備A稱(chēng)為子節(jié)點(diǎn),設(shè)備B稱(chēng)為設(shè)備A這個(gè)子節(jié)點(diǎn)的父節(jié)點(diǎn)。在網(wǎng)絡(luò)中,節(jié)點(diǎn)包括網(wǎng)關(guān)節(jié)點(diǎn)、路由節(jié)點(diǎn)和終端節(jié)點(diǎn)三種類(lèi)型。如圖I所示,網(wǎng)關(guān)節(jié)點(diǎn)為al,終端節(jié)點(diǎn)為a3,路由節(jié)點(diǎn)為a2。其中,路由節(jié)點(diǎn)a2和終端節(jié)點(diǎn)a3經(jīng)常會(huì)發(fā)生掉電、錯(cuò)誤、離開(kāi)或信號(hào)變?nèi)醯惹闆r,導(dǎo)致不能被檢測(cè),我們稱(chēng)之為節(jié)點(diǎn)丟失。當(dāng)有路由節(jié)點(diǎn)a2和終端節(jié)點(diǎn)a3加入網(wǎng)絡(luò)時(shí),為節(jié)點(diǎn)加入。節(jié)點(diǎn)的丟失和加入都是節(jié)點(diǎn)的一種變化,在網(wǎng)絡(luò)中是經(jīng)常發(fā)生的情況。為保證網(wǎng)絡(luò)的穩(wěn)定,用戶(hù)需要掌握網(wǎng)絡(luò)的現(xiàn)狀以便及時(shí)作出調(diào)整。為此,本發(fā)明實(shí)施例I提供了一種基于Zigbee協(xié)議的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)結(jié)構(gòu)的維護(hù)方法,參見(jiàn)圖2,所述方法包括S11、網(wǎng)關(guān)節(jié)點(diǎn)預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的步驟。網(wǎng)關(guān)節(jié)點(diǎn)預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的方法有多種,本發(fā)明實(shí)施例2提供了一種具體方式,包括如下步驟所述網(wǎng)關(guān)節(jié)點(diǎn)在所述網(wǎng)絡(luò)中廣播節(jié)點(diǎn)信息收集命令。網(wǎng)絡(luò)中的節(jié)點(diǎn)根據(jù)收到的所述廣播節(jié)點(diǎn)信息收集命令返回自身的節(jié)點(diǎn)信息至所述網(wǎng)關(guān)節(jié)點(diǎn)。所述網(wǎng)關(guān)節(jié)點(diǎn)將所述網(wǎng)絡(luò)中的節(jié)點(diǎn)返回的所述節(jié)點(diǎn)信息進(jìn)行組合生成網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表并存儲(chǔ)。
需要說(shuō)明的是,本發(fā)明用以在網(wǎng)關(guān)節(jié)點(diǎn)處查詢(xún)網(wǎng)絡(luò)中所有節(jié)點(diǎn)的狀態(tài),因此本發(fā)明中的拓?fù)浣Y(jié)構(gòu)信息表應(yīng)當(dāng)包含建立該信息表時(shí)網(wǎng)絡(luò)中所有節(jié)點(diǎn)的信息。S12、所述網(wǎng)關(guān)節(jié)點(diǎn)檢測(cè)到網(wǎng)關(guān)子節(jié)點(diǎn)的變化,所述網(wǎng)關(guān)節(jié)點(diǎn)生成網(wǎng)關(guān)子節(jié)點(diǎn)變化信息的步驟,所述網(wǎng)關(guān)子節(jié)點(diǎn)包括網(wǎng)絡(luò)中與網(wǎng)關(guān)節(jié)點(diǎn)存在父子關(guān)系的路由節(jié)點(diǎn)和/或終端節(jié)點(diǎn)。S13、網(wǎng)絡(luò)中路由節(jié)點(diǎn)檢測(cè)到路由子節(jié)點(diǎn)的變化,所述路由節(jié)點(diǎn)生成路由子節(jié)點(diǎn)變化信息并上報(bào)至所述網(wǎng)關(guān)節(jié)點(diǎn)的步驟。S14、所述網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)網(wǎng)絡(luò)中節(jié)點(diǎn)的變化信息更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶(hù)查詢(xún)的步驟,所述網(wǎng)絡(luò)中節(jié)點(diǎn)包括所述網(wǎng)關(guān)子節(jié)點(diǎn)和所述路由子節(jié)點(diǎn)。為使本發(fā)明更加清楚,以下分幾部分對(duì)上述實(shí)施例進(jìn)行介紹。首先對(duì)網(wǎng)關(guān)節(jié)點(diǎn)生成網(wǎng)絡(luò)中網(wǎng)關(guān)子節(jié)點(diǎn)的變化信息進(jìn)行介紹。在本發(fā)明中,網(wǎng)關(guān)節(jié)點(diǎn)生成網(wǎng)關(guān)子節(jié)點(diǎn)變化信息可以通過(guò)多種方法實(shí)現(xiàn)。tWn,可以通過(guò)網(wǎng)關(guān)節(jié)點(diǎn)周期性查詢(xún)的方式。即網(wǎng)關(guān)節(jié)點(diǎn)每隔一定的時(shí)間向網(wǎng)關(guān)子節(jié)點(diǎn)發(fā)送查詢(xún)信息,若網(wǎng)關(guān)子節(jié)點(diǎn)正常回復(fù),則認(rèn)為該網(wǎng)關(guān)子節(jié)點(diǎn)正常,否則認(rèn)為該網(wǎng)關(guān)子節(jié)點(diǎn)離開(kāi)網(wǎng)絡(luò)。但這種方式中網(wǎng)絡(luò)結(jié)構(gòu)信息的反映實(shí)時(shí)性與查詢(xún)周期的長(zhǎng)短直接相關(guān),查詢(xún)周期設(shè)置較長(zhǎng),系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)信息的變化反映時(shí)間就增長(zhǎng),實(shí)時(shí)性變差。若查詢(xún)周期設(shè)置較短,就增大了傳輸?shù)臄?shù)據(jù)量,占用了網(wǎng)絡(luò)有限的資源。另一種方式是通過(guò)變化節(jié)點(diǎn)主動(dòng)上報(bào)的方式對(duì)網(wǎng)絡(luò)進(jìn)行監(jiān)控。即當(dāng)網(wǎng)關(guān)子節(jié)點(diǎn)發(fā)生變化時(shí),主動(dòng)上報(bào)變化信息至網(wǎng)關(guān)節(jié)點(diǎn)。但這種方式不具備對(duì)突發(fā)情況(如節(jié)點(diǎn)忽然丟失、損壞等)的反映能力。針對(duì)此,本發(fā)明實(shí)施例3提供了一種優(yōu)選的方式,能夠解決上述兩種方式存在的問(wèn)題。如前所述,節(jié)點(diǎn)的變化包括節(jié)點(diǎn)加入和節(jié)點(diǎn)丟失兩種情況,對(duì)應(yīng)的該優(yōu)選的方式具體包括網(wǎng)關(guān)節(jié)點(diǎn)檢測(cè)網(wǎng)關(guān)子節(jié)點(diǎn)的變化生成網(wǎng)關(guān)子節(jié)點(diǎn)加入信息和網(wǎng)關(guān)節(jié)點(diǎn)檢測(cè)網(wǎng)關(guān)子節(jié)點(diǎn)的變化,生成網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息。其中,網(wǎng)關(guān)節(jié)點(diǎn)檢測(cè)網(wǎng)關(guān)子節(jié)點(diǎn)的變 化生成網(wǎng)關(guān)子節(jié)點(diǎn)加入信息包括當(dāng)一節(jié)點(diǎn)以網(wǎng)關(guān)節(jié)點(diǎn)為父節(jié)點(diǎn)加入網(wǎng)絡(luò)時(shí),網(wǎng)關(guān)節(jié)點(diǎn)生成網(wǎng)關(guān)子節(jié)點(diǎn)加入信息。參見(jiàn)圖3,網(wǎng)關(guān)節(jié)點(diǎn)檢測(cè)網(wǎng)關(guān)子節(jié)點(diǎn)的變化生成網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息包括如下步驟S21、網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點(diǎn)確定下一跳網(wǎng)關(guān)子節(jié)點(diǎn)。對(duì)于網(wǎng)絡(luò)中的節(jié)點(diǎn)來(lái)說(shuō),其待發(fā)送數(shù)據(jù)可以是本節(jié)點(diǎn)自己構(gòu)造的數(shù)據(jù),也可以是接收的其它節(jié)點(diǎn)發(fā)送來(lái)并由本節(jié)點(diǎn)轉(zhuǎn)發(fā)的數(shù)據(jù)。對(duì)于網(wǎng)關(guān)節(jié)點(diǎn)來(lái)說(shuō),不可能接收其它節(jié)點(diǎn)發(fā)送的數(shù)據(jù),因此,此處的待發(fā)送數(shù)據(jù)實(shí)際是指網(wǎng)關(guān)節(jié)點(diǎn)自身構(gòu)造的數(shù)據(jù)。網(wǎng)關(guān)節(jié)點(diǎn)在網(wǎng)絡(luò)層獲取到該待發(fā)送數(shù)據(jù)的目的節(jié)點(diǎn),進(jìn)而查詢(xún)本節(jié)點(diǎn)所保存的路由表,確定出下一跳節(jié)點(diǎn)。S22、網(wǎng)關(guān)節(jié)點(diǎn)將上述待發(fā)送數(shù)據(jù)發(fā)送至確定出的下一跳網(wǎng)關(guān)子節(jié)點(diǎn)。S23、網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷下一跳網(wǎng)關(guān)子節(jié)點(diǎn)是否丟失。S24、當(dāng)判斷出該下一跳網(wǎng)關(guān)子節(jié)點(diǎn)丟失時(shí),網(wǎng)關(guān)節(jié)點(diǎn)生成網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息。如果確定出的下一跳網(wǎng)關(guān)子節(jié)點(diǎn)仍處于網(wǎng)絡(luò)中,即下一跳網(wǎng)關(guān)子節(jié)點(diǎn)未丟失,則該下一跳網(wǎng)關(guān)子節(jié)點(diǎn)會(huì)接收到該待發(fā)送數(shù)據(jù)。如果該下一跳網(wǎng)關(guān)子節(jié)點(diǎn)丟失,則網(wǎng)關(guān)節(jié)點(diǎn)的ZigBee協(xié)議棧底層(即應(yīng)用層以下的協(xié)議層)可以獲知該下一跳網(wǎng)關(guān)子節(jié)點(diǎn)并未接收到該待發(fā)送數(shù)據(jù),同時(shí)在該協(xié)議棧底層生成指示該下一跳網(wǎng)關(guān)子節(jié)點(diǎn)丟失的丟失指示消息。本發(fā)明中當(dāng)在協(xié)議棧底層生成該丟失指示消息后,會(huì)將該丟失指示消息逐層上報(bào),最終由網(wǎng)絡(luò)層將該丟失指示消息上報(bào)給應(yīng)用層的ZigBee設(shè)備對(duì)象(ZDO,Zigbee DeviceObiect),以便ZigBee協(xié)議棧中應(yīng)用層的ZigBee設(shè)備對(duì)象獲取到該下一跳網(wǎng)關(guān)子節(jié)點(diǎn)丟失的信息。本發(fā)明中為了能夠讓Zigbee協(xié)議棧中應(yīng)用層的應(yīng)用對(duì)象獲取到節(jié)點(diǎn)丟失,當(dāng)從ZigBee設(shè)備對(duì)象中獲取到丟失指示消息時(shí),提取出該消息中包含的節(jié)點(diǎn)的網(wǎng)絡(luò)信息,并進(jìn)一步將該節(jié)點(diǎn)的網(wǎng)絡(luò)信息作為節(jié)點(diǎn)丟失信息上報(bào)給應(yīng)用對(duì)象,進(jìn)而使得應(yīng)用對(duì)象可以實(shí)時(shí)獲取到節(jié)點(diǎn)丟失信息。需要說(shuō)明的是,該丟失指示消息中包含的節(jié)點(diǎn)的網(wǎng)絡(luò)信息可以包括丟失節(jié)點(diǎn)的網(wǎng)絡(luò)地址,以及丟失節(jié)點(diǎn)與本節(jié)點(diǎn)的通信關(guān)系,如,丟失節(jié)點(diǎn)為本節(jié)點(diǎn)的子節(jié)點(diǎn)或者丟失節(jié)點(diǎn)為本節(jié)點(diǎn)的父節(jié)點(diǎn)。此處的通信關(guān)系為網(wǎng)關(guān)節(jié)點(diǎn)的子節(jié)點(diǎn)。其中,丟失指示消息中所包含節(jié)點(diǎn)的網(wǎng)絡(luò)信息被認(rèn)為是丟失節(jié)點(diǎn)的網(wǎng)絡(luò)信息。其次,對(duì)路由節(jié)點(diǎn)檢測(cè)到路由子節(jié)點(diǎn)的變化,生成路由子節(jié)點(diǎn)變化信息進(jìn)行介紹。同網(wǎng)關(guān)節(jié)點(diǎn)相同,根據(jù)路由子節(jié)點(diǎn)的不同變化,路由節(jié)點(diǎn)在檢測(cè)到路由子節(jié)點(diǎn)時(shí)可能會(huì)生成路由子節(jié)點(diǎn)加入信息,也有可能生成路由子節(jié)點(diǎn)丟失信息。
其中,當(dāng)一節(jié)點(diǎn)以路由節(jié)點(diǎn)為父節(jié)點(diǎn)加入網(wǎng)絡(luò)時(shí),該路由節(jié)點(diǎn)生成路由子節(jié)點(diǎn)加入信息。之后路由節(jié)點(diǎn)會(huì)將該信息上報(bào)至網(wǎng)關(guān)節(jié)點(diǎn),以便網(wǎng)關(guān)節(jié)點(diǎn)據(jù)此更新網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
信息表。同網(wǎng)關(guān)節(jié)點(diǎn)生成網(wǎng)關(guān)子節(jié)點(diǎn)的丟失信息類(lèi)似,參見(jiàn)圖4,路由節(jié)點(diǎn)生成路由子節(jié)點(diǎn)的丟失信息包括如下步驟S31、路由節(jié)點(diǎn)根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點(diǎn)確定下一跳節(jié)點(diǎn)。S32、路由節(jié)點(diǎn)將待發(fā)送數(shù)據(jù)發(fā)送至所述確定出的下一跳節(jié)點(diǎn)。S33、路由節(jié)點(diǎn)根據(jù)待發(fā)送數(shù)據(jù)的接收狀態(tài)確定該下一跳節(jié)點(diǎn)是否丟失。
S34、若該下一跳節(jié)點(diǎn)丟失,且該下一跳節(jié)點(diǎn)為路由節(jié)點(diǎn)的子節(jié)點(diǎn),則在路由節(jié)點(diǎn)的協(xié)議層生成路由子節(jié)點(diǎn)丟失信息并上報(bào)至路由節(jié)點(diǎn)的應(yīng)用層。S35、當(dāng)路由節(jié)點(diǎn)的應(yīng)用層接收到路由子節(jié)點(diǎn)丟失信息時(shí),路由節(jié)點(diǎn)將路由子節(jié)點(diǎn)丟失信息上報(bào)至網(wǎng)關(guān)節(jié)點(diǎn)。S36、若下一跳節(jié)點(diǎn)丟失,且下一跳節(jié)點(diǎn)為路由節(jié)點(diǎn)的父節(jié)點(diǎn),則在路由節(jié)點(diǎn)的協(xié)議層生成路由父節(jié)點(diǎn)丟失信息并上報(bào)至路由節(jié)點(diǎn)的應(yīng)用層。S37、當(dāng)路由節(jié)點(diǎn)的應(yīng)用層接收到路由父節(jié)點(diǎn)丟失信息時(shí),路由節(jié)點(diǎn)開(kāi)啟節(jié)點(diǎn)加入流程,選擇合適的節(jié)點(diǎn)為父節(jié)點(diǎn)重新加入網(wǎng)絡(luò)。在網(wǎng)絡(luò)中,網(wǎng)關(guān)節(jié)點(diǎn)只有子節(jié)點(diǎn),其發(fā)送的待發(fā)送數(shù)據(jù)也只能是自己構(gòu)造的。與之不同的是,路由節(jié)點(diǎn)既有子節(jié)點(diǎn)也有父節(jié)點(diǎn),其發(fā)送的待發(fā)送數(shù)據(jù)既可以是自己構(gòu)造的,也可以是從上一跳節(jié)點(diǎn)接收的。根據(jù)目的節(jié)點(diǎn)的不同,路由節(jié)點(diǎn)有可能將數(shù)據(jù)發(fā)送至父節(jié)點(diǎn),也有可能發(fā)送至子節(jié)點(diǎn),即路由節(jié)點(diǎn)的下一跳節(jié)點(diǎn)有可能是路由子節(jié)點(diǎn),也有可能是路由父節(jié)點(diǎn)。由于后續(xù)的處理方式不同,因此,要對(duì)其進(jìn)行判斷。具體的,如果該路由節(jié)點(diǎn)的下一跳節(jié)點(diǎn)丟失,則路由節(jié)點(diǎn)的ZigBee協(xié)議棧底層(即應(yīng)用層以下的協(xié)議層)可以獲知該下一跳節(jié)點(diǎn)并未接收到該待發(fā)送數(shù)據(jù),同時(shí)在該協(xié)議棧底層生成指示該下一跳節(jié)點(diǎn)丟失的丟失指示消息。本發(fā)明中當(dāng)在協(xié)議棧底層生成該丟失指示消息后,會(huì)將該丟失指示消息逐層上報(bào),最終由網(wǎng)絡(luò)層將該丟失指示消息上報(bào)給應(yīng)用層的ZigBee設(shè)備對(duì)象(ZDO, Zigbee Device Obiect),以便ZigBee協(xié)議棧中應(yīng)用層的ZigBee設(shè)備對(duì)象獲取到該下一跳節(jié)點(diǎn)丟失的信息。本發(fā)明中為了能夠讓Zigbee協(xié)議棧中應(yīng)用層的應(yīng)用對(duì)象獲取到節(jié)點(diǎn)丟失信息,當(dāng)從ZigBee設(shè)備對(duì)象中獲取到丟失指示消息時(shí),提取出該消息中包含的節(jié)點(diǎn)的網(wǎng)絡(luò)信息,并進(jìn)一步將該節(jié)點(diǎn)的網(wǎng)絡(luò)信息作為節(jié)點(diǎn)丟失信息上報(bào)給應(yīng)用對(duì)象,進(jìn)而使得應(yīng)用對(duì)象可以實(shí)時(shí)獲取到節(jié)點(diǎn)丟失息。需要說(shuō)明的是,該丟失指示消息中包含的節(jié)點(diǎn)的網(wǎng)絡(luò)信息可以包括丟失節(jié)點(diǎn)的網(wǎng)絡(luò)地址,以及丟失節(jié)點(diǎn)與路由節(jié)點(diǎn)的通信關(guān)系,如,丟失節(jié)點(diǎn)為路由節(jié)點(diǎn)的子節(jié)點(diǎn)或者丟失節(jié)點(diǎn)為路由節(jié)點(diǎn)的父節(jié)點(diǎn)。當(dāng)應(yīng)用對(duì)象根據(jù)節(jié)點(diǎn)丟失信息發(fā)現(xiàn)丟失節(jié)點(diǎn)為路由子節(jié)點(diǎn)時(shí),會(huì)將該節(jié)點(diǎn)丟失信息上報(bào)至網(wǎng)關(guān)節(jié)點(diǎn)。當(dāng)應(yīng)用對(duì)象根據(jù)節(jié)點(diǎn)丟失信息發(fā)現(xiàn)丟失節(jié)點(diǎn)為路由節(jié)點(diǎn)的父節(jié)點(diǎn)時(shí),該應(yīng)用對(duì)象開(kāi)啟節(jié)點(diǎn)加入流程,選擇合適的節(jié)點(diǎn)為父節(jié)點(diǎn)重新加入網(wǎng)絡(luò)。在本發(fā)明中,除網(wǎng)關(guān)節(jié)點(diǎn)和路由節(jié)點(diǎn)檢測(cè)節(jié)點(diǎn)變化生成節(jié)點(diǎn)變化信息外,還包括終端節(jié)點(diǎn)檢測(cè)節(jié)點(diǎn)變化生成節(jié)點(diǎn)變化信息的步驟。終端節(jié)點(diǎn)只有父節(jié)點(diǎn),因此,終端節(jié)點(diǎn)根據(jù)對(duì)節(jié)點(diǎn)的檢測(cè)只會(huì)生成終端父節(jié)點(diǎn)變化信息。具體過(guò)程如圖5所示,包括S41、終端節(jié)點(diǎn)發(fā)送待發(fā)送數(shù)據(jù)至下一跳終端父節(jié)點(diǎn)。終端節(jié)點(diǎn)的待發(fā)送數(shù)據(jù)是自己構(gòu)造的。S42、終端節(jié)點(diǎn)根據(jù)待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷終端父節(jié)點(diǎn)是否丟失。S43、若終端父節(jié)點(diǎn)丟失,則生成終端父節(jié)點(diǎn)丟失信息。同上述方式類(lèi)似,如果該終端節(jié)點(diǎn)的父節(jié)點(diǎn)丟失,則終端節(jié)點(diǎn)的ZigBee協(xié)議棧底層(即應(yīng)用層以下的協(xié)議層)可以獲知該終端父節(jié)點(diǎn)并未接收到該待發(fā)送數(shù)據(jù),同時(shí)在該協(xié)議棧底層生成指示該終端父節(jié)點(diǎn)丟失的丟失指示消息。本發(fā)明中當(dāng)在協(xié)議棧底層生成該丟失指示消息后,會(huì)將該丟失指示消息逐層上報(bào),最終由網(wǎng)絡(luò)層將該丟失指示消息上報(bào)給應(yīng)用層的ZigBee設(shè)備對(duì)象(ZDO,Zigbee Device Obiect),以便ZigBee協(xié)議棧中應(yīng)用層的ZigBee設(shè)備對(duì)象獲取到該終端父節(jié)點(diǎn)丟失的信息。當(dāng)從ZigBee設(shè)備對(duì)象中獲取到丟失指示消息時(shí),提取出該消息中包含的節(jié)點(diǎn)的網(wǎng)絡(luò)信息,并進(jìn)一步將該節(jié)點(diǎn)的網(wǎng)絡(luò)信息作為節(jié)點(diǎn)丟失信息上報(bào)給應(yīng)用對(duì)象,進(jìn)而使得應(yīng)用對(duì)象可以實(shí)時(shí)獲取到節(jié)點(diǎn)丟失信息。需要說(shuō)明的是,該丟失指示消息中包含的節(jié)點(diǎn)的網(wǎng)絡(luò)信息可以包括丟失節(jié)點(diǎn)的網(wǎng)絡(luò)地址,以及丟失節(jié)點(diǎn)與終端節(jié)點(diǎn)的通信關(guān)系,此處為終端節(jié)點(diǎn)的父節(jié)點(diǎn)。S44、終端節(jié)點(diǎn)根據(jù)終端父節(jié)點(diǎn)丟失信息開(kāi)啟孤點(diǎn)加入流程,選擇終端節(jié)點(diǎn)的父節(jié)點(diǎn)為父節(jié)點(diǎn)加入網(wǎng)絡(luò)。孤點(diǎn)加入流程即以該丟失的父節(jié)點(diǎn)為父節(jié)點(diǎn),將其重新加入網(wǎng)絡(luò)。S45、若無(wú)法加入,則終端節(jié)點(diǎn)開(kāi)啟節(jié)點(diǎn)加入流程,選擇其他合適的節(jié)點(diǎn)為父節(jié)點(diǎn) 加入網(wǎng)絡(luò)。在原父節(jié)點(diǎn)無(wú)法加入時(shí),選擇其他合適的節(jié)點(diǎn)為終端節(jié)點(diǎn)的父節(jié)點(diǎn)加入網(wǎng)絡(luò)。本發(fā)明中,待發(fā)送數(shù)據(jù)可以為任意數(shù)據(jù),如可以為與協(xié)議棧相關(guān)的數(shù)據(jù),也可以是普通通信數(shù)據(jù)。上述過(guò)程中涉及發(fā)送待發(fā)送數(shù)據(jù)的節(jié)點(diǎn)判斷下一跳節(jié)點(diǎn)是否接收到待發(fā)送數(shù)據(jù)。其具體判斷方式有多中,其中一種方式為判斷ZigBee協(xié)議棧底層在指定時(shí)間內(nèi)是否接收到該下一跳節(jié)點(diǎn)返回的確認(rèn)接收到待發(fā)送數(shù)據(jù)的消息,如果是,則該下一跳節(jié)點(diǎn)處于網(wǎng)絡(luò)中;如果否,則下一跳節(jié)點(diǎn)丟失。也就是說(shuō),如果該下一跳節(jié)點(diǎn)接收到待發(fā)送數(shù)據(jù)后,會(huì)向其上一跳節(jié)點(diǎn)回復(fù)一個(gè)確認(rèn)消息,以表示自己接收到待發(fā)送數(shù)據(jù)。當(dāng)發(fā)送待發(fā)送數(shù)據(jù)的節(jié)點(diǎn)的協(xié)議層在指定時(shí)間內(nèi)沒(méi)有檢測(cè)或接收到該下一跳節(jié)點(diǎn)返回的確認(rèn)消息,則在協(xié)議層中生成指示下一跳節(jié)點(diǎn)丟失的丟失指示消息。需要明確的是,有時(shí)候下一跳節(jié)點(diǎn)只是暫時(shí)的失去聯(lián)系,而非真正的丟失,尤其是下一跳子節(jié)點(diǎn),可以通過(guò)孤立加入申請(qǐng),很快的加入網(wǎng)絡(luò),恢復(fù)正常的運(yùn)行狀態(tài)。因此,在發(fā)現(xiàn)下一跳子節(jié)點(diǎn)失去聯(lián)系時(shí),可定時(shí)一段時(shí)間,再作判斷。比如定時(shí)一段時(shí)間比如三秒后,下一跳子節(jié)點(diǎn)仍舊失去聯(lián)系,則確定下一跳子節(jié)點(diǎn)丟失,生成下一跳子節(jié)點(diǎn)丟失信息。關(guān)于上述網(wǎng)關(guān)節(jié)點(diǎn)、路由節(jié)點(diǎn)以及終端節(jié)點(diǎn)檢測(cè)節(jié)點(diǎn)的變化生成相關(guān)節(jié)點(diǎn)丟失信息的具體過(guò)程可參見(jiàn)申請(qǐng)?zhí)枮?01110391507.0,發(fā)明名稱(chēng)為“基于ZigBee協(xié)議獲取節(jié)點(diǎn)丟失信息的方法和系統(tǒng)”以及申請(qǐng)?zhí)枮?01110391517. O,發(fā)明名稱(chēng)為“基于ZigBee協(xié)議獲取節(jié)點(diǎn)丟失信息的方法和系統(tǒng)”的專(zhuān)利申請(qǐng)。此處不再詳述。接下來(lái)對(duì)網(wǎng)關(guān)節(jié)點(diǎn)更新網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的過(guò)程進(jìn)行描述。通過(guò)上述過(guò)程可知,路由節(jié)點(diǎn)會(huì)將自身生成的路由子節(jié)點(diǎn)丟失信息以及路由子節(jié)點(diǎn)加入信息上報(bào)至網(wǎng)關(guān)節(jié)點(diǎn),因此,在網(wǎng)關(guān)節(jié)點(diǎn)處就匯集了路由子節(jié)點(diǎn)的變化信息和網(wǎng)關(guān)子節(jié)點(diǎn)的變化信息。網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)這些變化信息更新網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表。其具體過(guò)程參見(jiàn)圖6 S51、判斷節(jié)點(diǎn)的變化信息為節(jié)點(diǎn)的加入信息還是節(jié)點(diǎn)的丟失信息。若為節(jié)點(diǎn)的加入信息,轉(zhuǎn)入步驟S52 ;若為節(jié)點(diǎn)的丟失信息, 轉(zhuǎn)入步驟S55。S52、網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷節(jié)點(diǎn)是否存在于網(wǎng)絡(luò)中。若存在于所述網(wǎng)絡(luò)中,轉(zhuǎn)入步驟S53。若沒(méi)有存在于所述網(wǎng)絡(luò)中,則轉(zhuǎn)入步驟S54。S53、網(wǎng)關(guān)節(jié)點(diǎn)更新網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中存儲(chǔ)的該節(jié)點(diǎn)的相應(yīng)信息。S54、網(wǎng)關(guān)節(jié)點(diǎn)在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中為該節(jié)點(diǎn)分配存儲(chǔ)空間,并增加對(duì)應(yīng)的父子信息。S55、網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷該節(jié)點(diǎn)是否已經(jīng)存在于所述網(wǎng)絡(luò)中。若存在于所述網(wǎng)絡(luò)中,轉(zhuǎn)入步驟S56,若否,轉(zhuǎn)入步驟S57。S56、網(wǎng)關(guān)節(jié)點(diǎn)在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中刪除該節(jié)點(diǎn)的信息。S57、網(wǎng)關(guān)節(jié)點(diǎn)提示出錯(cuò)??紤]到網(wǎng)關(guān)資源有限,為節(jié)省存儲(chǔ)空間,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表可以選用分級(jí)動(dòng)態(tài)鏈表的形式,具體如圖7所示。本發(fā)明優(yōu)選實(shí)施例中,可同時(shí)在路由節(jié)點(diǎn)處維護(hù)路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶(hù)查詢(xún)?cè)撀酚晒?jié)點(diǎn)處的拓?fù)浣Y(jié)構(gòu)信息。具體過(guò)程如下判斷路由子節(jié)點(diǎn)的變化信息為節(jié)點(diǎn)加入信息還是節(jié)點(diǎn)丟失信息。若為節(jié)點(diǎn)加入信息,則路由節(jié)點(diǎn)根據(jù)路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷該路由子節(jié)點(diǎn)是否已經(jīng)存在于所述網(wǎng)絡(luò)中。如果存在于所述網(wǎng)絡(luò)中,則路由節(jié)點(diǎn)更新所述路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表中存儲(chǔ)的該路由子節(jié)點(diǎn)的信息;如果沒(méi)有存在于所述網(wǎng)絡(luò)中,則路由節(jié)點(diǎn)在路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表中為路由子節(jié)點(diǎn)分配存儲(chǔ)空間,并增加對(duì)應(yīng)的父子信息。當(dāng)路由子節(jié)點(diǎn)的變化信息為丟失信息時(shí),路由節(jié)點(diǎn)根據(jù)路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷路由子節(jié)點(diǎn)是否已經(jīng)存在于網(wǎng)絡(luò)中。若存在于所述網(wǎng)絡(luò)中,則路由節(jié)點(diǎn)在路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表中刪除該路由子節(jié)點(diǎn)的信息;若否,則所述路由節(jié)點(diǎn)提示出錯(cuò)。圖8為本發(fā)明中網(wǎng)絡(luò)各節(jié)點(diǎn)信息的維護(hù)示意圖。其中,終端節(jié)點(diǎn)生成其父節(jié)點(diǎn)丟失信息,并根據(jù)其父節(jié)點(diǎn)丟失信息開(kāi)啟孤點(diǎn)加入流程,將父節(jié)點(diǎn)重新加入所述網(wǎng)絡(luò)。其具體加入過(guò)程參見(jiàn)之前實(shí)施例,此處不再詳述。路由節(jié)點(diǎn)生成路由子節(jié)點(diǎn)加入信息、路由子節(jié)點(diǎn)丟失信息和路由父節(jié)點(diǎn)丟失信息。路由節(jié)點(diǎn)根據(jù)路由父節(jié)點(diǎn)丟失信息開(kāi)啟節(jié)點(diǎn)加入流程,選擇一個(gè)合適的節(jié)點(diǎn)作為父節(jié)點(diǎn),以此重新加入所述網(wǎng)絡(luò);并根據(jù)路由子節(jié)點(diǎn)加入信息和路由子節(jié)點(diǎn)丟失信息更新路由節(jié)點(diǎn)網(wǎng)絡(luò)結(jié)構(gòu)信息表,同時(shí)將路由子節(jié)點(diǎn)加入信息和路由子節(jié)點(diǎn)丟失信息上報(bào)至網(wǎng)關(guān)節(jié)點(diǎn)。網(wǎng)關(guān)節(jié)點(diǎn)生成網(wǎng)關(guān)子節(jié)點(diǎn)加入信息、網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息,接收路由節(jié)點(diǎn)上報(bào)的路由子節(jié)點(diǎn)加入和路由子節(jié)點(diǎn)丟失信息,并據(jù)此更新網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表。本發(fā)明實(shí)施例4提供了一種基于Zigbee協(xié)議的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)結(jié)構(gòu)的維護(hù)系統(tǒng),參見(jiàn)圖9,所述系統(tǒng)包括網(wǎng)關(guān)節(jié)點(diǎn)1,路由節(jié)點(diǎn)2以及終端節(jié)點(diǎn)3。其中,網(wǎng)關(guān)節(jié)點(diǎn)I包括網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表建立單元11,用于預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表。網(wǎng)關(guān)子節(jié)點(diǎn)變化信息生成單元12,用于在檢測(cè)到網(wǎng)關(guān)子節(jié)點(diǎn)的變化時(shí)生成網(wǎng)關(guān)子節(jié)點(diǎn)變化信息;所述網(wǎng)關(guān)子節(jié)點(diǎn)包 括網(wǎng)絡(luò)中與網(wǎng)關(guān)節(jié)點(diǎn)存在父子關(guān)系的路由節(jié)點(diǎn)和/或終端節(jié)點(diǎn)。網(wǎng)關(guān)更新單元13,用于根據(jù)網(wǎng)絡(luò)中節(jié)點(diǎn)的變信息更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶(hù)查詢(xún);所述網(wǎng)絡(luò)中節(jié)點(diǎn)包括所述網(wǎng)關(guān)子節(jié)點(diǎn)和所述路由子節(jié)點(diǎn)。路由節(jié)點(diǎn)2包括路由子節(jié)點(diǎn)變化信息生成單元21,用于在檢測(cè)到路由子節(jié)點(diǎn)的變化時(shí)生成路由子節(jié)點(diǎn)變化信息并上報(bào)至所述網(wǎng)關(guān)節(jié)點(diǎn)。路由節(jié)點(diǎn)信息返回單元22,用于根據(jù)接收到的廣播節(jié)點(diǎn)信息收集命令返回自身的節(jié)點(diǎn)信息至所述網(wǎng)關(guān)節(jié)點(diǎn)。終端節(jié)點(diǎn)3包括終端節(jié)點(diǎn)信息返回單元31,用于根據(jù)接收到的廣播節(jié)點(diǎn)信息收集命令返回自身的節(jié)點(diǎn)信息至所述網(wǎng)關(guān)節(jié)點(diǎn)。其中,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表建立單元11包括廣播單元111,用于在所述網(wǎng)絡(luò)中廣播節(jié)點(diǎn)信息收集命令。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表建立子單元112,用于根據(jù)路由節(jié)點(diǎn)信息返回單元22和終端節(jié)點(diǎn)信息返回單元31返回的節(jié)點(diǎn)信息進(jìn)行組合生成網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表并存儲(chǔ)。在網(wǎng)絡(luò)中節(jié)點(diǎn)的變化分節(jié)點(diǎn)的加入和節(jié)點(diǎn)丟失兩種情況。對(duì)應(yīng)的,網(wǎng)關(guān)子節(jié)點(diǎn)變化信息生成單元,包括網(wǎng)關(guān)子節(jié)點(diǎn)加入信息生成單元和網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息生成單元。路由子節(jié)點(diǎn)變化信息生成單元,包括路由子節(jié)點(diǎn)加入信息生成單元和路由子節(jié)點(diǎn)丟失信息生成單元。其中,網(wǎng)關(guān)子節(jié)點(diǎn)加入信息生成單元,用于在檢測(cè)到網(wǎng)關(guān)子節(jié)點(diǎn)的變化時(shí),生成網(wǎng)關(guān)子節(jié)點(diǎn)加入信息,其具體用于當(dāng)一節(jié)點(diǎn)以網(wǎng)關(guān)節(jié)點(diǎn)為父節(jié)點(diǎn)加入網(wǎng)絡(luò)時(shí),生成網(wǎng)關(guān)子節(jié)點(diǎn)加入信息。網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息生成單元,用于在檢測(cè)到網(wǎng)關(guān)子節(jié)點(diǎn)的變化,生成網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息,包括第一下一跳節(jié)點(diǎn)確定單元,用于根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點(diǎn)確定下一跳網(wǎng)關(guān)子節(jié)點(diǎn)。第一數(shù)據(jù)發(fā)送單元,用于將所述待發(fā)送數(shù)據(jù)發(fā)送至所述下一跳網(wǎng)關(guān)子節(jié)點(diǎn)。網(wǎng)關(guān)子節(jié)點(diǎn)丟失判斷單元,用于根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷所述下一跳網(wǎng)關(guān)子節(jié)點(diǎn)是否丟失。網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息生成子單元,用于當(dāng)所述網(wǎng)關(guān)子節(jié)點(diǎn)丟失時(shí),生成網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息。所述路由子節(jié)點(diǎn)加入信息生成單元,用于在檢測(cè)到路由子節(jié)點(diǎn)的變化時(shí),生成路由子節(jié)點(diǎn)加入信息;具體包括
路由子節(jié)點(diǎn)加入信息生成子單元,用于當(dāng)一節(jié)點(diǎn)以所述路由節(jié)點(diǎn)為父節(jié)點(diǎn)加入所述網(wǎng)絡(luò)時(shí),生成路由子節(jié)點(diǎn)加入信息;路由子節(jié)點(diǎn)丟失信息生成單元,具體用于在檢測(cè)到路由子節(jié)點(diǎn)的變化時(shí),生成路由子節(jié)點(diǎn)丟失信息;包括第二下一跳節(jié)點(diǎn)確定單元,用于根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點(diǎn)確定下一跳節(jié)點(diǎn);第二數(shù)據(jù)發(fā)送單元,用于將所述待發(fā)送數(shù)據(jù)發(fā)送至所述下一跳節(jié)點(diǎn);路由子節(jié)點(diǎn)丟失判斷單元,用于根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)確定所述路由節(jié)點(diǎn)的下一跳節(jié)點(diǎn)是否丟失;協(xié)議層上報(bào)單元,用于在所述下一跳路由子節(jié)點(diǎn)丟失,且所述下一跳路由節(jié)點(diǎn)為 所述路由節(jié)點(diǎn)的子節(jié)點(diǎn)時(shí),在所述路由節(jié)點(diǎn)的協(xié)議層生成路由子節(jié)點(diǎn)丟失信息并上報(bào)至所述路由節(jié)點(diǎn)的應(yīng)用層;應(yīng)用層上報(bào)單元,用于在所述路由節(jié)點(diǎn)的應(yīng)用層接收到所述路由子節(jié)點(diǎn)丟失信息時(shí),將所述路由子節(jié)點(diǎn)丟失信息上報(bào)至所述網(wǎng)關(guān)節(jié)點(diǎn);協(xié)議層上報(bào)單元,還用于在所述下一跳節(jié)點(diǎn)丟失,且所述下一跳節(jié)點(diǎn)為路由節(jié)點(diǎn)的父節(jié)點(diǎn)時(shí),在所述路由節(jié)點(diǎn)的協(xié)議層生成路由父節(jié)點(diǎn)丟失信息并上報(bào)至所述路由節(jié)點(diǎn)的應(yīng)用層;應(yīng)用層上報(bào)單元,還用于當(dāng)所述路由節(jié)點(diǎn)的應(yīng)用層接收到所述路由父節(jié)點(diǎn)丟失信息時(shí),開(kāi)啟節(jié)點(diǎn)加入流程,選擇合適的節(jié)點(diǎn)為父節(jié)點(diǎn)重新加入所述網(wǎng)絡(luò)。在本發(fā)明中,終端節(jié)點(diǎn)也可檢測(cè)其父節(jié)點(diǎn)的變化,生成父節(jié)點(diǎn)變化信息。此時(shí),終端節(jié)點(diǎn)還包括終端父節(jié)點(diǎn)確定單元,用于根據(jù)待發(fā)送數(shù)據(jù)目的節(jié)點(diǎn)確定下一跳終端父節(jié)點(diǎn);終端數(shù)據(jù)發(fā)送單元,用于發(fā)送所述待發(fā)送數(shù)據(jù)至所述下一跳終端父節(jié)點(diǎn);終端父節(jié)點(diǎn)丟失判斷單元,用于根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷所述終端父節(jié)點(diǎn)是否丟失;終端父節(jié)點(diǎn)丟失信息生成單元,用于在所述終端父節(jié)點(diǎn)丟失時(shí),生成終端父節(jié)點(diǎn)丟失f目息;孤點(diǎn)加入單元,用于根據(jù)所述終端父節(jié)點(diǎn)丟失信息開(kāi)啟孤點(diǎn)加入流程,選擇所述終端節(jié)點(diǎn)的父節(jié)點(diǎn)為父節(jié)點(diǎn)加入所述網(wǎng)絡(luò);節(jié)點(diǎn)加入單元,用于在所述父節(jié)點(diǎn)無(wú)法通過(guò)孤點(diǎn)加入流程加入時(shí),開(kāi)啟節(jié)點(diǎn)加入流程,選擇其他合適的節(jié)點(diǎn)為父節(jié)點(diǎn)加入所述網(wǎng)絡(luò)。通過(guò)上述介紹可知,路由子節(jié)點(diǎn)丟失信息以及路由子節(jié)點(diǎn)加入信息會(huì)被上報(bào)至網(wǎng)關(guān)節(jié)點(diǎn),因此,在網(wǎng)關(guān)節(jié)點(diǎn)處就匯集了路由子節(jié)點(diǎn)的變化信息和網(wǎng)關(guān)子節(jié)點(diǎn)的變化信息。網(wǎng)關(guān)更新單元根據(jù)這些變化信息更新網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表。網(wǎng)關(guān)更新單元具體包括網(wǎng)關(guān)更新單元包括網(wǎng)關(guān)加入信息判斷單元,用于當(dāng)所述節(jié)點(diǎn)的變化信息為節(jié)點(diǎn)的加入信息時(shí),根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述節(jié)點(diǎn)是否存在于所述網(wǎng)絡(luò)中;網(wǎng)關(guān)加入信息更新子單元,用于在所述節(jié)點(diǎn)存在于所述網(wǎng)絡(luò)中時(shí),更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中存儲(chǔ)的所述節(jié)點(diǎn)的相應(yīng)信息;網(wǎng)關(guān)分配單元,用于在所述節(jié)點(diǎn)未存在于所述網(wǎng)絡(luò)中時(shí),在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中為所述節(jié)點(diǎn)分配存儲(chǔ)空間,并增加對(duì)應(yīng)的父子信息;網(wǎng)關(guān)丟失信息判斷單元,用于當(dāng)所述節(jié)點(diǎn)的變化信息為節(jié)點(diǎn)的丟失信息時(shí),根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述節(jié)點(diǎn)是否已經(jīng)存在于所述網(wǎng)絡(luò)中;網(wǎng)關(guān)丟失信息刪除單元,用于在若所述節(jié)點(diǎn)存在于所述網(wǎng)絡(luò)中時(shí),在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中刪除所述節(jié)點(diǎn)的信息;網(wǎng)關(guān)提示單元,用于在所述節(jié)點(diǎn)未存在于所述網(wǎng)絡(luò)中時(shí),提示出錯(cuò)。在本發(fā)明的優(yōu)選實(shí)施例中,可同時(shí)在路由節(jié)點(diǎn)處維護(hù)路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶(hù)查詢(xún)?cè)撀酚晒?jié)點(diǎn)處的拓?fù)浣Y(jié)構(gòu)信息。此時(shí),路由節(jié)點(diǎn)還包括
路由更新單元,用于根據(jù)所述路由子節(jié)點(diǎn)的變化信息更新存儲(chǔ)于所述路由節(jié)點(diǎn)的路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶(hù)查詢(xún)所述路由節(jié)點(diǎn)處的拓?fù)浣Y(jié)構(gòu)信息;所述路由更新單元包括路由加入信息判斷單元,用于當(dāng)所述路由子節(jié)點(diǎn)的變化信息為加入信息時(shí),根據(jù)路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述路由子節(jié)點(diǎn)是否已經(jīng)存在于所述網(wǎng)絡(luò)中;路由加入信息更新子單元,用于在所述路由子節(jié)點(diǎn)已經(jīng)存在于所述網(wǎng)絡(luò)中時(shí),更新在所述路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表中所存儲(chǔ)的所述路由子節(jié)點(diǎn)的信息;路由分配單元,用于在所述路由子節(jié)點(diǎn)未存在于所述網(wǎng)絡(luò)中時(shí),在所述路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表中為所述路由子節(jié)點(diǎn)分配存儲(chǔ)空間,并增加對(duì)應(yīng)的父子信息;路由丟失信息判斷單元,用于當(dāng)所述路由子節(jié)點(diǎn)的變化信息為丟失信息時(shí),根據(jù)路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述路由子節(jié)點(diǎn)是否已經(jīng)存在于所述網(wǎng)絡(luò)中;路由丟失信息刪除單元,用于在所述路由子節(jié)點(diǎn)已經(jīng)存在于所述網(wǎng)絡(luò)中時(shí),在所述路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表中刪除所述路由子節(jié)點(diǎn)的信息;路由提示單元,用于在所述路由子節(jié)點(diǎn)未存在于所述網(wǎng)絡(luò)中時(shí)提示出錯(cuò)。值得注意的是,本發(fā)明系統(tǒng)與本發(fā)明的方法相對(duì)應(yīng),因此對(duì)系統(tǒng)不再詳述,相關(guān)部分參見(jiàn)方法實(shí)施例即可。以上對(duì)本發(fā)明所提供的一種基于Zigbee協(xié)議的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)結(jié)構(gòu)的維護(hù)方法及系統(tǒng),進(jìn)行了介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處。綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1.一種基于Zigbee協(xié)議的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)結(jié)構(gòu)的維護(hù)方法,其特征在于,所述方法包括 網(wǎng)關(guān)節(jié)點(diǎn)預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的步驟; 所述網(wǎng)關(guān)節(jié)點(diǎn)檢測(cè)到網(wǎng)關(guān)子節(jié)點(diǎn)的變化,所述網(wǎng)關(guān)節(jié)點(diǎn)生成網(wǎng)關(guān)子節(jié)點(diǎn)變化信息的步驟,所述網(wǎng)關(guān)子節(jié)點(diǎn)包括網(wǎng)絡(luò)中與網(wǎng)關(guān)節(jié)點(diǎn)存在父子關(guān)系的路由節(jié)點(diǎn)和/或終端節(jié)點(diǎn);網(wǎng)絡(luò)中路由節(jié)點(diǎn)檢測(cè)到路由子節(jié)點(diǎn)的變化,所述路由節(jié)點(diǎn)生成路由子節(jié)點(diǎn)變化信息并上報(bào)至所述網(wǎng)關(guān)節(jié)點(diǎn)的步驟; 所述網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)網(wǎng)絡(luò)中節(jié)點(diǎn)的變化信息更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶(hù)查詢(xún)的步驟,所述網(wǎng)絡(luò)中節(jié)點(diǎn)包括所述網(wǎng)關(guān)子節(jié)點(diǎn)和所述路由子節(jié)點(diǎn); 其中,所述網(wǎng)關(guān)節(jié)點(diǎn)預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的步驟包括; 所述網(wǎng)關(guān)節(jié)點(diǎn)在所述網(wǎng)絡(luò)中廣播節(jié)點(diǎn)信息收集命令; 網(wǎng)絡(luò)中的節(jié)點(diǎn)根據(jù)收到的所述廣播節(jié)點(diǎn)信息收集命令返回自身的節(jié)點(diǎn)信息至所述網(wǎng)關(guān)節(jié)點(diǎn); 所述網(wǎng)關(guān)節(jié)點(diǎn)將所述網(wǎng)絡(luò)中的節(jié)點(diǎn)返回的所述節(jié)點(diǎn)信息進(jìn)行組合生成網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表并存儲(chǔ)。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于, 所述網(wǎng)關(guān)節(jié)點(diǎn)檢測(cè)到網(wǎng)關(guān)子節(jié)點(diǎn)的變化,生成網(wǎng)關(guān)子節(jié)點(diǎn)變化信息,其中,所述網(wǎng)關(guān)子節(jié)點(diǎn)變化信息包括網(wǎng)關(guān)子節(jié)點(diǎn)加入信息和網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息; 和/或; 所述網(wǎng)絡(luò)中路由節(jié)點(diǎn)檢測(cè)到路由子節(jié)點(diǎn)的變化,生成路由子節(jié)點(diǎn)變化信息并上報(bào)至所述網(wǎng)關(guān)節(jié)點(diǎn);其中,所述路由子節(jié)點(diǎn)變化信息包括路由子節(jié)點(diǎn)加入信息和路由子節(jié)點(diǎn)丟失信息; 所述網(wǎng)關(guān)節(jié)點(diǎn)檢測(cè)到網(wǎng)關(guān)子節(jié)點(diǎn)的變化,生成網(wǎng)關(guān)子節(jié)點(diǎn)加入信息,包括 當(dāng)一節(jié)點(diǎn)以所述網(wǎng)關(guān)節(jié)點(diǎn)為父節(jié)點(diǎn)加入所述網(wǎng)絡(luò)時(shí),所述網(wǎng)關(guān)節(jié)點(diǎn)生成網(wǎng)關(guān)子節(jié)點(diǎn)加入信息; 所述網(wǎng)關(guān)節(jié)點(diǎn)檢測(cè)到網(wǎng)關(guān)子節(jié)點(diǎn)的變化,生成網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息,包括 所述網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點(diǎn)確定下一跳網(wǎng)關(guān)子節(jié)點(diǎn); 所述網(wǎng)關(guān)節(jié)點(diǎn)將所述待發(fā)送數(shù)據(jù)發(fā)送至所述下一跳網(wǎng)關(guān)子節(jié)點(diǎn); 所述網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷所述下一跳網(wǎng)關(guān)子節(jié)點(diǎn)是否丟失; 當(dāng)所述網(wǎng)關(guān)子節(jié)點(diǎn)丟失時(shí),則所述網(wǎng)關(guān)節(jié)點(diǎn)生成網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息; 所述路由節(jié)點(diǎn)檢測(cè)到路由子節(jié)點(diǎn)的變化,生成路由子節(jié)點(diǎn)加入信息,包括 當(dāng)一節(jié)點(diǎn)以所述路由節(jié)點(diǎn)為父節(jié)點(diǎn)加入所述網(wǎng)絡(luò)時(shí),所述路由節(jié)點(diǎn)生成路由子節(jié)點(diǎn)加入信息; 所述路由節(jié)點(diǎn)上報(bào)所述路由子節(jié)點(diǎn)加入信息至所述網(wǎng)關(guān)節(jié)點(diǎn); 所述路由節(jié)點(diǎn)檢測(cè)到路由子節(jié)點(diǎn)的變化,生成路由子節(jié)點(diǎn)丟失信息,包括 所述路由節(jié)點(diǎn)根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點(diǎn)確定下一跳節(jié)點(diǎn); 所述路由節(jié)點(diǎn)將所述待發(fā)送數(shù)據(jù)發(fā)送至所述下一跳節(jié)點(diǎn); 所述路由節(jié)點(diǎn)根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)確定所述下一跳節(jié)點(diǎn)是否丟失;若所述下一跳節(jié)點(diǎn)丟失,且所述下一跳節(jié)點(diǎn)為所述路由節(jié)點(diǎn)的子節(jié)點(diǎn),則在所述路由節(jié)點(diǎn)的協(xié)議層生成路由子節(jié)點(diǎn)丟失信息并上報(bào)至所述路由節(jié)點(diǎn)的應(yīng)用層; 當(dāng)所述路由節(jié)點(diǎn)的應(yīng)用層接收到所述路由子節(jié)點(diǎn)丟失信息時(shí),所述路由節(jié)點(diǎn)將所述路由子節(jié)點(diǎn)丟失信息上報(bào)至所述網(wǎng)關(guān)節(jié)點(diǎn); 若所述下一跳節(jié)點(diǎn)丟失,且所述下一跳節(jié)點(diǎn)為路由節(jié)點(diǎn)的父節(jié)點(diǎn),則在所述路由節(jié)點(diǎn)的協(xié)議層生成路由父節(jié)點(diǎn)丟失信息并上報(bào)至所述路由節(jié)點(diǎn)的應(yīng)用層; 當(dāng)所述路由節(jié)點(diǎn)的應(yīng)用層接收到所述路由父節(jié)點(diǎn)丟失信息時(shí),所述路由節(jié)點(diǎn)開(kāi)啟節(jié)點(diǎn)加入流程,選擇合適的節(jié)點(diǎn)為父節(jié)點(diǎn)重新加入所述網(wǎng)絡(luò)。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)網(wǎng)絡(luò)中節(jié)點(diǎn)的變化信息更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表,包括 當(dāng)所述節(jié)點(diǎn)的變化信息為節(jié)點(diǎn)的加入信息時(shí),所述網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述節(jié)點(diǎn)是否存在于所述網(wǎng)絡(luò)中; 若所述節(jié)點(diǎn)存在于所述網(wǎng)絡(luò)中,則所述網(wǎng)關(guān)節(jié)點(diǎn)更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中存儲(chǔ)的所述節(jié)點(diǎn)的相應(yīng)信息; 若所述節(jié)點(diǎn)未存在于所述網(wǎng)絡(luò)中,則所述網(wǎng)關(guān)節(jié)點(diǎn)在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中為所述節(jié)點(diǎn)分配存儲(chǔ)空間,并增加對(duì)應(yīng)的父子信息; 當(dāng)所述節(jié)點(diǎn)的變化信息為節(jié)點(diǎn)的丟失信息時(shí),所述網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述節(jié)點(diǎn)是否已經(jīng)存在于所述網(wǎng)絡(luò)中; 若所述節(jié)點(diǎn)存在于所述網(wǎng)絡(luò)中,則所述網(wǎng)關(guān)節(jié)點(diǎn)在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中刪除所述節(jié)點(diǎn)的信息; 若所述節(jié)點(diǎn)未存在于所述網(wǎng)絡(luò)中,則所述網(wǎng)關(guān)節(jié)點(diǎn)提示出錯(cuò)。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述方法還包括 所述路由節(jié)點(diǎn)根據(jù)所述路由子節(jié)點(diǎn)的變化信息更新存儲(chǔ)于所述路由節(jié)點(diǎn)的路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶(hù)查詢(xún)所述路由節(jié)點(diǎn)處的拓?fù)浣Y(jié)構(gòu)信息,具體包括 當(dāng)所述路由子節(jié)點(diǎn)的變化信息為加入信息時(shí),所述路由節(jié)點(diǎn)根據(jù)路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述路由子節(jié)點(diǎn)是否已經(jīng)存在于所述網(wǎng)絡(luò)中; 若是,則更新在所述路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表中所存儲(chǔ)的所述路由子節(jié)點(diǎn)的信息;若否,則在所述路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表中為所述路由子節(jié)點(diǎn)分配存儲(chǔ)空間,并增加對(duì)應(yīng)的父子信息; 當(dāng)所述路由子節(jié)點(diǎn)的變化信息為丟失信息時(shí),所述路由節(jié)點(diǎn)根據(jù)路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述路由子節(jié)點(diǎn)是否已經(jīng)存在于所述網(wǎng)絡(luò)中; 若是,則所述路由節(jié)點(diǎn)在所述路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表中刪除所述路由子節(jié)點(diǎn)的信息; 若否,則所述路由節(jié)點(diǎn)提示出錯(cuò)。
5.根據(jù)權(quán)利要求I至4任一項(xiàng)所述的方法,其特征在于,所述方法還包括終端節(jié)點(diǎn)根據(jù)待發(fā)送數(shù)據(jù)目的節(jié)點(diǎn)確定下一跳終端父節(jié)點(diǎn); 所述終端節(jié)點(diǎn)發(fā)送所述待發(fā)送數(shù)據(jù)至所述下一跳終端父節(jié)點(diǎn); 所述終端節(jié)點(diǎn)根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷所述終端父節(jié)點(diǎn)是否丟失; 若所述終端父節(jié)點(diǎn)丟失,則生成終端父節(jié)點(diǎn)丟失信息;所述終端節(jié)點(diǎn)根據(jù)所述終端父節(jié)點(diǎn)丟失信息開(kāi)啟孤點(diǎn)加入流程,選擇所述終端節(jié)點(diǎn)的父節(jié)點(diǎn)為父節(jié)點(diǎn)加入所述網(wǎng)絡(luò); 若無(wú)法加入,則所述終端節(jié)點(diǎn)開(kāi)啟節(jié)點(diǎn)加入流程,選擇其他合適的節(jié)點(diǎn)為父節(jié)點(diǎn)加入所述網(wǎng)絡(luò)。
6.一種基于Zigbee協(xié)議的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)結(jié)構(gòu)的維護(hù)系統(tǒng),其特征在于,所述系統(tǒng)包括網(wǎng)關(guān)節(jié)點(diǎn)、路由節(jié)點(diǎn)和終端節(jié)點(diǎn); 所述網(wǎng)關(guān)節(jié)點(diǎn)包括 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表建立單元,用于預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表; 網(wǎng)關(guān)子節(jié)點(diǎn)變化信息生成單元,用于在檢測(cè)到網(wǎng)關(guān)子節(jié)點(diǎn)的變化時(shí)生成網(wǎng)關(guān)子節(jié)點(diǎn)變化信息;所述網(wǎng)關(guān)子節(jié)點(diǎn)包括網(wǎng)絡(luò)中與網(wǎng)關(guān)節(jié)點(diǎn)存在父子關(guān)系的路由節(jié)點(diǎn)和/或終端節(jié)占. 網(wǎng)關(guān)更新單元,用于根據(jù)網(wǎng)絡(luò)中節(jié)點(diǎn)的變化信息更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶(hù)查詢(xún);所述網(wǎng)絡(luò)中節(jié)點(diǎn)包括所述網(wǎng)關(guān)子節(jié)點(diǎn)和所述路由子節(jié)點(diǎn); 所述路由節(jié)點(diǎn)包括 路由子節(jié)點(diǎn)變化信息生成單元,用于在檢測(cè)到路由子節(jié)點(diǎn)的變化時(shí)生成路由子節(jié)點(diǎn)變化信息并上報(bào)至所述網(wǎng)關(guān)節(jié)點(diǎn); 路由節(jié)點(diǎn)信息返回單元,用于根據(jù)接收到的廣播節(jié)點(diǎn)信息收集命令返回自身的節(jié)點(diǎn)信息至所述網(wǎng)關(guān)節(jié)點(diǎn); 所述終端節(jié)點(diǎn)包括 終端節(jié)點(diǎn)信息返回單元,用于根據(jù)接收到的廣播節(jié)點(diǎn)信息收集命令返回自身的節(jié)點(diǎn)信息至所述網(wǎng)關(guān)節(jié)點(diǎn); 所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表建立單元包括 廣播單元,用于在所述網(wǎng)絡(luò)中廣播節(jié)點(diǎn)信息收集命令; 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表建立子單元,用于根據(jù)路由節(jié)點(diǎn)信息返回單元和終端節(jié)點(diǎn)信息返回單元返回的節(jié)點(diǎn)信息進(jìn)行組合生成網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表并存儲(chǔ)。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于, 所述網(wǎng)關(guān)子節(jié)點(diǎn)變化信息生成單元,包括網(wǎng)關(guān)子節(jié)點(diǎn)加入信息生成單元和網(wǎng)關(guān)子節(jié)點(diǎn)丟失彳目息生成單兀; 和/或; 所述路由子節(jié)點(diǎn)變化信息生成單元,包括路由子節(jié)點(diǎn)加入信息生成單元和路由子節(jié)點(diǎn)丟失彳目息生成單兀; 所述網(wǎng)關(guān)子節(jié)點(diǎn)加入信息生成單元,用于在檢測(cè)到網(wǎng)關(guān)子節(jié)點(diǎn)的變化時(shí),生成網(wǎng)關(guān)子節(jié)點(diǎn)加入信息; 所述網(wǎng)關(guān)子節(jié)點(diǎn)加入信息生成單元,具體用于當(dāng)一節(jié)點(diǎn)以所述網(wǎng)關(guān)節(jié)點(diǎn)為父節(jié)點(diǎn)加入所述網(wǎng)絡(luò)時(shí),生成網(wǎng)關(guān)子節(jié)點(diǎn)加入信息; 所述網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息生成單元,用于在檢測(cè)到網(wǎng)關(guān)子節(jié)點(diǎn)的變化,生成網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息,包括 第一下一跳節(jié)點(diǎn)確定單元,用于根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點(diǎn)確定下一跳網(wǎng)關(guān)子節(jié)點(diǎn); 第一數(shù)據(jù)發(fā)送單元,用于將所述待發(fā)送數(shù)據(jù)發(fā)送至所述下一跳網(wǎng)關(guān)子節(jié)點(diǎn);網(wǎng)關(guān)子節(jié)點(diǎn)丟失判斷單元,用于根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷所述下一跳網(wǎng)關(guān)子節(jié)點(diǎn)是否丟失; 網(wǎng)關(guān)子節(jié)點(diǎn)丟失信息生成子單元,用于當(dāng)所述網(wǎng)關(guān)子節(jié)點(diǎn)丟失時(shí),生成網(wǎng)關(guān)子節(jié)點(diǎn)丟失f目息; 所述路由子節(jié)點(diǎn)加入信息生成單元,用于在檢測(cè)到路由子節(jié)點(diǎn)的變化時(shí),生成路由子節(jié)點(diǎn)加入信息; 所述路由子節(jié)點(diǎn)加入信息生成單元,包括 路由子節(jié)點(diǎn)加入信息生成子單元,用于當(dāng)一節(jié)點(diǎn)以所述路由節(jié)點(diǎn)為父節(jié)點(diǎn)加入所述網(wǎng)絡(luò)時(shí),生成路由子節(jié)點(diǎn)加入信息; 所述路由子節(jié)點(diǎn)丟失信息生成單元,具體用于在檢測(cè)到路由子節(jié)點(diǎn)的變化時(shí),生成路由子節(jié)點(diǎn)丟失信息;包括 第二下一跳節(jié)點(diǎn)確定單元,用于根據(jù)待發(fā)送數(shù)據(jù)的目的節(jié)點(diǎn)確定下一跳節(jié)點(diǎn); 第二數(shù)據(jù)發(fā)送單元,用于將所述待發(fā)送數(shù)據(jù)發(fā)送至所述下一跳節(jié)點(diǎn); 路由子節(jié)點(diǎn)丟失判斷單元,用于根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)確定所述路由節(jié)點(diǎn)的下一跳節(jié)點(diǎn)是否丟失; 協(xié)議層上報(bào)單元,用于在所述下一跳路由子節(jié)點(diǎn)丟失,且所述下一跳路由節(jié)點(diǎn)為所述路由節(jié)點(diǎn)的子節(jié)點(diǎn)時(shí),在所述路由節(jié)點(diǎn)的協(xié)議層生成路由子節(jié)點(diǎn)丟失信息并上報(bào)至所述路由節(jié)點(diǎn)的應(yīng)用層; 應(yīng)用層上報(bào)單元,用于在所述路由節(jié)點(diǎn)的應(yīng)用層接收到所述路由子節(jié)點(diǎn)丟失信息時(shí),將所述路由子節(jié)點(diǎn)丟失信息上報(bào)至所述網(wǎng)關(guān)節(jié)點(diǎn); 所述協(xié)議層上報(bào)單元,還用于在所述下一跳節(jié)點(diǎn)丟失,且所述下一跳節(jié)點(diǎn)為路由節(jié)點(diǎn)的父節(jié)點(diǎn)時(shí),在所述路由節(jié)點(diǎn)的協(xié)議層生成路由父節(jié)點(diǎn)丟失信息并上報(bào)至所述路由節(jié)點(diǎn)的應(yīng)用層; 應(yīng)用層上報(bào)單元,還用于當(dāng)所述路由節(jié)點(diǎn)的應(yīng)用層接收到所述路由父節(jié)點(diǎn)丟失信息時(shí),開(kāi)啟節(jié)點(diǎn)加入流程,選擇合適的節(jié)點(diǎn)為父節(jié)點(diǎn)重新加入所述網(wǎng)絡(luò)。
8.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述網(wǎng)關(guān)更新單元包括 網(wǎng)關(guān)加入信息判斷單元,用于當(dāng)所述節(jié)點(diǎn)的變化信息為節(jié)點(diǎn)的加入信息時(shí),根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述節(jié)點(diǎn)是否存在于所述網(wǎng)絡(luò)中; 網(wǎng)關(guān)加入信息更新子單元,用于在所述節(jié)點(diǎn)存在于所述網(wǎng)絡(luò)中時(shí),更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中存儲(chǔ)的所述節(jié)點(diǎn)的相應(yīng)信息; 網(wǎng)關(guān)分配單元,用于在所述節(jié)點(diǎn)未存在于所述網(wǎng)絡(luò)中時(shí),在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中為所述節(jié)點(diǎn)分配存儲(chǔ)空間,并增加對(duì)應(yīng)的父子信息; 網(wǎng)關(guān)丟失信息判斷單元,用于當(dāng)所述節(jié)點(diǎn)的變化信息為節(jié)點(diǎn)的丟失信息時(shí),根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述節(jié)點(diǎn)是否已經(jīng)存在于所述網(wǎng)絡(luò)中; 網(wǎng)關(guān)丟失信息刪除單元,用于在若所述節(jié)點(diǎn)存在于所述網(wǎng)絡(luò)中時(shí),在所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表中刪除所述節(jié)點(diǎn)的信息; 網(wǎng)關(guān)提示單元,用于在所述節(jié)點(diǎn)未存在于所述網(wǎng)絡(luò)中時(shí),提示出錯(cuò)。
9.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述路由節(jié)點(diǎn)還包括 路由更新單元,用于根據(jù)所述路由子節(jié)點(diǎn)的變化信息更新存儲(chǔ)于所述路由節(jié)點(diǎn)的路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶(hù)查詢(xún)所述路由節(jié)點(diǎn)處的拓?fù)浣Y(jié)構(gòu)信息; 所述路由更新單元包括 路由加入信息判斷單元,用于當(dāng)所述路由子節(jié)點(diǎn)的變化信息為加入信息時(shí),根據(jù)路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述路由子節(jié)點(diǎn)是否已經(jīng)存在于所述網(wǎng)絡(luò)中; 路由加入信息更新子單元,用于在所述路由子節(jié)點(diǎn)已經(jīng)存在于所述網(wǎng)絡(luò)中時(shí),更新在所述路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表中所存儲(chǔ)的所述路由子節(jié)點(diǎn)的信息; 路由分配單元,用于在所述路由子節(jié)點(diǎn)未存在于所述網(wǎng)絡(luò)中時(shí),在所述路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表中為所述路由子節(jié)點(diǎn)分配存儲(chǔ)空間,并增加對(duì)應(yīng)的父子信息; 路由丟失信息判斷單元,用于當(dāng)所述路由子節(jié)點(diǎn)的變化信息為丟失信息時(shí),根據(jù)路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表的內(nèi)容判斷所述路由子節(jié)點(diǎn)是否已經(jīng)存在于所述網(wǎng)絡(luò)中; 路由丟失信息刪除單元,用于在所述路由子節(jié)點(diǎn)已經(jīng)存在于所述網(wǎng)絡(luò)中時(shí),在所述路由節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息表中刪除所述路由子節(jié)點(diǎn)的信息; 路由提示單元,用于在所述路由子節(jié)點(diǎn)未存在于所述網(wǎng)絡(luò)中時(shí)提示出錯(cuò)。
10.根據(jù)權(quán)利要求6-9任一項(xiàng)所述的系統(tǒng),其特征在于,所述終端節(jié)點(diǎn)還包括 終端父節(jié)點(diǎn)確定單元,用于根據(jù)待發(fā)送數(shù)據(jù)目的節(jié)點(diǎn)確定下一跳終端父節(jié)點(diǎn); 終端數(shù)據(jù)發(fā)送單元,用于發(fā)送所述待發(fā)送數(shù)據(jù)至所述下一跳終端父節(jié)點(diǎn); 終端父節(jié)點(diǎn)丟失判斷單元,用于根據(jù)所述待發(fā)送數(shù)據(jù)的接收狀態(tài)判斷所述終端父節(jié)點(diǎn)是否丟失; 終端父節(jié)點(diǎn)丟失信息生成單元,用于在所述終端父節(jié)點(diǎn)丟失時(shí),生成終端父節(jié)點(diǎn)丟失信息; 孤點(diǎn)加入單元,用于根據(jù)所述終端父節(jié)點(diǎn)丟失信息開(kāi)啟孤點(diǎn)加入流程,選擇所述終端節(jié)點(diǎn)的父節(jié)點(diǎn)為父節(jié)點(diǎn)加入所述網(wǎng)絡(luò); 節(jié)點(diǎn)加入單元,用于在所述父節(jié)點(diǎn)無(wú)法通過(guò)孤點(diǎn)加入流程加入時(shí),開(kāi)啟節(jié)點(diǎn)加入流程,選擇其他合適的節(jié)點(diǎn)為父節(jié)點(diǎn)加入所述網(wǎng)絡(luò)。
全文摘要
本發(fā)明提供了一種基于Zigbee協(xié)議的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)結(jié)構(gòu)的維護(hù)方法及系統(tǒng),其中,所述方法包括網(wǎng)關(guān)節(jié)點(diǎn)預(yù)先建立網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表的步驟;所述網(wǎng)關(guān)節(jié)點(diǎn)檢測(cè)到網(wǎng)關(guān)子節(jié)點(diǎn)的變化并生成網(wǎng)關(guān)子節(jié)點(diǎn)變化信息的步驟;網(wǎng)絡(luò)中路由節(jié)點(diǎn)檢測(cè)到路由子節(jié)點(diǎn)的變化并生成路由子節(jié)點(diǎn)變化信息并上報(bào)至網(wǎng)關(guān)節(jié)點(diǎn)的步驟;所述網(wǎng)關(guān)節(jié)點(diǎn)根據(jù)網(wǎng)關(guān)子節(jié)點(diǎn)和路由子節(jié)點(diǎn)的變化信息更新所述網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息表,以供用戶(hù)查詢(xún)的步驟。通過(guò)本發(fā)明的方法,實(shí)現(xiàn)了在網(wǎng)關(guān)節(jié)點(diǎn)處存儲(chǔ)并維護(hù)有網(wǎng)絡(luò)中的所有節(jié)點(diǎn)的信息,解決了現(xiàn)有技術(shù)中不能在網(wǎng)關(guān)節(jié)點(diǎn)獲知網(wǎng)絡(luò)中的網(wǎng)絡(luò)結(jié)構(gòu)信息的問(wèn)題。
文檔編號(hào)H04W84/18GK102970702SQ20121051034
公開(kāi)日2013年3月13日 申請(qǐng)日期2012年12月3日 優(yōu)先權(quán)日2012年12月3日
發(fā)明者陳嵐, 龔關(guān)飛, 李瑩, 俞雪婷 申請(qǐng)人:中國(guó)科學(xué)院微電子研究所