數(shù)據(jù)包時(shí),記錄該可達(dá)分支節(jié)點(diǎn)并將該二次可達(dá)節(jié)點(diǎn)的可達(dá)分支節(jié)點(diǎn)數(shù)加1 (節(jié)點(diǎn)4的可達(dá)分支節(jié)點(diǎn)數(shù)為1,可達(dá)分支節(jié)點(diǎn)列表為7);
步驟九:對其余的二次可達(dá)節(jié)點(diǎn),依次執(zhí)行步驟七和八,若當(dāng)前二次可達(dá)節(jié)點(diǎn)的可達(dá)分支節(jié)點(diǎn)數(shù)大于當(dāng)前二級轉(zhuǎn)發(fā)節(jié)點(diǎn)的可達(dá)分支節(jié)點(diǎn)數(shù),設(shè)置當(dāng)前二次可達(dá)節(jié)點(diǎn)為二級轉(zhuǎn)發(fā)節(jié)點(diǎn),(節(jié)點(diǎn)4的可達(dá)分支節(jié)點(diǎn)數(shù)為1,節(jié)點(diǎn)5的可達(dá)分支節(jié)點(diǎn)數(shù)為2,因此設(shè)置節(jié)點(diǎn)5為最終二級轉(zhuǎn)發(fā)節(jié)點(diǎn)),設(shè)置二級轉(zhuǎn)發(fā)節(jié)點(diǎn)可達(dá)的分支節(jié)點(diǎn)為三次可達(dá)節(jié)點(diǎn)(節(jié)點(diǎn)6和7);
步驟十:按照上述步驟依次執(zhí)行直至尚未到達(dá)分支節(jié)點(diǎn)數(shù)為0或轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù)到達(dá)最大轉(zhuǎn)發(fā)級數(shù)N ;
步驟十一:根節(jié)點(diǎn)設(shè)置當(dāng)前路由為最佳路由,記錄轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù)和尚未到達(dá)分支節(jié)點(diǎn)數(shù)(由此得出當(dāng)前最佳路由如圖2所示)。
[0020]根節(jié)點(diǎn)根據(jù)路由更新時(shí)間間隔,重復(fù)執(zhí)行步驟一至十,并按照下述方法判斷是否使用當(dāng)前路由更新最佳路由:
A)判斷先前路由的轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù)是否少于等于當(dāng)前路由的轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù),若是,設(shè)置當(dāng)前路由為最佳路由,并更新轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù)和尚未到達(dá)分支節(jié)點(diǎn)數(shù);若否,轉(zhuǎn)到步驟B);
B)嘗試使用先前最佳路由是否可以到達(dá)所有的節(jié)點(diǎn),若是,不更新最佳路由;若否,設(shè)置當(dāng)前路由為最佳路由,并更新轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù)和尚未到達(dá)分支節(jié)點(diǎn)數(shù)。
[0021]當(dāng)根節(jié)點(diǎn)嘗試使用先前最佳路由是否可以到達(dá)所有的節(jié)點(diǎn)時(shí),根節(jié)點(diǎn)向一次可達(dá)節(jié)點(diǎn)發(fā)送請求數(shù)據(jù)包,通過η級轉(zhuǎn)發(fā)節(jié)點(diǎn)向η+1次可達(dá)節(jié)點(diǎn)發(fā)送轉(zhuǎn)發(fā)請求數(shù)據(jù)包,通過根節(jié)點(diǎn)向不可達(dá)節(jié)點(diǎn)發(fā)送請求數(shù)據(jù)包,通過一級至η級轉(zhuǎn)發(fā)節(jié)點(diǎn)向不可達(dá)節(jié)點(diǎn)發(fā)送轉(zhuǎn)發(fā)請求數(shù)據(jù)包,并設(shè)置相應(yīng)的時(shí)間間隔等待應(yīng)答數(shù)據(jù)包,η為轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù)。
[0022]以最大轉(zhuǎn)發(fā)級數(shù)Ν=2為例,關(guān)于當(dāng)前路由和先前路由的比較算法如下:
(一)當(dāng)前路由為2級路由
不管先前路由為2級路由、1級轉(zhuǎn)發(fā)路由、直接可達(dá)路由,均把當(dāng)前路由作為最佳路由。
[0023](二)當(dāng)前路由為1級路由
①先前路由為2級路由,則嘗試使用先前路由是否可以到達(dá)所有的節(jié)點(diǎn),如果可以到達(dá)所有的節(jié)點(diǎn),則把先前路由作為最佳路由;如果存在部分節(jié)點(diǎn)不可達(dá),則把當(dāng)前路由作為最佳路由。
[0024]②先前路由為1級路由或者直接可達(dá)路由,則把當(dāng)前路由作為最佳路由。
[0025](三)當(dāng)前路由為直接可達(dá)路由
①先前路由為2級路由,則嘗試使用先前路由是否可以到達(dá)所有的節(jié)點(diǎn),如果可以到達(dá)所有的節(jié)點(diǎn),則把先前路由作為最佳路由;如果存在部分節(jié)點(diǎn)不可達(dá),則把當(dāng)前路由作為最佳路由。
[0026]②先前路由為1級路由,則嘗試使用先前路由是否可以到達(dá)所有的節(jié)點(diǎn),如果可以到達(dá)所有的節(jié)點(diǎn),則把先前路由作為最佳路由;如果存在部分節(jié)點(diǎn)不可達(dá),則把當(dāng)前路由作為最佳路由。
[0027]③先前路由為直接可達(dá)路由,則把當(dāng)前路由作為最佳路由。
[0028]當(dāng)根節(jié)點(diǎn)在上述超時(shí)時(shí)間間隔內(nèi),沒有收到尚未到達(dá)的分支節(jié)點(diǎn)的應(yīng)答數(shù)據(jù)包時(shí),根節(jié)點(diǎn)向該分支節(jié)點(diǎn)再次嘗試發(fā)送。優(yōu)選地,根節(jié)點(diǎn)向尚未到達(dá)的分支節(jié)點(diǎn)發(fā)送請求數(shù)據(jù)包的最大嘗試次數(shù)為3次。
[0029]當(dāng)轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù)n=0時(shí),每個(gè)一次可達(dá)節(jié)點(diǎn)記錄根節(jié)點(diǎn)作為上級轉(zhuǎn)發(fā)節(jié)點(diǎn);當(dāng)n>0時(shí),每個(gè)η+1次可達(dá)節(jié)點(diǎn)記錄η級轉(zhuǎn)發(fā)節(jié)點(diǎn)作為上級轉(zhuǎn)發(fā)節(jié)點(diǎn)。
[0030]當(dāng)轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù)η=1時(shí),每個(gè)一級轉(zhuǎn)發(fā)節(jié)點(diǎn)記錄二級可達(dá)節(jié)點(diǎn)列表,并記錄根節(jié)點(diǎn)作為上級轉(zhuǎn)發(fā)節(jié)點(diǎn);當(dāng)11>1時(shí),每個(gè)η級轉(zhuǎn)發(fā)節(jié)點(diǎn)記錄η+1級可達(dá)分支節(jié)點(diǎn)列表,并記錄η_1級轉(zhuǎn)發(fā)節(jié)點(diǎn)作為上級轉(zhuǎn)發(fā)節(jié)點(diǎn)。
[0031]本發(fā)明每個(gè)節(jié)點(diǎn)的狀態(tài)有兩個(gè):路由更新狀態(tài)和轉(zhuǎn)發(fā)數(shù)據(jù)狀態(tài)。定期進(jìn)行路由表的更新,此時(shí)不能實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)發(fā)。在進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)時(shí)也不能執(zhí)行路由表的更新。
[0032]本發(fā)明考慮到節(jié)點(diǎn)位置固定,且會發(fā)生某兩點(diǎn)間無線通道臨時(shí)可用,但長期不通的情況,路由表更新采取了“保守策略”,即當(dāng)更新的路由表項(xiàng)經(jīng)過點(diǎn)的個(gè)數(shù)少于原有針對該最終節(jié)點(diǎn)的路由表項(xiàng)中間點(diǎn)個(gè)數(shù)時(shí),如果原來的路由表項(xiàng)可用,則仍然使用原來的。
[0033]
以上所述的僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本領(lǐng)域的技術(shù)人員來說,在不脫離本發(fā)明整體構(gòu)思前提下,還可以作出若干改變和改進(jìn),這些也應(yīng)該視為本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種無線路由方法,其特征在于:包括如下步驟: 步驟一:根節(jié)點(diǎn)根據(jù)當(dāng)前配置的分支節(jié)點(diǎn)數(shù),逐個(gè)向分支節(jié)點(diǎn)發(fā)送請求數(shù)據(jù)包,并設(shè)置一無轉(zhuǎn)發(fā)超時(shí)時(shí)間間隔等待分支節(jié)點(diǎn)返回應(yīng)答數(shù)據(jù)包,如果在所述無轉(zhuǎn)發(fā)超時(shí)時(shí)間間隔內(nèi),分支節(jié)點(diǎn)返回應(yīng)答數(shù)據(jù)包,則標(biāo)記為一次可達(dá)節(jié)點(diǎn); 步驟二:根節(jié)點(diǎn)查找根節(jié)點(diǎn)尚未到達(dá)的分支節(jié)點(diǎn),若尚未到達(dá)分支節(jié)點(diǎn)數(shù)為0,轉(zhuǎn)到步驟十一;若尚未到達(dá)分支節(jié)點(diǎn)數(shù)不為0,設(shè)置一次可達(dá)節(jié)點(diǎn)列表中第一個(gè)一次可達(dá)節(jié)點(diǎn)為一級轉(zhuǎn)發(fā)節(jié)點(diǎn),轉(zhuǎn)到步驟三; 步驟三:根節(jié)點(diǎn)向第一個(gè)一次可達(dá)節(jié)點(diǎn)發(fā)送轉(zhuǎn)發(fā)請求數(shù)據(jù)包到所有尚未到達(dá)的分支節(jié)點(diǎn),并設(shè)置一一次轉(zhuǎn)發(fā)超時(shí)時(shí)間間隔等待應(yīng)答; 步驟四:在所述一次轉(zhuǎn)發(fā)超時(shí)時(shí)間間隔內(nèi),當(dāng)根節(jié)點(diǎn)收到第一個(gè)一次可達(dá)節(jié)點(diǎn)轉(zhuǎn)發(fā)的分支節(jié)點(diǎn)的應(yīng)答數(shù)據(jù)包時(shí),記錄該可達(dá)分支節(jié)點(diǎn)并將該一次可達(dá)節(jié)點(diǎn)的可達(dá)分支節(jié)點(diǎn)數(shù)加1; 步驟五:對其余的一次可達(dá)節(jié)點(diǎn),依次執(zhí)行步驟三和四,若當(dāng)前一次可達(dá)節(jié)點(diǎn)的可達(dá)分支節(jié)點(diǎn)數(shù)大于當(dāng)前一級轉(zhuǎn)發(fā)節(jié)點(diǎn)的可達(dá)分支節(jié)點(diǎn)數(shù),設(shè)置當(dāng)前一次可達(dá)節(jié)點(diǎn)為一級轉(zhuǎn)發(fā)節(jié)點(diǎn),設(shè)置一級轉(zhuǎn)發(fā)節(jié)點(diǎn)可達(dá)的分支節(jié)點(diǎn)為二次可達(dá)節(jié)點(diǎn); 步驟六:根節(jié)點(diǎn)查找根節(jié)點(diǎn)、一級轉(zhuǎn)發(fā)節(jié)點(diǎn)尚未到達(dá)的分支節(jié)點(diǎn),若尚未到達(dá)分支節(jié)點(diǎn)數(shù)為0,轉(zhuǎn)到步驟十一;若尚未到達(dá)分支節(jié)點(diǎn)數(shù)不為0,設(shè)置二次可達(dá)節(jié)點(diǎn)列表中第一個(gè)二次可達(dá)節(jié)點(diǎn)為二級轉(zhuǎn)發(fā)節(jié)點(diǎn),轉(zhuǎn)到步驟七; 步驟七:根節(jié)點(diǎn)通過一級轉(zhuǎn)發(fā)節(jié)點(diǎn)向第一個(gè)二次可達(dá)節(jié)點(diǎn)發(fā)送轉(zhuǎn)發(fā)請求數(shù)據(jù)包到所有尚未到達(dá)的分支節(jié)點(diǎn),并設(shè)置一二次轉(zhuǎn)發(fā)超時(shí)時(shí)間間隔等待應(yīng)答; 步驟八:在所述二次轉(zhuǎn)發(fā)超時(shí)時(shí)間間隔內(nèi),當(dāng)根節(jié)點(diǎn)收到第一個(gè)二次可達(dá)節(jié)點(diǎn)轉(zhuǎn)發(fā)的分支節(jié)點(diǎn)的應(yīng)答數(shù)據(jù)包時(shí),記錄該可達(dá)分支節(jié)點(diǎn)并將該二次可達(dá)節(jié)點(diǎn)的可達(dá)分支節(jié)點(diǎn)數(shù)加1; 步驟九:對其余的二次可達(dá)節(jié)點(diǎn),依次執(zhí)行步驟七和八,若當(dāng)前二次可達(dá)節(jié)點(diǎn)的可達(dá)分支節(jié)點(diǎn)數(shù)大于當(dāng)前二級轉(zhuǎn)發(fā)節(jié)點(diǎn)的可達(dá)分支節(jié)點(diǎn)數(shù),設(shè)置當(dāng)前二次可達(dá)節(jié)點(diǎn)為二級轉(zhuǎn)發(fā)節(jié)點(diǎn),設(shè)置二級轉(zhuǎn)發(fā)節(jié)點(diǎn)可達(dá)的分支節(jié)點(diǎn)為三次可達(dá)節(jié)點(diǎn); 步驟十:按照上述步驟依次執(zhí)行直至尚未到達(dá)分支節(jié)點(diǎn)數(shù)為0或轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù)到達(dá)最大轉(zhuǎn)發(fā)級數(shù)N ; 步驟十一:根節(jié)點(diǎn)設(shè)置當(dāng)前路由為最佳路由,記錄轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù)和尚未到達(dá)分支節(jié)點(diǎn)數(shù)。2.根據(jù)權(quán)利要求1所述的一種無線路由方法,其特征在于:根節(jié)點(diǎn)根據(jù)路由更新時(shí)間間隔,重復(fù)執(zhí)行步驟一至十,并按照下述方法判斷是否使用當(dāng)前路由更新最佳路由: 判斷先前路由的轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù)是否少于等于當(dāng)前路由的轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù),若是,設(shè)置當(dāng)前路由為最佳路由,并更新轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù)和尚未到達(dá)分支節(jié)點(diǎn)數(shù);若否,轉(zhuǎn)到步驟B); 嘗試使用先前最佳路由是否可以到達(dá)所有的節(jié)點(diǎn),若是,不更新最佳路由;若否,設(shè)置當(dāng)前路由為最佳路由,并更新轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù)和尚未到達(dá)分支節(jié)點(diǎn)數(shù)。3.根據(jù)權(quán)利要求2所述的一種無線路由方法,其特征在于:當(dāng)根節(jié)點(diǎn)嘗試使用先前最佳路由是否可以到達(dá)所有的節(jié)點(diǎn)時(shí),根節(jié)點(diǎn)向一次可達(dá)節(jié)點(diǎn)發(fā)送請求數(shù)據(jù)包,通過η級轉(zhuǎn)發(fā)節(jié)點(diǎn)向η+1次可達(dá)節(jié)點(diǎn)發(fā)送轉(zhuǎn)發(fā)請求數(shù)據(jù)包,通過根節(jié)點(diǎn)向不可達(dá)節(jié)點(diǎn)發(fā)送請求數(shù)據(jù)包,通過一級至η級轉(zhuǎn)發(fā)節(jié)點(diǎn)向不可達(dá)節(jié)點(diǎn)發(fā)送轉(zhuǎn)發(fā)請求數(shù)據(jù)包,并設(shè)置相應(yīng)的時(shí)間間隔等待應(yīng)答數(shù)據(jù)包,η為轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù)。4.根據(jù)權(quán)利要求1或2所述的一種無線路由方法,其特征在于:當(dāng)根節(jié)點(diǎn)在所述超時(shí)時(shí)間間隔內(nèi),沒有收到尚未到達(dá)的分支節(jié)點(diǎn)的應(yīng)答數(shù)據(jù)包時(shí),根節(jié)點(diǎn)向該分支節(jié)點(diǎn)再次嘗試發(fā)送。5.根據(jù)權(quán)利要求4所述的一種無線路由方法,其特征在于:根節(jié)點(diǎn)向尚未到達(dá)的分支節(jié)點(diǎn)發(fā)送請求數(shù)據(jù)包的最大嘗試次數(shù)為3次。6.根據(jù)權(quán)利要求1或2所述的一種無線路由方法,其特征在于:當(dāng)轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù)η=0時(shí),每個(gè)一次可達(dá)節(jié)點(diǎn)記錄根節(jié)點(diǎn)作為上級轉(zhuǎn)發(fā)節(jié)點(diǎn);當(dāng)η>0時(shí),每個(gè)η+1次可達(dá)節(jié)點(diǎn)記錄η級轉(zhuǎn)發(fā)節(jié)點(diǎn)作為上級轉(zhuǎn)發(fā)節(jié)點(diǎn)。7.根據(jù)權(quán)利要求1或2所述的一種無線路由方法,其特征在于:當(dāng)轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù)η=1時(shí),每個(gè)一級轉(zhuǎn)發(fā)節(jié)點(diǎn)記錄二級可達(dá)節(jié)點(diǎn)列表,并記錄根節(jié)點(diǎn)作為上級轉(zhuǎn)發(fā)節(jié)點(diǎn);當(dāng)11>1時(shí),每個(gè)η級轉(zhuǎn)發(fā)節(jié)點(diǎn)記錄η+1級可達(dá)分支節(jié)點(diǎn)列表,并記錄η-l級轉(zhuǎn)發(fā)節(jié)點(diǎn)作為上級轉(zhuǎn)發(fā)節(jié)點(diǎn)。8.根據(jù)權(quán)利要求1或2所述的一種無線路由方法,其特征在于:最大轉(zhuǎn)發(fā)級數(shù)Ν< 6。9.一種采用權(quán)利要求1至8任一所述的方法的無線抄表系統(tǒng),其特征在于:包括抄表中心、根節(jié)點(diǎn)和分支節(jié)點(diǎn),所述抄表中心和根節(jié)點(diǎn)間通過GPRS網(wǎng)絡(luò)通信,所述根節(jié)點(diǎn)和分支節(jié)點(diǎn)通過權(quán)利要求1至7任一所述的方法建立最佳路由, 所述抄表中心負(fù)責(zé)向根節(jié)點(diǎn)發(fā)出抄表指令,并接收并管理從根節(jié)點(diǎn)傳來的數(shù)據(jù); 所述根節(jié)點(diǎn)為設(shè)置在一定空間位置的數(shù)據(jù)集中器,負(fù)責(zé)接收抄表中心的抄表指令,通過最佳路由發(fā)送給各分支節(jié)點(diǎn),接收各分支節(jié)點(diǎn)的表端數(shù)據(jù)并上傳給抄表中心; 所述分支節(jié)點(diǎn)為設(shè)置數(shù)據(jù)采集模塊和無線通信模塊的電表端,所述分支節(jié)點(diǎn)負(fù)責(zé)接收抄表指令并向根節(jié)點(diǎn)上傳表端數(shù)據(jù)。10.根據(jù)權(quán)利要求9所述的一種無線抄表系統(tǒng),其特征在于:所述根節(jié)點(diǎn)和分支節(jié)點(diǎn)間通過無線射頻頻段在1GHz以下的短距離無線數(shù)傳模塊通信。
【專利摘要】本發(fā)明公開了一種無線路由方法,包括:1)根節(jié)點(diǎn)逐個(gè)向分支節(jié)點(diǎn)發(fā)送請求數(shù)據(jù)包,若在超時(shí)時(shí)間間隔內(nèi),分支節(jié)點(diǎn)返回應(yīng)答,則標(biāo)記為一次可達(dá)節(jié)點(diǎn);2)若尚未到達(dá)分支節(jié)點(diǎn)數(shù)為0,轉(zhuǎn)到步驟3);若尚未到達(dá)分支節(jié)點(diǎn)數(shù)不為0,根節(jié)點(diǎn)向所有一次可達(dá)節(jié)點(diǎn)發(fā)送轉(zhuǎn)發(fā)請求數(shù)據(jù)包,設(shè)置可以到達(dá)的分支節(jié)點(diǎn)個(gè)數(shù)最多的一次可達(dá)節(jié)點(diǎn)為一級轉(zhuǎn)發(fā)節(jié)點(diǎn),其分支節(jié)點(diǎn)為二次可達(dá)節(jié)點(diǎn);3)按照步驟2)依次執(zhí)行直至尚未到達(dá)分支節(jié)點(diǎn)數(shù)為0或轉(zhuǎn)發(fā)節(jié)點(diǎn)數(shù)到達(dá)最大轉(zhuǎn)發(fā)級數(shù)N,設(shè)置當(dāng)前路由為最佳路由。本發(fā)明的方法和系統(tǒng)可用于電表、水表、氣表等多種住宅表的抄表操作,抄表速度快,抄表的成功率高,適應(yīng)性強(qiáng),能夠滿足抄表的實(shí)時(shí)性等要求。
【IPC分類】H04W40/02, G08C17/02, H04W40/24
【公開號】CN105357730
【申請?zhí)枴緾N201510921918
【發(fā)明人】宋繼東, 王保進(jìn), 任家順, 宋向東
【申請人】宋繼東, 王保進(jìn), 任家順, 宋向東
【公開日】2016年2月24日
【申請日】2015年12月14日