本發(fā)明涉及通信技術(shù)領(lǐng)域。更具體地說(shuō),本發(fā)明涉及一種遠(yuǎn)距離低功耗網(wǎng)絡(luò)中終端節(jié)點(diǎn)離線的檢測(cè)方法及裝置。
背景技術(shù):
遠(yuǎn)距離低功耗網(wǎng)絡(luò)(英文簡(jiǎn)稱:lpwan,英文全稱:lowpowerwideareanetwork)是一種新型的組網(wǎng)的技術(shù),遠(yuǎn)距離低功耗網(wǎng)絡(luò)至少包括終端節(jié)點(diǎn)和網(wǎng)格兩個(gè)部分,其中,終端節(jié)點(diǎn)用于遵守lpwan協(xié)議規(guī)范,實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)遠(yuǎn)距離傳輸。網(wǎng)關(guān):負(fù)責(zé)接收終端節(jié)點(diǎn)的上行鏈路數(shù)據(jù),然后將數(shù)據(jù)聚集到一個(gè)各自單獨(dú)的回程連接,解決多路數(shù)據(jù)并發(fā)問(wèn)題,實(shí)現(xiàn)數(shù)據(jù)收集和轉(zhuǎn)發(fā)。終端節(jié)點(diǎn)采用單跳與一個(gè)或多個(gè)網(wǎng)關(guān)通信,所有的終端節(jié)點(diǎn)均是雙向通信。
遠(yuǎn)距離低功耗網(wǎng)絡(luò)具有以下幾個(gè)方面的特點(diǎn):
距離:常見的近距離無(wú)線通信技術(shù),如wi-fi、藍(lán)牙等,通信距離一般幾十米。而遠(yuǎn)距離低功耗網(wǎng)絡(luò)的通信距離可達(dá)幾公里,甚至幾十公里。
數(shù)據(jù)傳輸速率:電腦、手機(jī)上網(wǎng)瀏覽網(wǎng)頁(yè)、視頻等應(yīng)用需求追求的是高數(shù)據(jù)速率,速度越快越好。而另一方面,遠(yuǎn)距離低功耗網(wǎng)絡(luò),通訊頻次低,傳輸?shù)臄?shù)據(jù)量也非常少,如抄表等。
功耗:高數(shù)據(jù)速率帶來(lái)的是高功耗,需要有充足的電源供應(yīng)。而遠(yuǎn)距離低功耗網(wǎng)絡(luò)的數(shù)據(jù)速率低,終端節(jié)點(diǎn)僅需要少量的電能就可以維持工作,這樣就可以使用電池供電或其他的能量收集的方式供電,這有助于在一定范圍內(nèi)使終端節(jié)點(diǎn)可以大規(guī)模地接入網(wǎng)絡(luò)。
正是由于上述遠(yuǎn)距離、低功耗的特性導(dǎo)致終端節(jié)點(diǎn)與網(wǎng)關(guān)之間無(wú)法建立起長(zhǎng)連接,而導(dǎo)致終端節(jié)點(diǎn)由于終端節(jié)點(diǎn)通信訊號(hào)丟失、電池耗盡等原因時(shí),無(wú)法及時(shí)告知網(wǎng)關(guān),導(dǎo)致離線信息延遲,造成了不必要損失。
現(xiàn)有的遠(yuǎn)距離低功耗網(wǎng)絡(luò)中終端節(jié)點(diǎn)離線的檢測(cè)方法包括:
1、多線程監(jiān)控法,對(duì)遠(yuǎn)距離低功耗網(wǎng)絡(luò)中的每個(gè)終端節(jié)點(diǎn)創(chuàng)建一條任務(wù)線程,以監(jiān)控該終端節(jié)點(diǎn)是否離線,本方法的弊端在于,當(dāng)遠(yuǎn)距離低功耗網(wǎng)絡(luò)中的終端節(jié)點(diǎn)數(shù)量超過(guò)一定數(shù)量時(shí),相應(yīng)的線程的數(shù)量就超出了一般計(jì)算機(jī)的信息處理能力,進(jìn)而導(dǎo)致計(jì)算機(jī)宕機(jī),而為了適應(yīng)不斷增加的終端節(jié)點(diǎn)數(shù)量,運(yùn)營(yíng)商就必須將無(wú)法承受負(fù)荷的計(jì)算機(jī)更換處理能力更強(qiáng)的計(jì)算機(jī),增加了運(yùn)營(yíng)商的成本。
2、輪訓(xùn)法,遍歷遠(yuǎn)距離低功耗網(wǎng)絡(luò)中的每個(gè)終端節(jié)點(diǎn),檢測(cè)終端節(jié)點(diǎn)是否離線,本方法的弊端在于,隨著遠(yuǎn)距離低功耗網(wǎng)絡(luò)中的終端節(jié)點(diǎn)數(shù)量的增多,必然導(dǎo)致遍歷一次的時(shí)間增大,對(duì)單個(gè)終端節(jié)點(diǎn)而言,就存在檢測(cè)不及時(shí)的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的一個(gè)目的是解決至少上述問(wèn)題,并提供至少后面將說(shuō)明的優(yōu)點(diǎn)。
本發(fā)明還有一個(gè)目的是提供一種遠(yuǎn)距離低功耗網(wǎng)絡(luò)中終端節(jié)點(diǎn)離線的檢測(cè)方法及裝置,以克服需要對(duì)每個(gè)終端節(jié)點(diǎn)設(shè)置對(duì)應(yīng)的線程,帶來(lái)的增加運(yùn)營(yíng)商成本的問(wèn)題,以及遍歷所有終端節(jié)點(diǎn)帶來(lái)的兩次檢測(cè)時(shí)間過(guò)長(zhǎng)的問(wèn)題。
為了實(shí)現(xiàn)根據(jù)本發(fā)明的這些目的和其它優(yōu)點(diǎn),根據(jù)本發(fā)明的一個(gè)方面,提供一種遠(yuǎn)距離低功耗網(wǎng)絡(luò)中終端節(jié)點(diǎn)離線的檢測(cè)方法,包括:
s1、確定各終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間,對(duì)任意一個(gè)終端節(jié)點(diǎn),將該終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間存入第一數(shù)據(jù)庫(kù)表;
s2、確定本次檢索時(shí)間,根據(jù)所述本次檢索時(shí)間檢索所述第一數(shù)據(jù)庫(kù)表中各終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間,獲得離線的終端節(jié)點(diǎn)。
優(yōu)選地,所述步驟s1中確定各終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的時(shí)間的步驟,包括:
設(shè)置各終端節(jié)點(diǎn)的唯一標(biāo)識(shí),確定各終端節(jié)點(diǎn)的傳輸數(shù)據(jù)的周期;
對(duì)任意一個(gè)終端節(jié)點(diǎn),根據(jù)該終端節(jié)點(diǎn)的上一次傳輸數(shù)據(jù)的時(shí)間以及所述傳輸數(shù)據(jù)的周期,確定該終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間。
優(yōu)選地,所述確定本次檢索時(shí)間的步驟包括:
確定檢索周期;
根據(jù)上一次檢索時(shí)間以及所述檢索周期,獲得所述本次檢索時(shí)間。
優(yōu)選地,所述根據(jù)所述本次檢索時(shí)間檢索所述第一數(shù)據(jù)庫(kù)表中各終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間,獲得離線的終端節(jié)點(diǎn)的步驟,包括:
比較所述本次檢索時(shí)間與所述第一數(shù)據(jù)庫(kù)表中各終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間;
將下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間早于所述本次搜索時(shí)間的終端節(jié)點(diǎn),作為所述離線的終端節(jié)點(diǎn)。
優(yōu)選地,所述將該終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的時(shí)間存入第一數(shù)據(jù)庫(kù)表的步驟,包括:
創(chuàng)建第一數(shù)據(jù)庫(kù)表,在所述第一數(shù)據(jù)庫(kù)表中添加第一字段和第二字段;
在所述第一字段中添加該終端節(jié)點(diǎn)的唯一標(biāo)識(shí);
在所述第二字段中更新該終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間。
優(yōu)選地,
所述在所述第二字段中更新該終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間的步驟,包括:
將該終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間轉(zhuǎn)換為第一字符串;
在所述第二字段中更新所述第一字符串;
所述根據(jù)所述本次檢索時(shí)間檢索所述第一數(shù)據(jù)庫(kù)表中各終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間,獲得離線的終端節(jié)點(diǎn)的步驟,包括:
將所述本次檢索時(shí)間轉(zhuǎn)換為第二字符串;
比較所述第一字符串與第二字符串的大小,將小于所述第二字符串的第一字符串對(duì)于的終端節(jié)點(diǎn)作為所述離線的終端節(jié)點(diǎn)。
優(yōu)選地,所述確定各終端節(jié)點(diǎn)的傳輸數(shù)據(jù)的周期步驟,之后還包括:
創(chuàng)建第二數(shù)據(jù)庫(kù)表,在所述第二數(shù)據(jù)庫(kù)表中添加第三字段和第四字段;
在所述第三字段中添加各終端節(jié)點(diǎn)的唯一標(biāo)識(shí),在所述第四字段中添加各終端節(jié)點(diǎn)的傳輸數(shù)據(jù)的周期。
優(yōu)選地,根據(jù)該終端節(jié)點(diǎn)的上一次傳輸數(shù)據(jù)的時(shí)間以及所述傳輸數(shù)據(jù)的周期,確定該終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間的步驟,之前還包括:
根據(jù)該終端節(jié)點(diǎn)發(fā)送的數(shù)據(jù)的時(shí)間戳,獲得該終端節(jié)點(diǎn)的上一次傳輸數(shù)據(jù)的時(shí)間;
根據(jù)該終端節(jié)點(diǎn)的唯一標(biāo)識(shí),查詢所述第二數(shù)據(jù)庫(kù)表,在所述第二數(shù)據(jù)庫(kù)表中獲得該終端節(jié)點(diǎn)的傳輸數(shù)據(jù)的周期。
優(yōu)選地,在所述第二數(shù)據(jù)庫(kù)表中添加第五字段,根據(jù)所述終端節(jié)點(diǎn)是否離線,在所述第三字段中更新所述終端節(jié)點(diǎn)的在線/離線狀態(tài)。
根據(jù)本發(fā)明的另一個(gè)方面,還提供一種遠(yuǎn)距離低功耗網(wǎng)絡(luò)中終端節(jié)點(diǎn)離線的檢測(cè)裝置,包括:
預(yù)定時(shí)間獲取模塊,用于確定各終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間,對(duì)任意一個(gè)終端節(jié)點(diǎn),將該終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間存入第一數(shù)據(jù)庫(kù)表;
離線確定模塊,用于確定本次檢索時(shí)間,根據(jù)所述本次檢索時(shí)間檢索所述第一數(shù)據(jù)庫(kù)表中各終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間,獲得離線的終端節(jié)點(diǎn)。
本發(fā)明至少包括以下有益效果:
1.可動(dòng)態(tài)調(diào)整實(shí)時(shí)性級(jí)別,可支持分鐘級(jí)別、秒級(jí)、毫秒級(jí)等別;
2.任意一個(gè)終端節(jié)點(diǎn)之間的報(bào)警周期可獨(dú)立進(jìn)行配置,互相之間不影響;
3.消耗資源少,檢測(cè)只需啟動(dòng)1個(gè)線程;
4.支持持久化,實(shí)施成本低,可基于目前主流關(guān)系數(shù)據(jù)庫(kù)(例如mysql、oracle等開源或商業(yè)數(shù)據(jù)庫(kù))。
本發(fā)明的其它優(yōu)點(diǎn)、目標(biāo)和特征將部分通過(guò)下面的說(shuō)明體現(xiàn),部分還將通過(guò)對(duì)本發(fā)明的研究和實(shí)踐而為本領(lǐng)域的技術(shù)人員所理解。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例的遠(yuǎn)距離低功耗網(wǎng)絡(luò)中終端節(jié)點(diǎn)離線的檢測(cè)方法的流程示意圖;
圖2為本發(fā)明實(shí)施例的遠(yuǎn)距離低功耗網(wǎng)絡(luò)中終端節(jié)點(diǎn)離線的檢測(cè)裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的詳細(xì)說(shuō)明,以令本領(lǐng)域技術(shù)人員參照說(shuō)明書文字能夠據(jù)以實(shí)施。
需要說(shuō)明的是,下述實(shí)施方案中所述實(shí)驗(yàn)方法,如無(wú)特殊說(shuō)明,均為常規(guī)方法,所述試劑和材料,如無(wú)特殊說(shuō)明,均可從商業(yè)途徑獲得;在本發(fā)明的描述中,術(shù)語(yǔ)“橫向”、“縱向”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底”、“內(nèi)”、“外”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡(jiǎn)化描述,并不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對(duì)本發(fā)明的限制。
本發(fā)明實(shí)施例涉及以下定義:
數(shù)據(jù)庫(kù)表是數(shù)據(jù)庫(kù)中一個(gè)非常重要的對(duì)象,是其他對(duì)象的基礎(chǔ)。根據(jù)信息的分類情況,一個(gè)數(shù)據(jù)庫(kù)中可能包含若干個(gè)數(shù)據(jù)庫(kù)表。沒有數(shù)據(jù)庫(kù)表,關(guān)鍵字、主鍵、索引等也就無(wú)從談起。在數(shù)據(jù)庫(kù)畫板中可以顯示數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)庫(kù)表(即使不是用powerbuilder創(chuàng)建的表),創(chuàng)建數(shù)據(jù)庫(kù)表,修改表的定義等數(shù)據(jù)庫(kù)表是數(shù)據(jù)庫(kù)中一個(gè)非常重要的對(duì)象,是其他對(duì)象的基礎(chǔ)。數(shù)據(jù)庫(kù)表(或稱表)是數(shù)據(jù)庫(kù)最重要的組成部分之一。數(shù)據(jù)庫(kù)只是一個(gè)框架,數(shù)據(jù)庫(kù)表才是其實(shí)質(zhì)內(nèi)容。
主鍵(primarykey):表通常具有包含唯一標(biāo)識(shí)表中每一行的值的一列或一組列。這樣的一列或多列稱為表的主鍵(pk),用于強(qiáng)制表的實(shí)體完整性。
業(yè)務(wù)主鍵(自然主鍵):在數(shù)據(jù)庫(kù)表中把具有業(yè)務(wù)邏輯含義的字段作為主鍵,稱為“自然主鍵(naturalkey)”。
邏輯主鍵(代理主鍵):在數(shù)據(jù)庫(kù)表中采用一個(gè)與當(dāng)前表中邏輯信息無(wú)關(guān)的字段作為其主鍵,稱為“代理主鍵”。
復(fù)合主鍵(聯(lián)合主鍵):通過(guò)兩個(gè)或者多個(gè)字段的組合作為主鍵。
現(xiàn)有的遠(yuǎn)距離低功耗網(wǎng)絡(luò)中終端節(jié)點(diǎn)離線的檢測(cè)方法包括:
1、多線程監(jiān)控法,對(duì)遠(yuǎn)距離低功耗網(wǎng)絡(luò)中的每個(gè)終端節(jié)點(diǎn)創(chuàng)建一條任務(wù)線程,以監(jiān)控該終端節(jié)點(diǎn)是否離線,本方法的弊端在于,當(dāng)遠(yuǎn)距離低功耗網(wǎng)絡(luò)中的終端節(jié)點(diǎn)數(shù)量超過(guò)一定數(shù)量時(shí),相應(yīng)的線程的數(shù)量就超出了一般計(jì)算機(jī)的信息處理能力,進(jìn)而導(dǎo)致計(jì)算機(jī)宕機(jī),而為了適應(yīng)不斷增加的終端節(jié)點(diǎn)數(shù)量,運(yùn)營(yíng)商就必須將無(wú)法承受負(fù)荷的計(jì)算機(jī)更換處理能力更強(qiáng)的計(jì)算機(jī),增加了運(yùn)營(yíng)商的成本。
2、輪訓(xùn)法,遍歷遠(yuǎn)距離低功耗網(wǎng)絡(luò)中的每個(gè)終端節(jié)點(diǎn),檢測(cè)終端節(jié)點(diǎn)是否離線,本方法的弊端在于,隨著遠(yuǎn)距離低功耗網(wǎng)絡(luò)中的終端節(jié)點(diǎn)數(shù)量的增多,必然導(dǎo)致遍歷一次的時(shí)間增大,對(duì)單個(gè)終端節(jié)點(diǎn)而言,就存在檢測(cè)不及時(shí)的問(wèn)題。
為了克服現(xiàn)有技術(shù)的上述問(wèn)題,本發(fā)明實(shí)施例提供一種遠(yuǎn)距離低功耗網(wǎng)絡(luò)中終端節(jié)點(diǎn)離線的檢測(cè)方法,如圖1所示,包括:
s1、確定各終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間,對(duì)任意一個(gè)終端節(jié)點(diǎn),將該終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間存入第一數(shù)據(jù)庫(kù)表;
在具體實(shí)施時(shí),確定各終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間,可以通過(guò)事先對(duì)遠(yuǎn)距離低功耗網(wǎng)絡(luò)中的終端節(jié)點(diǎn)設(shè)置的運(yùn)行參數(shù)獲得,例如,設(shè)置終端節(jié)點(diǎn)在每天早上8點(diǎn)、10點(diǎn)以及15點(diǎn)各發(fā)送一次傳輸數(shù)據(jù),根據(jù)現(xiàn)在時(shí)刻是13點(diǎn),即可確定各終端節(jié)點(diǎn)下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間是15點(diǎn),還可以通過(guò)對(duì)各終端節(jié)點(diǎn)的歷史傳輸數(shù)據(jù)的時(shí)間進(jìn)行推算,例如某終端節(jié)點(diǎn)每天在早上10點(diǎn)15分發(fā)送一次數(shù)據(jù),根據(jù)現(xiàn)在時(shí)刻是早上8點(diǎn)10分,即可確定該終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間是2小時(shí)5分鐘后的10點(diǎn)15分,本發(fā)明實(shí)施例中的第一數(shù)據(jù)庫(kù)表用于存儲(chǔ)各終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間,本發(fā)明將所有終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間統(tǒng)計(jì)在一個(gè)數(shù)據(jù)庫(kù)表中,只需通過(guò)單任務(wù)線程的簡(jiǎn)單語(yǔ)句即可查詢出關(guān)鍵詞。
s2、確定本次檢索時(shí)間,根據(jù)所述本次檢索時(shí)間檢索所述第一數(shù)據(jù)庫(kù)表中各終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間,獲得離線的終端節(jié)點(diǎn)。
在具體實(shí)施時(shí),確定本次檢索時(shí)間的方式既可以是周期性地設(shè)置檢索時(shí)間,例如每30分鐘進(jìn)行一次檢索,例如,上一次檢索時(shí)間是10點(diǎn)20分,那么本次檢索時(shí)間就是10點(diǎn)50分,也可以由使用者根據(jù)需求隨時(shí)進(jìn)行確定,由于第一數(shù)據(jù)庫(kù)表中包含所有終端節(jié)點(diǎn)下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間,只要將本次檢索時(shí)間和上述的預(yù)定時(shí)間進(jìn)行比較,即可獲得離線的終端節(jié)點(diǎn)。例如,本次檢索時(shí)間是10點(diǎn)40分,而檢索第一數(shù)據(jù)庫(kù)表發(fā)現(xiàn),終端節(jié)點(diǎn)1的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間是10點(diǎn)20分,終端節(jié)點(diǎn)2的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間是10點(diǎn)50分,終端節(jié)點(diǎn)3的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間是11點(diǎn)05分,那么就可以知道終端節(jié)點(diǎn)1本應(yīng)該在10點(diǎn)20分傳輸數(shù)據(jù),但直到10點(diǎn)40分都沒有傳輸,判斷終端節(jié)點(diǎn)1處于離線狀態(tài)。
需要說(shuō)明的是,本發(fā)明實(shí)施例通過(guò)將各終端節(jié)點(diǎn)下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間存入第一數(shù)據(jù)庫(kù)表中,方便后續(xù)對(duì)關(guān)鍵字—終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間的檢索,通過(guò)結(jié)合檢索時(shí)間,即可快速通過(guò)單一線程查詢出遠(yuǎn)距離低功耗網(wǎng)絡(luò)中所有離線的終端節(jié)點(diǎn)。即克服了需要對(duì)每個(gè)終端節(jié)點(diǎn)設(shè)置對(duì)應(yīng)的線程,帶來(lái)的增加運(yùn)營(yíng)商成本的問(wèn)題,也克服了遍歷所有終端節(jié)點(diǎn)帶來(lái)的兩次檢測(cè)時(shí)間過(guò)長(zhǎng)的問(wèn)題。
在上述各實(shí)施例的基礎(chǔ)上,步驟s1中確定各終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的時(shí)間的步驟,包括:
設(shè)置各終端節(jié)點(diǎn)的唯一標(biāo)識(shí),確定各終端節(jié)點(diǎn)的傳輸數(shù)據(jù)的周期;
在具體實(shí)施時(shí),設(shè)置各終端節(jié)點(diǎn)的唯一標(biāo)識(shí)的時(shí)間既可以在終端節(jié)點(diǎn)出廠時(shí)設(shè)置完畢,也可以在組網(wǎng)時(shí)由網(wǎng)管設(shè)置,本發(fā)明不對(duì)設(shè)置個(gè)終端節(jié)點(diǎn)的唯一標(biāo)識(shí)的時(shí)間段進(jìn)行限制,確定各終端節(jié)點(diǎn)的傳輸數(shù)據(jù)的周期的目的在于將各終端節(jié)點(diǎn)有序地傳輸數(shù)據(jù),需要說(shuō)明的是,根據(jù)“周期”一詞的解釋,是指若一組事件或現(xiàn)象按同樣的順序重復(fù)出現(xiàn),則把完成這一組事件或現(xiàn)象的時(shí)間或空間間隔,稱為周期。也就是說(shuō),本發(fā)明并不對(duì)終端節(jié)點(diǎn)相鄰兩次傳輸數(shù)據(jù)的時(shí)間間隔之差進(jìn)行限制,既可以是相等的,也可以是不等的,例如,遠(yuǎn)距離低功耗網(wǎng)絡(luò)中的終端節(jié)點(diǎn)1,周期既可以是1h發(fā)送一次數(shù)據(jù),也可以是第i個(gè)周期為1h,第i+1個(gè)周期為1.5h,第i+2個(gè)周期為2h,第i+3個(gè)周期為1h…,以此類推,本發(fā)明不對(duì)周期的長(zhǎng)短和間隔進(jìn)行限制。
對(duì)任意一個(gè)終端節(jié)點(diǎn),根據(jù)該終端節(jié)點(diǎn)的上一次傳輸數(shù)據(jù)的時(shí)間以及傳輸數(shù)據(jù)的周期,確定該終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間。
在具體實(shí)施時(shí),若某個(gè)終端節(jié)點(diǎn)上一次傳輸數(shù)據(jù)的時(shí)間是9點(diǎn)20時(shí),同時(shí)傳輸數(shù)據(jù)的周期為1h,那么就可以確定終端節(jié)點(diǎn)下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間為10點(diǎn)20,需要說(shuō)明的是,本發(fā)明中的任意一個(gè)終端節(jié)點(diǎn),在成功傳輸數(shù)據(jù)后,會(huì)實(shí)時(shí)更新下一次傳輸數(shù)據(jù)的時(shí)間,以方便在檢索時(shí)間可以迅速對(duì)所有終端是否離線的狀態(tài)進(jìn)行判斷。
有上述實(shí)施例可知,本發(fā)明可動(dòng)態(tài)對(duì)每個(gè)終端節(jié)點(diǎn)單獨(dú)設(shè)置傳輸數(shù)據(jù)的周期以及下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間,終端節(jié)點(diǎn)之間互不影響。
在上述各實(shí)施例的基礎(chǔ)上,終端節(jié)點(diǎn)的傳輸數(shù)據(jù)的周期的精度可以是小時(shí)、分鐘、秒、毫秒級(jí)別,根據(jù)不同的使用情況選擇不同的時(shí)間精度。
在上述各實(shí)施例的基礎(chǔ)上,確定本次檢索時(shí)間的步驟包括:
確定檢索周期;
在具體實(shí)施時(shí),檢索周期既可以是一個(gè)固定不變地時(shí)間間隔,也可以是一個(gè)變化的時(shí)間間隔,例如,在某些特殊時(shí)段,各終端節(jié)點(diǎn)傳輸數(shù)據(jù)的頻率會(huì)明顯大于其他時(shí)段的頻率,這個(gè)時(shí)候就可以該特殊時(shí)段,將檢索周期設(shè)置的較短,以便更迅速地找出離線的終端節(jié)點(diǎn)。
根據(jù)上一次檢索時(shí)間以及檢索周期,獲得本次檢索時(shí)間。通過(guò)將檢索周期與上一次檢索時(shí)間相加,即可獲得本次檢索時(shí)間。
在上述各實(shí)施例的基礎(chǔ)上,根據(jù)本次檢索時(shí)間檢索第一數(shù)據(jù)庫(kù)表中各終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間,獲得離線的終端節(jié)點(diǎn)的步驟,包括:
比較本次檢索時(shí)間與第一數(shù)據(jù)庫(kù)表中各終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間;
將下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間早于本次搜索時(shí)間的終端節(jié)點(diǎn),作為離線的終端節(jié)點(diǎn)。
需要說(shuō)明的是,本發(fā)明實(shí)施例只需要將第一數(shù)據(jù)庫(kù)中各終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間與檢索時(shí)間進(jìn)行對(duì)比,即可快速獲得離線的終端節(jié)點(diǎn)。本發(fā)明實(shí)施例的檢索離線的方法消耗資源少,只需要啟動(dòng)1各線程,實(shí)施成本低。
在上述實(shí)施例的基礎(chǔ)上,將該終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的時(shí)間存入第一數(shù)據(jù)庫(kù)表的步驟,包括:
創(chuàng)建第一數(shù)據(jù)庫(kù)表,在第一數(shù)據(jù)庫(kù)表中添加第一字段和第二字段;
在第一字段中添加該終端節(jié)點(diǎn)的唯一標(biāo)識(shí);
在第二字段中更新該終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間。
一個(gè)第一數(shù)據(jù)庫(kù)表的結(jié)構(gòu)如表1所示。
表1第一數(shù)據(jù)庫(kù)表的結(jié)構(gòu)表
表1示出的第一數(shù)據(jù)庫(kù)表的id字段用于描述第一數(shù)據(jù)庫(kù)表的名稱,由id的字段說(shuō)明可知,第一數(shù)據(jù)庫(kù)表屬于非業(yè)務(wù)主鍵,所謂業(yè)務(wù)主鍵(natrualkey)是對(duì)與前端可見的,用來(lái)索引和關(guān)聯(lián)的,而非業(yè)務(wù)主鍵,也成為邏輯主鍵(surrogatekey),是唯一標(biāo)識(shí)一條記錄,用來(lái)關(guān)聯(lián),但采用邏輯主鍵關(guān)聯(lián)具有查詢更快的作用,dev_eui用于說(shuō)明每個(gè)終端節(jié)點(diǎn)的唯一編號(hào)地址,例如,某終端節(jié)點(diǎn)的唯一編號(hào)地址為kjdsf001,而time_key則用于描述每個(gè)終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間,通過(guò)在第一數(shù)據(jù)庫(kù)表中,設(shè)置上述信息,只需通過(guò)簡(jiǎn)單的查詢語(yǔ)句即可迅速找到離線的設(shè)備。
在上述實(shí)施例的基礎(chǔ)上,在第二字段中更新該終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間的步驟,包括:
將該終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間轉(zhuǎn)換為第一字符串;
在第二字段中更新第一字符串。
在具體實(shí)施時(shí),例如某終端節(jié)點(diǎn)的唯一標(biāo)識(shí)為:iegf21,該終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間是2017年6月1日的10:00:00,以yyyymmddhhmmss的形式轉(zhuǎn)換為第一字符串:“20170601100000”,然后在將第一數(shù)據(jù)庫(kù)表中的dev_eui字段中查找“iegf21”,將該終端節(jié)點(diǎn)的time_key字段配置“20170601100000”。
根據(jù)本次檢索時(shí)間檢索第一數(shù)據(jù)庫(kù)表中各終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間,獲得離線的終端節(jié)點(diǎn)的步驟,包括:
將本次檢索時(shí)間轉(zhuǎn)換為第二字符串;
比較第一字符串與第二字符串的大小,將小于第二字符串的第一字符串對(duì)于的終端節(jié)點(diǎn)作為離線的終端節(jié)點(diǎn)。
例如,本次時(shí)間是2017年6月1日的14:00:00,以yyyymmddhhmmss的形式轉(zhuǎn)換為第二字符串:“20170601140000”,然后通過(guò)關(guān)鍵的sql查詢語(yǔ)句:select*from預(yù)報(bào)警表wheretime_key<’20170601140000’進(jìn)行查詢第一數(shù)據(jù)庫(kù)表,返回已經(jīng)超時(shí)的設(shè)備的信息,需要注意的是,time_key查詢要使用“<”比較條件。查詢出來(lái)的數(shù)據(jù)全部是已經(jīng)超時(shí)離線的設(shè)備。
在上述各實(shí)施例的基礎(chǔ)上,確定各終端節(jié)點(diǎn)的傳輸數(shù)據(jù)的周期步驟,之后還包括:
創(chuàng)建第二數(shù)據(jù)庫(kù)表,在第二數(shù)據(jù)庫(kù)表中添加第三字段和第四字段;
在第三字段中添加各終端節(jié)點(diǎn)的唯一標(biāo)識(shí),在第四字段中添加各終端節(jié)點(diǎn)的傳輸數(shù)據(jù)的周期。
一個(gè)第二數(shù)據(jù)庫(kù)表的結(jié)構(gòu)如表2所示。
表2第二數(shù)據(jù)庫(kù)表的結(jié)構(gòu)表
表2示出的第二數(shù)據(jù)庫(kù)表的id字段用于描述第二數(shù)據(jù)庫(kù)表的名稱,由id的字段說(shuō)明可知,第二數(shù)據(jù)庫(kù)表也屬于非業(yè)務(wù)主鍵,所謂業(yè)務(wù)主鍵(natrualkey)是對(duì)與前端可見的,用來(lái)索引和關(guān)聯(lián)的,而非業(yè)務(wù)主鍵,也成為邏輯主鍵(surrogatekey),是唯一標(biāo)識(shí)一條記錄,用來(lái)關(guān)聯(lián),但采用邏輯主鍵關(guān)聯(lián)具有查詢更快的作用,dev_eui用于說(shuō)明每個(gè)終端節(jié)點(diǎn)的唯一編號(hào)地址,例如,某終端節(jié)點(diǎn)的唯一編號(hào)地址為gqorj572,而alarm_cycle則用于描述每個(gè)終端節(jié)點(diǎn)的傳輸數(shù)據(jù)的周期,通過(guò)在第二數(shù)據(jù)庫(kù)表中,設(shè)置上述信息,只需通過(guò)簡(jiǎn)單的查詢語(yǔ)句即可迅速找到或設(shè)置每個(gè)終端節(jié)點(diǎn)的傳說(shuō)數(shù)據(jù)的周期。
在上述實(shí)施例的基礎(chǔ)上,根據(jù)該終端節(jié)點(diǎn)的上一次傳輸數(shù)據(jù)的時(shí)間以及傳輸數(shù)據(jù)的周期,確定該終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間的步驟,之前還包括:
根據(jù)該終端節(jié)點(diǎn)發(fā)送的數(shù)據(jù)的時(shí)間戳,獲得該終端節(jié)點(diǎn)的上一次傳輸數(shù)據(jù)的時(shí)間;
在具體實(shí)施例時(shí),遠(yuǎn)距離低功耗網(wǎng)絡(luò)中各終端節(jié)點(diǎn)在傳輸數(shù)據(jù)時(shí),都會(huì)攜帶時(shí)間戳,這在本領(lǐng)域?qū)儆诠WR(shí),時(shí)間戳就是指終端節(jié)點(diǎn)傳輸數(shù)據(jù)的時(shí)刻,當(dāng)服務(wù)器接收到數(shù)據(jù)時(shí),即可通過(guò)時(shí)間戳知曉該數(shù)據(jù)是終端節(jié)點(diǎn)什么時(shí)候傳輸?shù)摹?/p>
根據(jù)該終端節(jié)點(diǎn)的唯一標(biāo)識(shí),查詢第二數(shù)據(jù)庫(kù)表,在第二數(shù)據(jù)庫(kù)表中獲得該終端節(jié)點(diǎn)的傳輸數(shù)據(jù)的周期。
本實(shí)施例通過(guò)將各終端節(jié)點(diǎn)的傳輸數(shù)據(jù)的周期以字段的形式匯總在一個(gè)數(shù)據(jù)庫(kù)表,即第二數(shù)據(jù)庫(kù)表中,實(shí)現(xiàn)了對(duì)各終端節(jié)點(diǎn)的傳輸數(shù)據(jù)的周期獨(dú)立設(shè)置的益處,各終端節(jié)點(diǎn)之間互不影響。
在上述實(shí)施例的基礎(chǔ)上,在第二數(shù)據(jù)庫(kù)表中添加第五字段,根據(jù)終端節(jié)點(diǎn)是否離線,在第三字段中更新終端節(jié)點(diǎn)的在線/離線狀態(tài)。
在本實(shí)施例中,第二數(shù)據(jù)庫(kù)表的結(jié)構(gòu)如表3所示。
表3第二數(shù)據(jù)庫(kù)表的結(jié)構(gòu)表
通過(guò)在第二數(shù)據(jù)庫(kù)表中增加用于顯示終端設(shè)備是否離線的字段,后期可通過(guò)簡(jiǎn)單的sql查詢語(yǔ)句獲知哪些設(shè)備是離線,哪些設(shè)備是在線,非常方便。
下面結(jié)合一個(gè)具體實(shí)施例對(duì)本發(fā)明提供的遠(yuǎn)距離低功耗網(wǎng)絡(luò)中終端節(jié)點(diǎn)離線的檢測(cè)方法進(jìn)行闡述:
設(shè)檢索周期以秒為最小單位,針對(duì)第二數(shù)據(jù)庫(kù)表的alarm_cycle字段信息配置,假設(shè)某終端節(jié)點(diǎn)的離線周期為2分鐘,那么對(duì)應(yīng)配置數(shù)據(jù)信息就為120,數(shù)據(jù)庫(kù)字段alarm_cycle字段的值為120;
當(dāng)完成上述配置,在此之后收到終端節(jié)點(diǎn)發(fā)送的第一條數(shù)據(jù),開始啟動(dòng)計(jì)算該終端節(jié)點(diǎn)是否離線:假設(shè)服務(wù)器收到該終端節(jié)點(diǎn)發(fā)送上來(lái)的數(shù)據(jù),收到此數(shù)據(jù)的操作系統(tǒng)時(shí)間2017/5/1010:00:00,系統(tǒng)根據(jù)終端節(jié)點(diǎn)的dev_eui(唯一標(biāo)識(shí)信息),查詢第二數(shù)據(jù)庫(kù)中的設(shè)備報(bào)警配置字段alarm_cycle,設(shè)當(dāng)前alarm_cycle字段的值為120,單位為秒。根據(jù)當(dāng)前時(shí)間2017/5/1010:00:00并加上120秒為2017/5/1010:02:00,然后基于yyyymmddhhmmss此方式對(duì)時(shí)間進(jìn)行格式化轉(zhuǎn)化成字符串為“20170510100200”,最后往第一數(shù)據(jù)庫(kù)表插入一條記錄,sql語(yǔ)句為:
“insertinto第一數(shù)據(jù)庫(kù)表(dev_eui,time_key)values(‘終端節(jié)點(diǎn)dev_eui‘,““20170510100200’)“
啟動(dòng)一個(gè)后臺(tái)定時(shí)任務(wù)線程,設(shè)置此定時(shí)任務(wù)周期為一秒一次(也可以根據(jù)實(shí)時(shí)性要求設(shè)置為更小時(shí)間粒度周期)。此任務(wù)所執(zhí)行的主要工作如下:首先,獲取當(dāng)前時(shí)間,假設(shè)當(dāng)前值為2017/5/1010:05:00,然后通過(guò)日期格式化yyyymmddhhmmss進(jìn)行轉(zhuǎn)換,把日期類型轉(zhuǎn)換成字符串類型,則當(dāng)前值為20170510100500。接著通過(guò)關(guān)鍵的sql查詢語(yǔ)句select*from第一數(shù)據(jù)庫(kù)表wheretime_key<’20170510100500’進(jìn)行查詢,返回已經(jīng)超時(shí)的終端節(jié)點(diǎn)的信息。這里特別注意time_key查詢一定要使用“<”比較條件。查詢出來(lái)的數(shù)據(jù)全部是已經(jīng)超時(shí)離線的設(shè)備,在第二數(shù)據(jù)庫(kù)中修改這些設(shè)備的status字段并標(biāo)記為離線。
本發(fā)明還提供一種遠(yuǎn)距離低功耗網(wǎng)絡(luò)中終端節(jié)點(diǎn)離線的檢測(cè)裝置,如圖2所示,包括:
預(yù)定時(shí)間獲取模塊,用于確定各終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間,對(duì)任意一個(gè)終端節(jié)點(diǎn),將該終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間存入第一數(shù)據(jù)庫(kù)表;
離線確定模塊,用于確定本次檢索時(shí)間,根據(jù)本次檢索時(shí)間檢索第一數(shù)據(jù)庫(kù)表中各終端節(jié)點(diǎn)的下一次傳輸數(shù)據(jù)的預(yù)定時(shí)間,獲得離線的終端節(jié)點(diǎn)。
盡管本發(fā)明的實(shí)施方案已公開如上,但其并不僅僅限于說(shuō)明書和實(shí)施方式中所列運(yùn)用,它完全可以被適用于各種適合本發(fā)明的領(lǐng)域,對(duì)于熟悉本領(lǐng)域的人員而言,可容易地實(shí)現(xiàn)另外的修改,因此在不背離權(quán)利要求及等同范圍所限定的一般概念下,本發(fā)明并不限于特定的細(xì)節(jié)和這里示出與描述的圖例。