本發(fā)明涉及智能表技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)發(fā)送方法及裝置。
背景技術(shù):
LPWAN(Low Power Wide Area Network,低功耗廣域網(wǎng))作為近幾年才開始商用的物聯(lián)網(wǎng)接入技術(shù),在歐美的部分地區(qū)的發(fā)展初具規(guī)模,產(chǎn)業(yè)鏈基本成型,而在中國還處于剛剛起步的階段,可以說,LPWAN在物聯(lián)網(wǎng)領(lǐng)域?qū)笥兴鶠榈陌l(fā)展趨勢已成定局。LPWAN在中國最主要應(yīng)用在智能表行業(yè),目前在中國市場大規(guī)模應(yīng)用的主要是長距離(Long Range)技術(shù),而LoRa技術(shù)應(yīng)用中,主要有LoRa模塊、網(wǎng)關(guān)和其他設(shè)備以及由此形成提供的服務(wù)等。LoRaWAN(Long Range Wide Area Network,長距離廣域網(wǎng))協(xié)議是基于LoRa技術(shù)的一個LPWAN協(xié)議標(biāo)準(zhǔn)。根據(jù)基于的協(xié)議不同,目前國內(nèi)市場上的通訊模塊分為兩類,一類是基于LoRa私有協(xié)議開發(fā)的LoRa通訊模塊,由于此類LoRa通訊模塊基于私有協(xié)議,所以不具有互通性,另一類是基于LoRaWAN開源協(xié)議開發(fā)的LoRaWAN通訊模塊,基于LoRaWAN開源協(xié)議的數(shù)據(jù)通訊的過程中,主控模塊通過LoRaWAN通訊模塊可以向服務(wù)器發(fā)送數(shù)據(jù)。
現(xiàn)有技術(shù)在數(shù)據(jù)發(fā)送的過程中,如果主控模塊檢測到有待發(fā)送的數(shù)據(jù),直接通過LoRaWAN通訊模塊,向服務(wù)器發(fā)送數(shù)據(jù),如果在LoRaWAN通訊模塊向服務(wù)發(fā)送數(shù)據(jù)的過程中,發(fā)送數(shù)據(jù)的頻段被占用,這就可能導(dǎo)致數(shù)據(jù)發(fā)送失敗或數(shù)據(jù)丟失的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種數(shù)據(jù)發(fā)送方法及裝置,用以解決現(xiàn)有技術(shù)中基于LoRaWAN開源協(xié)議的數(shù)據(jù)通訊的過程中,發(fā)送數(shù)據(jù)的頻段被占用,導(dǎo)致數(shù)據(jù)發(fā)送失敗或數(shù)據(jù)丟失的問題。
為了解決上述問題,本發(fā)明提供了一種數(shù)據(jù)發(fā)送方法,該方法包括:
判斷緩存區(qū)中是否存在待發(fā)送的第一數(shù)據(jù);
如果是,通過長距離廣域網(wǎng)LoRaWAN通訊模塊檢測當(dāng)前網(wǎng)絡(luò)狀態(tài);
當(dāng)當(dāng)前網(wǎng)絡(luò)狀態(tài)滿足數(shù)據(jù)發(fā)送條件時,通過所述LoRaWAN通訊模塊發(fā)送所述第一數(shù)據(jù)。
進一步地,如果當(dāng)前網(wǎng)絡(luò)狀態(tài)不滿足數(shù)據(jù)發(fā)送條件,所述方法還包括:
按照設(shè)定的時間間隔通過LoRaWAN通訊模塊繼續(xù)檢測當(dāng)前網(wǎng)絡(luò)狀態(tài)。
進一步地,所述發(fā)送所述第一數(shù)據(jù)后,所述方法還包括:
清空所述緩存區(qū);
在設(shè)定的時長內(nèi)判斷所述緩存區(qū)中是否存在待發(fā)送的第二數(shù)據(jù);
如果否,控制所述LoRaWAN通訊模塊進入休眠狀態(tài)。
進一步地,如果判斷緩存區(qū)中存在待發(fā)送的第一數(shù)據(jù),通過LoRaWAN通訊模塊發(fā)送所述第一數(shù)據(jù)之前,所述還包括:
喚醒所述LoRaWAN通訊模塊。
進一步地,所述判斷緩存區(qū)中是否存在待發(fā)送的第一數(shù)據(jù)之前,所述方法還包括:
通過所述LoRaWAN通訊模塊發(fā)送入網(wǎng)請求。
本發(fā)明提供了一種數(shù)據(jù)發(fā)送裝置,該裝置包括:
判斷模塊,用于判斷緩存區(qū)中是否存在待發(fā)送的第一數(shù)據(jù);如果是,觸發(fā)檢測模塊;
檢測模塊,用于通過長距離廣域網(wǎng)LoRaWAN通訊模塊檢測當(dāng)前網(wǎng)絡(luò)狀態(tài);
第一發(fā)送模塊,用于當(dāng)當(dāng)前網(wǎng)絡(luò)狀態(tài)滿足數(shù)據(jù)發(fā)送條件時,通過所述LoRaWAN通訊模塊發(fā)送所述第一數(shù)據(jù)。
進一步地,所述檢測模塊,具體用于如果當(dāng)前網(wǎng)絡(luò)狀態(tài)不滿足數(shù)據(jù)發(fā)送條件,按照設(shè)定的時間間隔通過LoRaWAN通訊模塊繼續(xù)檢測當(dāng)前網(wǎng)絡(luò)狀態(tài)。
進一步地,所述裝置還包括:
清空模塊,用于清空所述緩存區(qū);
所述判斷模塊,還用于在設(shè)定的時長內(nèi)判斷所述緩存區(qū)中是否存在待發(fā)送的第二數(shù)據(jù);如果否,觸發(fā)休眠模塊;
休眠模塊,用于控制所述LoRaWAN通訊模塊進入休眠狀態(tài)。
進一步地,所述裝置還包括:
喚醒模塊,用于如果判斷緩存區(qū)中存在待發(fā)送的第一數(shù)據(jù),喚醒所述LoRaWAN通訊模塊。
進一步地,所述裝置還包括:
第二發(fā)送模塊,用于通過所述LoRaWAN通訊模塊發(fā)送入網(wǎng)請求。
本發(fā)明提供了一種數(shù)據(jù)發(fā)送方法及裝置,所述方法包括:判斷緩存區(qū)中是否存在待發(fā)送的第一數(shù)據(jù);如果是,通過長距離廣域網(wǎng)LoRaWAN通訊模塊檢測當(dāng)前網(wǎng)絡(luò)狀態(tài);當(dāng)當(dāng)前網(wǎng)絡(luò)狀態(tài)滿足數(shù)據(jù)發(fā)送條件時,通過所述LoRaWAN通訊模塊發(fā)送所述第一數(shù)據(jù)。由于本發(fā)明提供的數(shù)據(jù)發(fā)送方法中在數(shù)據(jù)發(fā)送的過程中,如果存在待發(fā)送的數(shù)據(jù),先將所述數(shù)據(jù)保存到緩存區(qū)中,并判斷當(dāng)前網(wǎng)絡(luò)狀態(tài)是否滿足數(shù)據(jù)發(fā)送條件,如果滿足,才發(fā)送所述數(shù)據(jù),避免了基于LoRaWAN開源協(xié)議的數(shù)據(jù)通訊的過程中,發(fā)送數(shù)據(jù)的頻段被占用,導(dǎo)致數(shù)據(jù)發(fā)送失敗或數(shù)據(jù)丟失的問題,提高了數(shù)據(jù)發(fā)送的成功率。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例1提供的一種數(shù)據(jù)發(fā)送方法的示意圖;
圖2為本發(fā)明實施例3提供的一種數(shù)據(jù)發(fā)送方法的流程圖;
圖3為本發(fā)明實施例4提供的一種數(shù)據(jù)發(fā)送方法的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實施例提供的一種數(shù)據(jù)發(fā)送裝置的結(jié)構(gòu)圖。
具體實施方式
為了提高數(shù)據(jù)發(fā)送的成功率,本發(fā)明實施例提供了一種數(shù)據(jù)發(fā)送方法及裝置。
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖本發(fā)明作進一步地詳細(xì)描述,顯然,所描述的實施例僅僅是本發(fā)明的一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
實施例1:
圖1為本發(fā)明實施例提供的一種數(shù)據(jù)發(fā)送方法的示意圖,該方法包括以下步驟:
S101:判斷緩存區(qū)中是否存在待發(fā)送的第一數(shù)據(jù);如果是,進行S102。
本發(fā)明實施例提供的一種數(shù)據(jù)發(fā)送方法應(yīng)用于智能表的主控模塊。該主控模塊可以為智能表中的CPU(Central Processing Unit,中央處理器)或MCU(Microcontroller Unit,微控制單元)等。
在主控模塊中設(shè)置有緩存區(qū),如果存在待發(fā)送的數(shù)據(jù),所述主控模塊將待發(fā)送的數(shù)據(jù)保存到緩存區(qū)中,其中所述待發(fā)的數(shù)據(jù)可以是智能表采集到的氣量等數(shù)據(jù)。
S102:通過LoRaWAN通訊模塊檢測當(dāng)前網(wǎng)絡(luò)狀態(tài)。
所述檢測當(dāng)前網(wǎng)絡(luò)狀態(tài)為檢測智能表與服務(wù)器之間的當(dāng)前網(wǎng)絡(luò)狀態(tài),具體的為檢測智能表中的LoRaWAN通訊模塊與服務(wù)器之間的當(dāng)前網(wǎng)絡(luò)狀態(tài)。
主控模塊可以向LoRaWAN通訊模塊發(fā)送進行網(wǎng)絡(luò)狀態(tài)檢測的信息,LoRaWAN通訊模塊根據(jù)該信息,按照LoRaWAN底層協(xié)議的命令格式,向服務(wù)器發(fā)送檢測當(dāng)前網(wǎng)絡(luò)狀態(tài)的請求。
主控模塊和LoRaWAN通訊模塊可以通過串口進行通訊,使得LoRaWAN通訊模塊可以接收到主控模塊發(fā)送的進行網(wǎng)絡(luò)狀態(tài)檢測的信息。
S103:當(dāng)當(dāng)前網(wǎng)絡(luò)狀態(tài)滿足數(shù)據(jù)發(fā)送條件時,通過所述LoRaWAN通訊模塊發(fā)送所述第一數(shù)據(jù)。
將檢測當(dāng)前網(wǎng)絡(luò)狀態(tài)的請求發(fā)送給服務(wù)器后,如果在設(shè)定的檢測時長內(nèi)接收到的服務(wù)器針對該檢測當(dāng)前網(wǎng)絡(luò)狀態(tài)的請求,發(fā)送的檢測響應(yīng)信息,則可以認(rèn)為選擇發(fā)送數(shù)據(jù)的頻段未被占用,當(dāng)前網(wǎng)絡(luò)狀態(tài)滿足數(shù)據(jù)發(fā)送條件,如果在設(shè)定的檢測時長內(nèi)沒有接收到服務(wù)器針對該檢測當(dāng)前網(wǎng)絡(luò)狀態(tài)的請求,發(fā)送的檢測響應(yīng)信息,則可以認(rèn)為選擇發(fā)送數(shù)據(jù)的頻段被占用,當(dāng)前網(wǎng)絡(luò)狀態(tài)不滿足數(shù)據(jù)發(fā)送條件,其中所述設(shè)定的檢測時長預(yù)先保存在主控模塊中,所述設(shè)定的檢測時長可以為1秒、5秒或10秒等。
如果能夠接收到服務(wù)器發(fā)送的檢測響應(yīng)信息,則可以認(rèn)為當(dāng)前發(fā)送數(shù)據(jù)的頻段未被占用,并且可以認(rèn)為在以后的設(shè)定時長內(nèi)該頻段也不會被占用,所以基于該頻段發(fā)送數(shù)據(jù)時,不會出現(xiàn)數(shù)據(jù)發(fā)送失敗或數(shù)據(jù)丟失的情況,因此認(rèn)為該網(wǎng)絡(luò)狀態(tài)是滿足數(shù)據(jù)發(fā)送條件的,此時向服務(wù)器能夠成功發(fā)送數(shù)據(jù),其中該設(shè)定時長為比較短的時長,例如可以是10秒、20秒等。所述當(dāng)當(dāng)前網(wǎng)絡(luò)狀態(tài)滿足數(shù)據(jù)發(fā)送條件時,通過所述LoRaWAN通訊模塊發(fā)送所述第一數(shù)據(jù)。
主控模塊可以將待發(fā)送的數(shù)據(jù)發(fā)送給LoRaWAN通訊模塊,LoRaWAN通訊模塊接收到待發(fā)送的數(shù)據(jù)后,按照LoRaWAN底層協(xié)議的命令格式,將數(shù)據(jù)發(fā)送給服務(wù)器,從而實現(xiàn)與服務(wù)器的信息交互。
主控模塊和LoRaWAN通訊模塊可以通過串口進行通訊,使得LoRaWAN通訊模塊可以接收到主控模塊發(fā)送的數(shù)據(jù)。
由于本發(fā)明提供的數(shù)據(jù)發(fā)送方法中在數(shù)據(jù)發(fā)送的過程中,如果存在待發(fā)送的數(shù)據(jù),先將所述數(shù)據(jù)保存到緩存區(qū)中,并判斷當(dāng)前網(wǎng)絡(luò)狀態(tài)是否滿足數(shù)據(jù)發(fā)送條件,如果滿足,才發(fā)送所述數(shù)據(jù),避免了可能由于選擇發(fā)送數(shù)據(jù)的頻段被占用,導(dǎo)致數(shù)據(jù)發(fā)送失敗或數(shù)據(jù)丟失的問題,提高了數(shù)據(jù)發(fā)送的成功率。
實施例2:
在上述實施例的基礎(chǔ)上,本發(fā)明實施提供的一種數(shù)據(jù)發(fā)送方法中,如果當(dāng)前網(wǎng)絡(luò)狀態(tài)不滿足數(shù)據(jù)發(fā)送條件,所述方法還包括:
按照設(shè)定的時間間隔通過LoRaWAN通訊模塊繼續(xù)檢測當(dāng)前網(wǎng)絡(luò)狀態(tài)。
為了保證緩存區(qū)中的數(shù)據(jù)能夠成功地發(fā)送給服務(wù)器,如果當(dāng)前網(wǎng)絡(luò)狀態(tài)不滿足數(shù)據(jù)發(fā)送條件,則需要繼續(xù)檢測當(dāng)前網(wǎng)絡(luò)狀態(tài),直至網(wǎng)絡(luò)狀態(tài)滿足數(shù)據(jù)發(fā)送條件。
所述設(shè)定的時間間隔預(yù)先保存在智能表的主控模塊中,其中所述設(shè)定的時間間隔可以為1秒、5秒或10秒等。
由于本發(fā)明實施例中如果當(dāng)前網(wǎng)絡(luò)狀態(tài)不滿足數(shù)據(jù)發(fā)送條件,按照設(shè)定的時間間隔檢測當(dāng)前網(wǎng)絡(luò)狀態(tài),直至檢測到的當(dāng)前網(wǎng)絡(luò)狀態(tài)滿足數(shù)據(jù)發(fā)送條件,避免了可能由于選擇發(fā)送數(shù)據(jù)的頻段被占用,導(dǎo)致數(shù)據(jù)發(fā)送失敗或數(shù)據(jù)丟失的問題,提高了數(shù)據(jù)發(fā)送的成功率。
實施例3:
為了降低功耗,節(jié)省資源,在上述各實施例的基礎(chǔ)上,本發(fā)明實施例中,所述發(fā)送所述第一數(shù)據(jù)后,所述方法還包括:
清空所述緩存區(qū);
在設(shè)定的時長內(nèi)判斷所述緩存區(qū)中是否存在待發(fā)送的第二數(shù)據(jù);
如果否,控制所述LoRaWAN通訊模塊進入休眠狀態(tài)。
當(dāng)將緩存中存在的第一數(shù)據(jù)發(fā)送成功后,清空所述緩存區(qū)。并在清空緩存區(qū)后的設(shè)定的時長內(nèi)緩存區(qū)中不存在待發(fā)送的數(shù)據(jù),則可以認(rèn)為智能表不需要向服務(wù)器發(fā)送新的數(shù)據(jù),為了降低智能表的功耗,此時主控模塊控制所述LoRaWAN通訊模塊進入休眠狀態(tài),休眠狀態(tài)下的LoRaWAN通訊模塊功耗比較小。
主控模塊控制LoRaWAN通訊模塊進入休眠狀態(tài)的過程屬于現(xiàn)有技術(shù),在本發(fā)明實施例中不做贅述。
所述設(shè)定的時長預(yù)先保存在主控模塊中,其中所述設(shè)定的時長可以是5秒、10秒或20秒等。
如果判斷緩存區(qū)中存在待發(fā)送的第一數(shù)據(jù),通過LoRaWAN通訊模塊發(fā)送所述第一數(shù)據(jù)之前,所述還包括:
喚醒所述LoRaWAN通訊模塊。
如果緩存區(qū)中存在待發(fā)送的第一數(shù)據(jù),說明智能表需要向服務(wù)器發(fā)送數(shù)據(jù),而此時LoRaWAN通訊模塊處于休眠狀態(tài),則主控模塊喚醒所述LoRaWAN通訊模塊,如果當(dāng)前網(wǎng)絡(luò)狀態(tài)滿足數(shù)據(jù)發(fā)送條件,通過LoRaWAN通訊模塊發(fā)送所述第一數(shù)據(jù)。
下面以一個具體的實施例對本發(fā)明上述實施例進行說明,圖2為本發(fā)明實施例提供的一種數(shù)據(jù)發(fā)送方法的流程圖,該方法包括:
S201:判斷緩存區(qū)中是否存在待發(fā)送的數(shù)據(jù);如果是,進行S202;如果否,進行S207。
S202:判斷LoRaWAN通訊模塊是否處于休眠狀態(tài);如果是,進行S203;如果否,進行S204。
所述判斷LoRaWAN通訊模塊是否處于休眠狀態(tài)的過程屬于現(xiàn)有技術(shù),在本發(fā)明實施例中不做贅述。
S203:喚醒所述LoRaWAN通訊模塊。
如果所述LoRaWAN通訊模塊處于休眠狀態(tài),則需要喚醒所述LoRaWAN通訊模塊,才能進行后續(xù)的操作。
S204:判斷當(dāng)前網(wǎng)絡(luò)狀態(tài)是否滿足數(shù)據(jù)發(fā)送條件;如果是,進行S205,如果否,繼續(xù)執(zhí)行S204。
S205:通過所述LoRaWAN通訊模塊發(fā)送所述數(shù)據(jù)。
S206:清空緩存區(qū)。
S207:控制LoRaWAN通訊模塊進入休眠狀態(tài);返回S201。
LoRaWAN通訊模塊在休眠狀態(tài)下,功耗較低。為了減低智能表的功耗,如果緩存區(qū)中不存在待發(fā)送的數(shù)據(jù),就控制LoRaWAN通訊模塊進行休眠狀態(tài),當(dāng)然,為了避免在控制LoRaWAN通訊模塊進入休眠狀態(tài)和喚醒LoRaWAN通訊模塊之間來回切換,降低LoRaWAN通訊模塊的使用壽命,在清空緩存區(qū)后的設(shè)定的時長內(nèi)緩存區(qū)中不存在待發(fā)送的數(shù)據(jù),則可以認(rèn)為智能表不需要向服務(wù)器發(fā)送新的數(shù)據(jù),此時再控制LoRaWAN通訊模塊進入休眠狀態(tài)。所述控制LoRaWAN通訊模塊進入休眠狀態(tài)的過程屬于現(xiàn)有技術(shù),在本發(fā)明實施例中不做贅述。
由于本發(fā)明實施例中在發(fā)送數(shù)據(jù)成功后的設(shè)定的時長內(nèi),如果緩存區(qū)中不存在待發(fā)送的數(shù)據(jù),則主控模塊,減低功耗,節(jié)省資源。
實施例4:
在上述各實施例的基礎(chǔ)上,在本發(fā)明實施例中,所述判斷緩存區(qū)中是否存在待發(fā)送的第一數(shù)據(jù)之前,所述方法還包括:
通過所述LoRaWAN通訊模塊發(fā)送入網(wǎng)請求。
如果智能表的主控模塊收到服務(wù)器針對入網(wǎng)請求,發(fā)送的入網(wǎng)確認(rèn)信息,則智能表入網(wǎng)成功,才能向服務(wù)器發(fā)送數(shù)據(jù)。
主控模塊可以是向LoRaWAN通訊模塊發(fā)送入網(wǎng)請求的通知信息,LoRaWAN通訊模塊接收到通知信息后,按照LoRaWAN底層協(xié)議的命令格式,將入網(wǎng)請求并發(fā)送給服務(wù)器,從而實現(xiàn)與服務(wù)器的信息交互。
主控模塊和LoRaWAN通訊模塊可以通過串口進行通訊,使得LoRaWAN通訊模塊可以接收到主控模塊發(fā)送的入網(wǎng)請求的通知信息。
所述智能表的主控模塊通過所述LoRaWAN通訊模塊發(fā)送入網(wǎng)請求后,啟動定時器,判斷所述主控模塊在定時器的定時時長內(nèi)是否接收到服務(wù)器發(fā)送的入網(wǎng)連接成功的確認(rèn)信息,如果在定時器的定時時長內(nèi)接收到服務(wù)器發(fā)送的入網(wǎng)連接成功的確認(rèn)信息,則確定入網(wǎng)連接成功。
如果在定時器的定時時長內(nèi)未接收到服務(wù)器發(fā)送的入網(wǎng)連接成功的確認(rèn)信息,則確定入網(wǎng)失敗,判斷入網(wǎng)失敗的次數(shù)是否達(dá)到設(shè)定的次數(shù)閾值,如果否,繼續(xù)通過所述LoRaWAN通訊模塊發(fā)送入網(wǎng)請求,如果是,確定入網(wǎng)失敗。
下面以一個具體的實施例對本發(fā)明上述實施例進行說明,圖3為本發(fā)明實施例提供的一種數(shù)據(jù)發(fā)送方法的結(jié)構(gòu)示意圖,如圖3所示,智能表中包括有主控模塊、LoRaWAN通訊模塊、液晶顯示模塊、閥門控制模塊、采集模塊和電源模塊,所述主控模塊與所述LoRaWAN通訊模塊之間通過串口進行通訊,如果所述主控模塊的緩存區(qū)中存在待發(fā)送的數(shù)據(jù),主控模塊將網(wǎng)絡(luò)狀態(tài)檢測的信息通過串口發(fā)送給LoRaWAN通訊模塊,通過LoRaWAN通訊模塊向服務(wù)器發(fā)送檢測當(dāng)前網(wǎng)絡(luò)狀態(tài)的請求,如果接收到服務(wù)器針對該檢測當(dāng)前網(wǎng)絡(luò)狀態(tài)的請求,發(fā)送的檢測響應(yīng)信息,則認(rèn)為當(dāng)前網(wǎng)絡(luò)狀態(tài)滿足數(shù)據(jù)發(fā)送條件,則將待發(fā)送的數(shù)據(jù)發(fā)送給LoRaWAN通訊模塊,再由LoRaWAN通訊模塊將待發(fā)送的數(shù)據(jù)發(fā)送給服務(wù)器,從而完成數(shù)據(jù)發(fā)送,其中所述主控模塊與所述LoRaWAN通訊模塊之間通過串口進行通訊還包括,主控模塊控制所述LoRaWAN通訊模塊進入休眠狀態(tài)和喚醒所述LoRaWAN通訊模塊。
此外,所述主控模塊通過調(diào)用液晶顯示模塊、閥門控制模塊、采集模塊和電源模塊可以分別完成對液晶顯示、閥門打開或關(guān)閉、計量采集和開機或關(guān)機等的控制。
由于本發(fā)明實施例中發(fā)送入網(wǎng)請求,如果接收到入網(wǎng)確認(rèn)信息,則智能表入網(wǎng)成功,提高向服務(wù)器發(fā)送數(shù)據(jù)的成功率。
實施例5:
主控模塊在調(diào)用LoRaWAN通訊模塊時,需要在本地保存的命令符集合中確定要發(fā)送的請求對應(yīng)的命令符,從而通過LoRaWAN通訊模塊與服務(wù)進行信息交互,由于不同廠家生產(chǎn)的LoRaWAN通訊模塊的種類不同,主控模塊與LoRaWAN通訊模塊進行信息交互的命令符集合也不同。針對不同類型的LoRaWAN通訊模塊,主控模塊中保存的命令符集合不同,為了保證與服務(wù)器的數(shù)據(jù)正常交互,在本發(fā)明實施例中在進行網(wǎng)絡(luò)狀態(tài)檢測之前,所述方法還包括:
識別LoRaWAN通訊模塊的類型;
針對不同類型的LoRaWAN通訊模塊,主控模塊中保存的命令符集合不同,主控模塊根據(jù)識別到的LoRaWAN通訊模塊的類型,和自身保存的該類型的LoRaWAN通訊模塊對應(yīng)的命令符集合,確定對應(yīng)的目標(biāo)命令符,從而使得LoRaWAN通訊模塊根據(jù)目標(biāo)命令符,與服務(wù)器進行信息交互。在本發(fā)明實施例中LoRaWAN通訊模塊基于LoRaWAN協(xié)議與服務(wù)器進行信息交互。
所述檢測當(dāng)前網(wǎng)絡(luò)狀態(tài)的過程為:主控模塊根據(jù)LoRaWAN通訊模塊的類型,在自身保存的該類型的LoRaWAN通訊模塊對應(yīng)的命令符集合中,確定檢測當(dāng)前網(wǎng)絡(luò)狀態(tài)對應(yīng)的第一目標(biāo)命令符,將所述第一目標(biāo)命令符發(fā)送給LoRaWAN通訊模塊,LoRaWAN通訊模塊根據(jù)接收到的檢測當(dāng)前網(wǎng)絡(luò)狀態(tài)對應(yīng)的第一目標(biāo)命令符,按照LoRaWAN底層協(xié)議的命令格式,發(fā)送給服務(wù)器,從而檢測網(wǎng)絡(luò)狀態(tài)。
同理,所述發(fā)送數(shù)據(jù)的過程為:主控模塊根據(jù)LoRaWAN通訊模塊的類型,在自身保存的該類型的LoRaWAN通訊模塊對應(yīng)的命令符集合中,確定發(fā)送數(shù)據(jù)對應(yīng)的第二目標(biāo)命令符,將所述第二目標(biāo)命令符和待發(fā)送的數(shù)據(jù)發(fā)送給LoRaWAN通訊模塊,LoRaWAN通訊模塊根據(jù)接收到的發(fā)送數(shù)據(jù)對應(yīng)的所述第二目標(biāo)命令符和所述數(shù)據(jù),按照LoRaWAN底層協(xié)議的命令格式,發(fā)送給服務(wù)器。
同理,所述發(fā)送入網(wǎng)請求的過程為:主控模塊根據(jù)LoRaWAN通訊模塊的類型,在自身保存的該類型的LoRaWAN通訊模塊對應(yīng)的命令符集合中,確定發(fā)送入網(wǎng)請求對應(yīng)的第三目標(biāo)命令符,將所述第三目標(biāo)命令符發(fā)送給LoRaWAN通訊模塊,LoRaWAN通訊模塊根據(jù)接收到的發(fā)送入網(wǎng)請求對應(yīng)的所述第三目標(biāo)命令符,按照LoRaWAN底層協(xié)議的命令格式發(fā)送給服務(wù)器。
由于本發(fā)明提供的數(shù)據(jù)發(fā)送方法中在數(shù)據(jù)發(fā)送的過程中,如果存在待發(fā)送的數(shù)據(jù),先將所述數(shù)據(jù)保存到緩存區(qū)中,并判斷當(dāng)前網(wǎng)絡(luò)狀態(tài)是否滿足數(shù)據(jù)發(fā)送條件,如果滿足,才發(fā)送所述數(shù)據(jù),避免了可能由于選擇發(fā)送數(shù)據(jù)的頻段被占用,導(dǎo)致數(shù)據(jù)發(fā)送失敗或數(shù)據(jù)丟失的問題,提高了數(shù)據(jù)發(fā)送的成功率。
實施例6:
在上述各實施例的基礎(chǔ)上,在本發(fā)明實施例中,所述方法還包括:
根據(jù)自身保存的統(tǒng)一命令符集合,檢測當(dāng)前網(wǎng)絡(luò)狀態(tài)。
針對不同類型的LoRaWAN通訊模塊,可以設(shè)置統(tǒng)一命令符集合,在本發(fā)明實施例中LoRaWAN通訊模塊基于LoRaWAN協(xié)議與服務(wù)器進行信息交互。
如果自身保存有統(tǒng)一命令符集合,則檢測當(dāng)前網(wǎng)絡(luò)狀態(tài)的過程為:主控模塊在自身保存的統(tǒng)一命令符集合中,確定檢測當(dāng)前網(wǎng)絡(luò)狀態(tài)對應(yīng)的第一目標(biāo)統(tǒng)一命令符,并將第一目標(biāo)統(tǒng)一命令符發(fā)送給LoRaWAN通訊模塊,LoRaWAN通訊模塊根據(jù)接收到的檢測當(dāng)前網(wǎng)絡(luò)狀態(tài)對應(yīng)的第一目標(biāo)統(tǒng)一命令符,按照LoRaWAN底層協(xié)議的命令格式,發(fā)送給服務(wù)器,從而檢測網(wǎng)絡(luò)狀態(tài)。
同理,發(fā)送數(shù)據(jù)的過程為:主控模塊在自身保存的統(tǒng)一命令符集合中,確定發(fā)送數(shù)據(jù)對應(yīng)的第二目標(biāo)統(tǒng)一命令符,并將所述第二目標(biāo)統(tǒng)一命令符和待發(fā)送的數(shù)據(jù)發(fā)送給LoRaWAN通訊模塊,LoRaWAN通訊模塊根據(jù)接收到的發(fā)送數(shù)據(jù)對應(yīng)的第二目標(biāo)統(tǒng)一命令符和所述數(shù)據(jù),按照LoRaWAN底層協(xié)議的命令格式,發(fā)送給服務(wù)器。
同理,發(fā)送入網(wǎng)請求的過程為:主控模塊在自身保存的統(tǒng)一命令符集合中,確定入網(wǎng)請求對應(yīng)的第三目標(biāo)統(tǒng)一命令符,并將第三目標(biāo)統(tǒng)一命令符發(fā)送給LoRaWAN通訊模塊,LoRaWAN通訊模塊根據(jù)接收到的入網(wǎng)請求對應(yīng)的第三目標(biāo)統(tǒng)一命令符,按照LoRaWAN底層協(xié)議的命令格式,發(fā)送給服務(wù)器。
由于本發(fā)明提供的數(shù)據(jù)發(fā)送方法中在數(shù)據(jù)發(fā)送的過程中,如果存在待發(fā)送的數(shù)據(jù),先將所述數(shù)據(jù)保存到緩存區(qū)中,并判斷當(dāng)前網(wǎng)絡(luò)狀態(tài)是否滿足數(shù)據(jù)發(fā)送條件,如果滿足,才發(fā)送所述數(shù)據(jù),避免了可能由于選擇發(fā)送數(shù)據(jù)的頻段被占用,導(dǎo)致數(shù)據(jù)發(fā)送失敗或數(shù)據(jù)丟失的問題,提高了數(shù)據(jù)發(fā)送的成功率。
本發(fā)明實施例提供了一種數(shù)據(jù)發(fā)送裝置,圖4為本發(fā)明實施例提供的一種數(shù)據(jù)發(fā)送裝置的結(jié)構(gòu)圖,所述裝置包括:
判斷模塊41,用于判斷緩存區(qū)中是否存在待發(fā)送的第一數(shù)據(jù);如果是,觸發(fā)檢測模塊42;
檢測模塊42,用于通過長距離廣域網(wǎng)LoRaWAN通訊模塊檢測當(dāng)前網(wǎng)絡(luò)狀態(tài);
第一發(fā)送模塊43,用于當(dāng)當(dāng)前網(wǎng)絡(luò)狀態(tài)滿足數(shù)據(jù)發(fā)送條件時,通過所述LoRaWAN通訊模塊發(fā)送所述第一數(shù)據(jù)。
所述檢測模塊42,具體用于如果當(dāng)前網(wǎng)絡(luò)狀態(tài)不滿足數(shù)據(jù)發(fā)送條件,按照設(shè)定的時間間隔通過長距離廣域網(wǎng)LoRaWAN通訊模塊繼續(xù)檢測當(dāng)前網(wǎng)絡(luò)狀態(tài)。
所述裝置還包括:
清空模塊44,用于清空所述緩存區(qū);
所述判斷模塊42,還用于在設(shè)定的時長內(nèi)判斷所述緩存區(qū)中是否存在待發(fā)送的第二數(shù)據(jù);如果否,觸發(fā)休眠模塊45;
休眠模塊45,用于控制所述LoRaWAN通訊模塊進入休眠狀態(tài)。
所述裝置還包括:
喚醒模塊46,用于如果判斷緩存區(qū)中存在待發(fā)送的第一數(shù)據(jù),喚醒所述LoRaWAN通訊模塊。
所述裝置還包括:
第二發(fā)送模塊47,用于通過所述LoRaWAN通訊模塊發(fā)送入網(wǎng)請求。
本發(fā)明提供了一種數(shù)據(jù)發(fā)送方法及裝置,所述方法包括:判斷緩存區(qū)中是否存在待發(fā)送的第一數(shù)據(jù);如果是,通過長距離廣域網(wǎng)LoRaWAN通訊模塊檢測當(dāng)前網(wǎng)絡(luò)狀態(tài);當(dāng)當(dāng)前網(wǎng)絡(luò)狀態(tài)滿足數(shù)據(jù)發(fā)送條件時,通過所述LoRaWAN通訊模塊發(fā)送所述第一數(shù)據(jù)。由于本發(fā)明提供的數(shù)據(jù)發(fā)送方法中在數(shù)據(jù)發(fā)送的過程中,如果存在待發(fā)送的數(shù)據(jù),先將所述數(shù)據(jù)保存到緩存區(qū)中,并判斷當(dāng)前網(wǎng)絡(luò)狀態(tài)是否滿足數(shù)據(jù)發(fā)送條件,如果滿足,才發(fā)送所述數(shù)據(jù),避免了可能由于選擇發(fā)送數(shù)據(jù)的頻段被占用,導(dǎo)致數(shù)據(jù)發(fā)送失敗或數(shù)據(jù)丟失的問題,提高了數(shù)據(jù)發(fā)送的成功率。
對于系統(tǒng)/裝置實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本申請是參照根據(jù)本申請實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本申請的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。