本發(fā)明涉及通信的技術(shù)領(lǐng)域,特別是涉及一種基于低功耗藍牙協(xié)議的通信方法和一種基于低功耗藍牙協(xié)議的通信裝置。
背景技術(shù):
隨著通信科技的發(fā)展,諸如手機、手環(huán)、手表等智能終端在人們的工作、學(xué)習(xí)、日常交流等各方面的使用率也越來越高。
隨著可穿戴設(shè)備的逐步興起,如手環(huán)、手表等,這些可穿戴設(shè)備一般通過藍牙協(xié)議與用戶的其他智能終端(如手機)相連接,進行通知消息的同步以及數(shù)據(jù)的上報。
藍牙協(xié)議又分為傳統(tǒng)藍牙協(xié)議(又稱經(jīng)典藍牙,Classic Bluetooth)和低功耗藍牙協(xié)議(Bluetooth Low Energy,BLE)兩種。
其中,低功耗藍牙協(xié)議以其低耗電水平而廣泛普及,在低功耗藍牙協(xié)議下,一側(cè)終端如果接收或生成消息,會實時將該消息同步或上報到另一側(cè)終端,如果另一側(cè)終端處于休眠狀態(tài),頻繁地同步或上報消息會導(dǎo)致另一側(cè)終端頻繁地喚醒,導(dǎo)致另一側(cè)終端的資源消耗增加。
例如,手表與手機通過低功耗藍牙協(xié)議相連,存在兩種情況:
一種情況是,手機收到通知或來電等消息時,將消息同步到手表。
另一種情況是,手表產(chǎn)生的運動數(shù)據(jù)、位置信息等消息,上傳到手機端。
若手表處于休眠狀態(tài),手機中的某個應(yīng)用每隔10秒有一個新通知,則手機就會每隔10秒通過低功耗藍牙協(xié)議將新通知同步到手表中,即每隔10秒喚醒手表一次。
如果手機處于休眠狀態(tài),手表每1秒產(chǎn)生一次運動數(shù)據(jù)、位置信息,則手表就會每隔1秒通過低功耗藍牙協(xié)議將運動數(shù)據(jù)、位置信息上報到手機,即每隔1秒喚醒手機一次。
技術(shù)實現(xiàn)要素:
鑒于上述問題,為了解決上述在低功耗藍牙協(xié)議下頻繁喚醒終端的問題,本發(fā)明實施例提出了一種基于低功耗藍牙協(xié)議的通信方法和相應(yīng)的一種基于低功耗藍牙協(xié)議的通信裝置。
依據(jù)本發(fā)明的一個方面,提供了一種基于低功耗藍牙協(xié)議的通信方法,包括:
第一終端作為中心設(shè)備,在接收到消息時,檢測作為外圍設(shè)備的第二終端的狀態(tài)標識;
第一終端在檢測到所述狀態(tài)標識為休眠標識時,識別所述消息的類型;第一終端根據(jù)所述類型對應(yīng)的同步頻率、將所述消息通過低功耗藍牙協(xié)議發(fā)送至第二終端。
可選地,所述識別所述消息的類型的步驟包括:
確定接收到所述消息的應(yīng)用;
查詢所述應(yīng)用對應(yīng)的分類標簽;
按照所述分類標簽確定所述消息的類型。
可選地,所述類型包括第一類型和第二類型;
所述第一終端根據(jù)所述類型對應(yīng)的同步頻率、將所述消息通過低功耗藍牙協(xié)議發(fā)送至第二終端的步驟包括:
第一終端在確定所述消息屬于第一類型時,將所述消息緩存一段時間;
第一終端在超過所述時間時,將所述時間段內(nèi)屬于所述第一類型的消息通過低功耗藍牙協(xié)議向發(fā)送至第二終端;
第一終端在確定所述消息屬于第二類型時,將屬于所述第二類型的消息通過低功耗藍牙協(xié)議發(fā)送至第二終端。
可選地,所述第一終端在確定所述消息屬于第一類型時,將所述消息緩存一段時間的步驟包括:
第一終端在確定所述消息屬于第一類型時,將屬于所述第一類型的消息存儲至緩存隊列中;
第一終端啟動定時器,以計時一段時間。
可選地,所述第一終端在超過所述時間時,將所述時間段內(nèi)屬于所述第一類型的消息通過低功耗藍牙協(xié)議向發(fā)送至第二終端的步驟包括:
第一終端在所述定時器計時結(jié)束時,將所述緩存隊列中屬于所述第一類型的消息通過低功耗藍牙協(xié)議發(fā)送至第二終端;
第一終端取消所述定時器。
可選地,所述第一終端在確定所述消息屬于第二類型時,通過低功耗藍牙協(xié)議將所述消息發(fā)送至第二終端的步驟包括:
第一終端在確定所述消息屬于第二類型時,判斷是否緩存有屬于所述第一類型的消息;
若是,則第一終端將屬于所述第一類型的消息、屬于所述第二類型的消息通過低功耗藍牙協(xié)議一同發(fā)送至第二終端。
可選地,所述第一終端在確定所述消息屬于第二類型時,判斷是否存儲有屬于所述第一類型的消息的步驟包括:
第一終端在確定所述消息屬于第二類型時,判斷是否啟動定時器;
若是,則確定緩存有屬于所述第一類型的消息。
可選地,所述第一終端將屬于所述第一類型的消息、屬于所述第二類型的消息通過低功耗藍牙協(xié)議一同發(fā)送至第二終端的步驟包括:
第一終端將緩存隊列中屬于所述第一類型的消息、屬于所述第二類型的消息通過低功耗藍牙協(xié)議一同發(fā)送至作為外圍設(shè)備的第二終端;
第一終端取消所述定時器。
可選地,還包括:
第一終端通過低功耗藍牙協(xié)議接收第二終端在進入休眠狀態(tài)時發(fā)送的休眠標識;
第一終端將所述休眠標識記錄為第二終端的狀態(tài)標識;
和/或,
第一終端通過低功耗藍牙協(xié)議接收第二終端在進入活動狀態(tài)時發(fā)送的活動標識;
第一終端將所述活動標識記錄為第二終端的狀態(tài)標識。
可選地,還包括:
第一終端在所述狀態(tài)標識為活動標識時,將所述消息通過低功耗藍牙協(xié)議發(fā)送至第二終端。
根據(jù)本發(fā)明的另一方面,提供了一種基于低功耗藍牙協(xié)議的通信方法,包括:
第二終端作為外圍設(shè)備,在生成消息時,檢測作為中心設(shè)備的第一終端的狀態(tài)標識;
第二終端在檢測到所述狀態(tài)標識為休眠標識時,將所述消息緩存一段時間;
第二終端在超過所述時間時,將所述消息通過低功耗藍牙協(xié)議發(fā)送至第一終端。
可選地,所述將所述消息緩存一段時間的步驟包括:
將所述消息存儲至緩存隊列中;
啟動定時器,以計時一段時間。
可選地,所述第二終端在超過所述時間時,將所述消息通過低功耗藍牙協(xié)議發(fā)送至第一終端的步驟包括:
第二終端在所述定時器計時結(jié)束時,將所述緩存隊列中的消息通過低功耗藍牙協(xié)議發(fā)送至作為中心設(shè)備的第一終端;
第二終端取消所述定時器。
可選地,還包括:
第二終端通過低功耗藍牙協(xié)議接收第一終端在進入休眠狀態(tài)時發(fā)送的休眠標識;
第二終端將所述休眠標識記錄為第一終端的狀態(tài)標識;
和/或,
第二終端通過低功耗藍牙協(xié)議接收第一終端在進入活動狀態(tài)時發(fā)送的活動標識;
第二終端將所述活動標識記錄為第一終端的狀態(tài)標識。
可選地,還包括:
第二終端在所述狀態(tài)標識為活動標識時,將所述消息通過低功耗藍牙協(xié)議發(fā)送至第一終端。
根據(jù)本發(fā)明的另一方面,提供了一種基于低功耗藍牙協(xié)議的通信裝置,應(yīng)用在第一終端中,所述裝置包括:
外圍狀態(tài)檢測模塊,用于作為中心設(shè)備,在接收到消息時,檢測作為外圍設(shè)備的第二終端的狀態(tài)標識;
消息類型識別模塊,用于在檢測到所述狀態(tài)標識為休眠標識時,識別所述消息的類型;
外圍消息休眠同步模塊,用于根據(jù)所述類型對應(yīng)的同步頻率、將所述消息通過低功耗藍牙協(xié)議發(fā)送至第二終端。
可選地,所述消息類型識別模塊包括:
應(yīng)用確定子模塊,用于確定接收到所述消息的應(yīng)用;
分類標簽查詢子模塊,用于查詢所述應(yīng)用對應(yīng)的分類標簽;
消息類型確定子模塊,用于按照所述分類標簽確定所述消息的類型。
可選地,所述類型包括第一類型和第二類型;所述外圍消息休眠同步模塊包括:
中心緩存子模塊,用于在確定所述消息屬于第一類型時,將所述消息緩存一段時間;
中心間隔發(fā)送子模塊,用于在超過所述時間時,將所述時間段內(nèi)屬于所述第一類型的消息通過低功耗藍牙協(xié)議向發(fā)送至第二終端;
中心實時發(fā)送子模塊,用于在確定所述消息屬于第二類型時,將屬于所述第二類型的消息通過低功耗藍牙協(xié)議發(fā)送至第二終端。
可選地,所述中心緩存子模塊包括:
中心緩存隊列存儲單元,用于第一終端在確定所述消息屬于第一類型時,將屬于所述第一類型的消息存儲至緩存隊列中;
中心定時器啟動單元,用于啟動定時器,以計時一段時間。
可選地,所述中心間隔發(fā)送子模塊包括:
中心計時發(fā)送單元,用于在所述定時器計時結(jié)束時,將所述緩存隊列中屬于所述第一類型的消息通過低功耗藍牙協(xié)議發(fā)送至第二終端;
第一中心定時器取消單元,用于取消所述定時器。
可選地,所述中心實時發(fā)送子模塊包括:
緩存消息判斷單元,用于在確定所述消息屬于第二類型時,判斷是否緩存有屬于所述第一類型的消息;若是,則調(diào)用中心協(xié)同發(fā)送單元;
中心協(xié)同發(fā)送單元,用于將屬于所述第一類型的消息、屬于所述第二類型的消息通過低功耗藍牙協(xié)議一同發(fā)送至第二終端。
可選地,所述緩存消息判斷單元包括:
啟動器啟動判斷子單元,用于第一終端在確定所述消息屬于第二類型時,判斷是否啟動定時器;若是,則調(diào)用消息緩存確定子單元;
消息緩存確定子單元,用于確定緩存有屬于所述第一類型的消息。
可選地,所述中心協(xié)同發(fā)送單元包括:
中心雙類型發(fā)送子單元,用于將緩存隊列中屬于所述第一類型的消息、屬于所述第二類型的消息通過低功耗藍牙協(xié)議一同發(fā)送至第二終端;
第二中心定時器取消子單元,用于取消所述定時器。
可選地,還包括:
外圍休眠標識接收模塊,用于通過低功耗藍牙協(xié)議接收第二終端在進入休眠狀態(tài)時發(fā)送的休眠標識;
外圍休眠狀態(tài)記錄模塊,用于將所述休眠標識記錄為第二終端的狀態(tài)標識;
和/或,
外圍活動標識接收模塊,用于通過低功耗藍牙協(xié)議接收第二終端在進入活動狀態(tài)時發(fā)送的活動標識;
外圍活動狀態(tài)記錄模塊,用于將所述活動標識記錄為第二終端的狀態(tài)標識。
可選地,還包括:
外圍消息活動同步模塊,用于在所述狀態(tài)標識為活動標識時,將所述消息通過低功耗藍牙協(xié)議發(fā)送至第二終端。
根據(jù)本發(fā)明的另一方面,提供了一種基于低功耗藍牙協(xié)議的通信裝置,應(yīng)用在第二終端中,所述裝置包括:
中心狀態(tài)檢測模塊,用于作為外圍設(shè)備,在生成消息時,檢測作為中心設(shè)備的第一終端的狀態(tài)標識;
外圍緩存模塊,用于在檢測到所述狀態(tài)標識為休眠標識時,將所述消息緩存一段時間;
中心消息休眠上報模塊,用于在超過所述時間時,將所述消息通過低功耗藍牙協(xié)議發(fā)送至第一終端。
可選地,所述外圍緩存模塊包括:
外圍緩存隊列存儲子模塊,用于在所述狀態(tài)標識為休眠標識時,將所述消息存儲至緩存隊列中;
外圍定時器啟動子模塊,用于啟動定時器,以計時一段時間。
可選地,所述中心消息休眠上報模塊包括:
外圍計時發(fā)送子模塊,用于在所述定時器計時結(jié)束時,將所述緩存隊列中的消息通過低功耗藍牙協(xié)議發(fā)送至第一終端;
外圍定時器取消子模塊,用于取消所述定時器。
可選地,還包括:
中心休眠標識接收模塊,用于通過低功耗藍牙協(xié)議接收第一終端在進入休眠狀態(tài)時發(fā)送的休眠標識;
中心休眠狀態(tài)記錄模塊,用于將所述休眠標識記錄為第一終端的狀態(tài)標識;
和/或,
中心活動標識接收模塊,用于通過低功耗藍牙協(xié)議接收第一終端在進入活動狀態(tài)時發(fā)送的活動標識;
中心活動狀態(tài)記錄模塊,用于將所述活動標識記錄為第一終端的狀態(tài)標識。
可選地,還包括:
中心消息活動上報模塊,用于在所述狀態(tài)標識為活動標識時,將所述消息通過低功耗藍牙協(xié)議發(fā)送至第一終端。
本發(fā)明實施例包括以下優(yōu)點:
本發(fā)明實施例應(yīng)用低功耗藍牙協(xié)議的通信,第一終端為中心設(shè)備、第二終端為外圍設(shè)備,第一終端在接收到消息時,檢測第二終端的狀態(tài)標識,如果第二終端的狀態(tài)標識為休眠標識時,則第一終端識別消息的類型,根據(jù)該類型對應(yīng)的同步頻率、將該消息通過低功耗藍牙協(xié)議發(fā)送至第二終端,基于消息的類型靈活設(shè)置同步頻率,避免了每次接收到消息就立即與處于休眠狀態(tài)的第二終端進行同步,減少了同步的頻次,從而減少了喚醒第二終端的頻次,降低了第二終端的資源消耗。
本發(fā)明實施例應(yīng)用低功耗藍牙協(xié)議的通信,第一終端為中心設(shè)備、第二終端為外圍設(shè)備,第二終端在生成消息時,檢測第一終端的狀態(tài)標識,如果第一終端的狀態(tài)標識為休眠標識,則第二終端將消息緩存一段時間,在超過該時間時,將該消息通過低功耗藍牙協(xié)議發(fā)送至第一終端,通過緩存消息,避免了每次生成消息就立即上報至處于休眠狀態(tài)的第一終端,減少了同步的頻次,從而減少了喚醒第一終端的頻次,降低了第一終端的資源消耗。
附圖說明
圖1是本發(fā)明的一種基于低功耗藍牙協(xié)議的通信方法實施例的步驟流程圖;
圖2是本發(fā)明的另一種基于低功耗藍牙協(xié)議的通信方法實施例的步驟流程圖;
圖3是本發(fā)明的另一種基于低功耗藍牙協(xié)議的通信方法實施例的步驟流程圖;
圖4是本發(fā)明的另一種基于低功耗藍牙協(xié)議的通信方法實施例的步驟流程圖;
圖5是本發(fā)明的一種基于低功耗藍牙協(xié)議的通信裝置實施例的結(jié)構(gòu)框圖;
圖6是本發(fā)明的另一種基于低功耗藍牙協(xié)議的通信裝置實施例的結(jié)構(gòu)框圖。
具體實施方式
為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式對本發(fā)明作進一步詳細的說明。
在實際應(yīng)用中,智能設(shè)備廣泛應(yīng)用藍牙4.0標準,藍牙4.0標準包含兩個藍牙標準,準確的說,是一個雙模的標準,它包含傳統(tǒng)藍牙部分(也有稱之為經(jīng)典藍牙)和低功耗藍牙部分BLE。
這兩個部分適用于不同的應(yīng)用或者應(yīng)用條件,傳統(tǒng)藍牙是在之前的1.0.1.2,2.0+EDR,2.1+EDR,3.0+EDR等基礎(chǔ)上發(fā)展和完善起來的,低功耗藍牙是在Wibree標準上發(fā)展起來的。
傳統(tǒng)藍牙可以用于數(shù)據(jù)量比較大的傳輸,如語音,音樂,較高數(shù)據(jù)量傳輸?shù)取?/p>
低功耗藍牙可以應(yīng)用于實時性要求比較高,但是數(shù)據(jù)速率比較低的產(chǎn)品,如遙控類的鼠標、鍵盤、遙控鼠標(Air Mouse),傳感設(shè)備的數(shù)據(jù)發(fā)送的心跳帶、血壓計、溫度傳感器等。
在BLE中,支持的角色有:
廣播者(BroadCaster)——廣告發(fā)送者,不是可連接的設(shè)備
觀察者(Observer)——掃描廣告,不能夠啟動連接
外圍設(shè)備(Peripheral)——廣告發(fā)送者,是可連接的設(shè)備,在單一鏈路層連接時作為一個從機
中心設(shè)備(Center)——掃描廣告啟動連接,在單一或者多鏈路層連接時作為主機,支持三個同時連接
廣播者(BroadCaster)跟觀察者Observer)配對使用不能建立連接。一個應(yīng)用的示例為,溫度傳感器與溫度顯示器。
中心設(shè)備(Center)跟外圍設(shè)備(Peripheral)可以進行連接,發(fā)起配對(Pairing),鏈接建立成功后,雙發(fā)即可進行數(shù)據(jù)通信。一個應(yīng)用的示例為,手表與手機、手環(huán)與手機。
BLE連接的過程如下:
1、外圍設(shè)備(Peripheral)發(fā)送一個廣告讓任何中心設(shè)備(Center)知道外圍設(shè)備(Peripheral)是一個可連接的設(shè)備。
廣告的內(nèi)容可以包含設(shè)備地址,還可以包含一些額外的額數(shù)據(jù),比如設(shè)備名稱、服務(wù)ID等。
2、中心設(shè)備(Center)接收到廣告后,發(fā)送一個搜索請求給外圍設(shè)備(Peripheral),外圍設(shè)備(Peripheral)返回掃描響應(yīng)給中央設(shè)備(Center),這樣中央設(shè)備(Center)就知道這是一個可連接的設(shè)備。
3、中央設(shè)備(Center)可以發(fā)送一個建立連接的請求給外圍設(shè)備(Peripheral)。進行配對連接,必要時進行綁定操作(連接可以被從機或者主機任一方終止)。
配對(Pairing):建立連接,配對完成后可以進行數(shù)據(jù)通信。
綁定(Banding):將配對信息記錄下來,如設(shè)備地址,這樣下次連接時就不需要再次配對的過程(快速連接)。
BLE用3個信道做廣播信道,允許毫秒級快速建立連接,效率遠高于傳統(tǒng)藍牙的32個信道方式。
傳統(tǒng)藍牙有79個數(shù)據(jù)信道,頻道間隔是1MHz,而BLE有40個數(shù)據(jù)信道,頻道間隔是2MHz。
傳統(tǒng)藍牙的工作峰值電流一般是35mA,睡眠狀態(tài)電流是0.01mA,而BLE的工作峰值電流是小于15mA,睡眠狀態(tài)電流是0.004mA。
在介紹BLE的通信方式之前,先介紹BLE中的技術(shù)規(guī)范:
1、Profile
Profile可以理解為一種規(guī)范,一個標準的通信協(xié)議,Profile存在于外圍設(shè)備(Peripheral)中,藍牙組織規(guī)定了一系列的標準Profile,例如,HID OVERGATT、防丟器、心率計等,每個Profile中會包含多個Service,每個Service代表外圍設(shè)備(Peripheral)的一種能力。
2、Service
Service可以理解為一個服務(wù),在外圍設(shè)備(Peripheral)中,通常有多個Service,例如,電量信息服務(wù)、系統(tǒng)信息服務(wù)等,每個Service里面又包含多個Characteristic特征值。每個Characteristic特征值,是BLE通信的主體,比如,當前的電量是80%,通過將電量的Characteristic特征值存儲在外圍設(shè)備(Peripheral)的Profile里,這樣中心設(shè)備(Center)就可以通過這個Characteristic特征值來讀取80%這個數(shù)據(jù)。
3、Characteristic
Characteristic特征值可以理解為一個標簽,通過這個標簽可以獲取或者寫入想要的內(nèi)容,中心設(shè)備(Center)與外圍設(shè)備(Peripheral)的通信通過Characteristic特征值來實現(xiàn)。
4、UUID
UUID是統(tǒng)一識別碼,Service和Characteristic都需要一個唯一的UUID來標識。
在BLE協(xié)議棧中定義了GAP(Generic Access Profile)和GATT(Generic Attribute)兩個基本配置文件。
協(xié)議棧中的GAP層負責(zé)設(shè)備訪問模式和進程,包括設(shè)備發(fā)現(xiàn),建立連接,終止連接,初始化安全特征和設(shè)備配置。
協(xié)議棧中的GATT層用于已連接的設(shè)備之間的數(shù)據(jù)通信。
在BLE協(xié)議棧中的數(shù)據(jù)通信分為兩個方面,一個是GATT的client(客戶端,從服務(wù)器讀/寫數(shù)據(jù)的設(shè)備)主動向server(服務(wù)器,包含客戶端需要讀/寫的數(shù)據(jù)的設(shè)備)發(fā)送數(shù)據(jù),另外一個是GATT的server主動向client發(fā)送數(shù)據(jù)。
中心設(shè)備(Center)與外圍設(shè)備(Peripheral)之間的通信:
1、中心設(shè)備(Center)向外圍設(shè)備(Peripheral)發(fā)送數(shù)據(jù):
中心設(shè)備(Center)可以調(diào)用GATT_WwrtiCharValue函數(shù)向外圍設(shè)備(Peripheral)發(fā)送數(shù)據(jù),這種情況下中心設(shè)備(Center)扮演client的角色。
該GATT_WwrtiCharValue函數(shù)會調(diào)用協(xié)議棧里面與硬件相關(guān)的函數(shù)最終將數(shù)據(jù)通過天線發(fā)送出去,這里面涉及對射頻模塊的操作,例如,打開發(fā)射機,調(diào)整發(fā)射機的發(fā)送功率等內(nèi)容,這些操作已經(jīng)在協(xié)議棧中實現(xiàn)了。
在GATT_WwrtiCharValue函數(shù)中,需要發(fā)送的數(shù)據(jù)填充到value中,數(shù)據(jù)長度填充到len中。
2、外圍設(shè)備(Peripheral)接收中心設(shè)備(Center)發(fā)送的數(shù)據(jù):
外圍設(shè)備(Peripheral)接收中心設(shè)備(Center)發(fā)送的數(shù)據(jù),這種情況下外圍設(shè)備(Peripheral)扮演server的角色。
外圍設(shè)備(Peripheral)會產(chǎn)生一個GATT Profile Callback調(diào)用,這個Callback是外圍設(shè)備(Peripheral)初始化時像Profile注冊的,在這個Callback中接收中心設(shè)備(Center)發(fā)送的數(shù)據(jù)。
3、外圍設(shè)備(Peripheral)向中心設(shè)備(Center)發(fā)送數(shù)據(jù):
外圍設(shè)備(Peripheral)可以調(diào)用GATT_Notification函數(shù)向中心設(shè)備(Center)發(fā)送數(shù)據(jù),這種情況下外圍設(shè)備(Peripheral)扮演server的角色。
在GATT_Notification函數(shù)中,需要發(fā)送的數(shù)據(jù)填充到value中,數(shù)據(jù)長度填充到len中。
4、中心設(shè)備(Center)接收外圍設(shè)備(Peripheral)發(fā)送的數(shù)據(jù):
中心設(shè)備(Center)接收外圍設(shè)備(Peripheral)發(fā)送的數(shù)據(jù),這種情況下中心設(shè)備(Center)扮演client的角色。
中心設(shè)備(Center)通過GATT_MSG_EVENT事件觸發(fā)任讀取gattMsgEvent_t結(jié)構(gòu)體中的msg對應(yīng)的Indication and Notification messages實現(xiàn)數(shù)據(jù)接收。
參照圖1,示出了本發(fā)明的一種基于低功耗藍牙協(xié)議的通信方法實施例的步驟流程圖,具體可以包括如下步驟:
步驟101,第一終端作為中心設(shè)備,在接收到消息時,檢測作為外圍設(shè)備的第二終端的狀態(tài)標識。
在本發(fā)明實施例中,第一終端(如手機、平板電腦等)與第二終端(如手環(huán)、手表等)可以通過BLE連接。
在BLE中,第一終端為中心設(shè)備(Center),第二終端為外圍設(shè)備(Peripheral)。
在第一終端與第二終端中安裝有同一應(yīng)用,如即時通訊工具、短信應(yīng)用、電話應(yīng)用、郵箱客戶端等,該應(yīng)用可能因為終端不同導(dǎo)致版本不同,但是,該應(yīng)用可以在第一終端和第二終端中登錄同一賬號,如即時通訊賬號、電話號碼、郵箱賬號等。
第一終端中的應(yīng)用為主要的應(yīng)用,一般與外部服務(wù)器直接交互,接收相應(yīng)的消息,如即時通訊消息、來電、短信、電子郵件,等等,而第二終端中的應(yīng)用為從屬的應(yīng)用,一般不與外部服務(wù)器直接交互,因此,若用戶啟用第二終端,則可以將第一終端中接收到的消息,同步至第二終端。
在實際應(yīng)用中,可以在第一終端中啟動一個后臺服務(wù)service,當?shù)谝唤K端中的應(yīng)用接收到應(yīng)用通知、來電、短信等消息時,該應(yīng)用會通過廣播的形式告知系統(tǒng)其他應(yīng)用,該后臺服務(wù)service可以接收此廣播,獲知接收到的消息。
若第一終端在接收到新的消息,則可以檢測第二終端的狀態(tài)標識,即標識第二終端所處狀態(tài)的信息,獲知第二終端當前所處的狀態(tài)。
步驟102,第一終端在檢測到所述狀態(tài)標識為休眠標識時,識別所述消息的類型。
休眠標識,指標識第二終端處于休眠狀態(tài)的信息,如“sleep”。
如果第一終端查詢到第二終端的狀態(tài)標識為休眠標識,表示第二終端處于休眠狀態(tài),為避免頻繁地喚醒第二終端,則可以依據(jù)接收到的消息的類型進行相應(yīng)的同步處理。
在本發(fā)明的一個實施例中,步驟102可以包括如下子步驟:
子步驟S11,確定接收到所述消息的應(yīng)用;
子步驟S12,查詢所述應(yīng)用對應(yīng)的分類標簽;
子步驟S13,按照所述分類標簽確定所述消息的類型。
在具體實現(xiàn)中,某個應(yīng)用的消息所屬的類型,可以是系統(tǒng)設(shè)定的,也可以是用戶設(shè)置的,本發(fā)明實施例對此不加以限制。
在本發(fā)明實施例中,可以對應(yīng)用(可以以包名package name標識)進行分類標記,記錄其分類標簽,如果截取到某個應(yīng)用的消息,則可以查詢該應(yīng)用的分類標簽,對該消息進行相應(yīng)的同步處理。
步驟103,第一終端根據(jù)所述類型對應(yīng)的同步頻率、將所述消息通過低功耗藍牙協(xié)議發(fā)送至第二終端。
在具體實現(xiàn)中,第一終端可以依據(jù)消息不同的類型,查詢不同的同步頻率,作為中心設(shè)備(Center)通過BLE的相關(guān)規(guī)范,將該消息發(fā)送至作為外圍設(shè)備(Peripheral)的第二終端。
第二終端可以依據(jù)消息不同的類型,對消息進行相應(yīng)的展示。
在本發(fā)明的一個實施例中,類型包括第一類型和第二類型。
其中,第一類型為消息實時性要求較低的類型,如電子郵件等,同步頻率較低,如一段時間同步一次,第二終端可以將該消息作為類似短信方式提示,用戶可以選擇看或不看;第二類型為消息實時性要求較高的類型,如來電、短信等,同步頻率較高,如實時同步,第二終端可以將該消息跳至前臺,用戶通常先處理此消息,然后進行其他操作。
則在本發(fā)明實施例中,步驟103可以包括如下子步驟:
子步驟S21,第一終端在確定所述消息屬于第一類型時,將所述消息緩存一段時間;
如果第一終端接收到的消息屬于實時性要求較低的第一類型,為了避免頻繁地喚醒第二終端,則可以間隔一段時間與第二終端進行一次同步。
需要說明的是,該一段時間為從第一條消息開始緩存到同步之間的時間,對這段時間內(nèi)接收到的消息進行緩存,再將全部的消息一次性進行同步,并非每條消息都需要緩存這段時間。
例如,第一終端間隔10分鐘同步一次第一類型的消息,假設(shè)在12:00接收到第一條消息,則開始計時,在12:00-12:10這段時間共接收到20條消息并進行了緩存,則在12:10將這20條消息同步至第二終端。
在具體實現(xiàn)中,第一終端在確定消息屬于第一類型時,將屬于第一類型的消息存儲至緩存隊列中。
此外,第一終端啟動定時器,以計時一段時間。
即第一終端接收到第一類型的消息后,除了將該第一類型的消息存儲至緩存隊列之外,還可以檢測是否啟動定時器,如果沒有啟動,則啟動定時器。
子步驟S22,第一終端在超過所述時間時,將所述時間段內(nèi)屬于所述第一類型的消息通過低功耗藍牙協(xié)議向發(fā)送至第二終端;
在具體實現(xiàn)中,第一終端在定時器計時結(jié)束時,作為中心設(shè)備(Center),通過低功耗藍牙協(xié)議將緩存隊列中屬于第一類型的消息發(fā)送至作為外圍設(shè)備(Peripheral)的第二終端。
此外,第一終端取消定時器,以便于下一次進行計時。
子步驟S23,第一終端在確定所述消息屬于第二類型時,將屬于所述第二類型的消息通過低功耗藍牙協(xié)議發(fā)送至第二終端。
如果第一終端接收到的消息屬于實時性要求較高的第二類型,為了及時提醒用戶,則可以直接與第二終端進行一次同步。
在本發(fā)明的一個實施例中,子步驟S23進一步可以包括如下子步驟:
子步驟S231,第一終端在確定所述消息屬于第二類型時,判斷是否緩存有屬于所述第一類型的消息;若是,則執(zhí)行子步驟S232;
在具體實現(xiàn)中,第一終端在確定消息屬于第二類型時,判斷是否啟動定時器;若是,則確定緩存有屬于第一類型的消息。
由于定時器用于對緩存的時間進行計時,因此,如果定時器啟動,則表示緩存有屬于第一類型的消息。
子步驟S232,第一終端將屬于所述第一類型的消息、屬于所述第二類型的消息通過低功耗藍牙協(xié)議一同發(fā)送至第二終端。
在實際應(yīng)用中,第一終端作為中心設(shè)備(Center)、通過低功耗藍牙協(xié)議將緩存隊列中屬于第一類型的消息、屬于第二類型的消息一同發(fā)送至作為外圍設(shè)備(Peripheral)的第二終端。
此外,第一終端取消定時器,以便于下一次進行計時。
在本發(fā)明實施例中,為了減少喚醒第二終端的頻次,第一終端在同步第二類型的消息時,可以檢測是否緩存有第一類型的消息。
如果有,則將這兩種類型的消息一次性進行同步,避免在同步第二類型的消息之后,再次同步第一類型的消息。
如果沒有,則直接同步第二類型的消息。
當然,上述消息的類型只是作為示例,在實施本發(fā)明實施例時,可以根據(jù)實際情況設(shè)置其他消息的類型,如第三類型,該第三類型的消息禁止同步至第二終端,等等,本發(fā)明實施例對此不加以限制。另外,除了上述消息的類型外,本領(lǐng)域技術(shù)人員還可以根據(jù)實際需要采用其它消息的類型,本發(fā)明實施例對此也不加以限制。
本發(fā)明實施例應(yīng)用低功耗藍牙協(xié)議的通信,第一終端為中心設(shè)備、第二終端為外圍設(shè)備,第一終端在接收到消息時,檢測第二終端的狀態(tài)標識,如果第二終端的狀態(tài)標識為休眠標識時,則第一終端識別消息的類型,根據(jù)該類型對應(yīng)的同步頻率、將該消息通過低功耗藍牙協(xié)議發(fā)送至第二終端,基于消息的類型靈活設(shè)置同步頻率,避免了每次接收到消息就立即與處于休眠狀態(tài)的第二終端進行同步,減少了同步的頻次,從而減少了喚醒第二終端的頻次,降低了第二終端的資源消耗。
參照圖2,示出了本發(fā)明的另一種基于低功耗藍牙協(xié)議的通信方法實施例的步驟流程圖,具體可以包括如下步驟:
步驟201,第一終端通過低功耗藍牙協(xié)議接收第二終端在進入休眠狀態(tài)時發(fā)送的休眠標識。
步驟202,第一終端將所述休眠標識記錄為第二終端的狀態(tài)標識。
在本發(fā)明實施例中,如果第二終端即將進入休眠狀態(tài),則可以作為外圍設(shè)備(Peripheral),通過BLE的規(guī)范將休眠標識(如“sleep”)發(fā)送至作為中心設(shè)備(Center)的第一終端。
第一終端作為中心設(shè)備(Center),通過BLE的規(guī)范接收到作為外圍設(shè)備(Peripheral)的第二終端發(fā)送的休眠標識(如“sleep”),則可以存儲該休眠標識(如“sleep”)作為第二終端當前的狀態(tài)標識。
需要說明的是,休眠狀態(tài)一般是指將運行的實時數(shù)據(jù)存儲到內(nèi)存(媒介)上,并且盡可能關(guān)閉不必要的硬件以求省電,對于不同類型、不同系統(tǒng)的終端,該休眠狀態(tài)具有不同的含義,本發(fā)明實施例對此不加以限制。
例如,在Linux系統(tǒng)中,休眠(suspend)主要分三個主要的步驟:
1、凍結(jié)用戶態(tài)進程和內(nèi)核態(tài)任務(wù)
2、調(diào)用注冊的設(shè)備的suspend的回調(diào)函數(shù),順序是按照注冊順序
3、休眠核心設(shè)備和使CPU(Central Processing Unit,中央處理器)進入休眠態(tài),凍結(jié)進程,即內(nèi)核把進程列表中所有的進程的狀態(tài)都設(shè)置為停止,并且保存下所有進程的上下文。
步驟203,第一終端通過低功耗藍牙協(xié)議接收第二終端在進入活動狀態(tài)時發(fā)送的活動標識。
步驟204,第一終端將所述活動標識記錄為第二終端的狀態(tài)標識。
在本發(fā)明實施例中,如果第二終端在休眠狀態(tài)中被中斷或喚醒,則進入活動狀態(tài)。
此時,第二終端可以作為外圍設(shè)備(Peripheral),通過BLE的規(guī)范將活動標識(指標識第二終端處于正常狀態(tài)的信息,如“active”)發(fā)送至作為中心設(shè)備(Center)的第一終端。
第一終端作為中心設(shè)備(Center),通過BLE的規(guī)范接收到作為外圍設(shè)備(Peripheral)發(fā)送的活動標識(如“active”),則可以存儲該休眠標識(如“sleep”)作為第二終端當前的狀態(tài)標識。
需要說明的是,活動狀態(tài)一般是指將終端正常運行的狀態(tài),對于不同類型、不同系統(tǒng)的終端,該活動狀態(tài)具有不同的含義,本發(fā)明實施例對此不加以限制。
例如,在Linux系統(tǒng)中,如果系統(tǒng)在休眠(suspend)中被中斷或者其他事件喚醒,這個喚醒的順序是和休眠的循序一般是相反的,所以系統(tǒng)設(shè)備和總線會首先喚醒,使能系統(tǒng)中斷,使能休眠時候停止掉的非啟動CPU,以及調(diào)用suspend_ops的finish()函數(shù),而且在suspend_devices_and_enter()函數(shù)中也會繼續(xù)喚醒每個終端,使能虛擬終端,最后調(diào)用suspend_ops的end()函數(shù)。
在返回到enter_state()函數(shù)中的,當suspend_devices_and_enter()函數(shù)返回以后,外設(shè)已經(jīng)喚醒了,但是進程和任務(wù)都還是凍結(jié)狀態(tài),這里會調(diào)用suspend_finish()來解凍這些進程和任務(wù),而且發(fā)出Notify來表示系統(tǒng)已經(jīng)從suspend狀態(tài)退出,喚醒終端,系統(tǒng)繼續(xù)運行。
步驟205,第一終端作為中心設(shè)備,在接收到消息時,檢測作為外圍設(shè)備的第二終端的狀態(tài)標識。
步驟206,第一終端在檢測到所述狀態(tài)標識為休眠標識時,識別所述消息的類型。
步驟207,第一終端根據(jù)所述類型對應(yīng)的同步頻率、將所述消息通過低功耗藍牙協(xié)議發(fā)送至第二終端。
步驟208,第一終端在所述狀態(tài)標識為活動標識時,將所述消息通過低功耗藍牙協(xié)議發(fā)送至第二終端。
如果第一終端查詢到第二終端的狀態(tài)標識為活動標識,表示第二終端處于活動狀態(tài),正常運行,則第一終端可以作為中心設(shè)備(Center),通過BLE的相關(guān)規(guī)范,直接將該消息發(fā)送至作為外圍設(shè)備(Peripheral)的第二終端。
參照圖3,示出了本發(fā)明的另一種基于低功耗藍牙協(xié)議的通信方法實施例的步驟流程圖,具體可以包括如下步驟:
步驟301,第二終端作為外圍設(shè)備,在生成消息時,檢測作為中心設(shè)備的第一終端的狀態(tài)標識。
在本發(fā)明實施例中,第一終端(如手機、平板電腦等)與第二終端(如手環(huán)、手表等)可以通過BLE連接。
在BLE中,第一終端為中心設(shè)備(Center),第二終端為外圍設(shè)備(Peripheral)。
在第二終端中配置有傳感器,如溫度傳感器、GPS(Global Positioning System,全球定位系統(tǒng))模塊、加速度傳感器等,用戶在攜帶第二終端進行運動的過程中,通常會產(chǎn)生傳感器數(shù)據(jù),這些傳感器數(shù)據(jù)一般需要上報至第一終端進行后續(xù)的處理,如測量步數(shù)、測量跑步距離、測量消耗的卡路里、統(tǒng)計睡覺時間等等。
若第二終端在生成新的消息,則可以檢測第一終端的狀態(tài)標識,即標識第一終端所處狀態(tài)的信息,獲知第一終端當前所處的狀態(tài)。
步驟302,第二終端在檢測到所述狀態(tài)標識為休眠標識時,將所述消息緩存一段時間。
休眠標識,指標識第一終端處于休眠狀態(tài)的信息,如“sleep”。
如果第二終端查詢到第一終端的狀態(tài)標識為休眠標識,表示第一終端處于休眠狀態(tài),由于第二終端生成的消息實時性要求一般較低,為避免頻繁地喚醒第一終端,則可以間隔一段時間上報一次第一終端。
需要說明的是,該一段時間為從第一條消息開始緩存到同步之間的時間,對這段時間內(nèi)接收到的消息進行緩存,再將全部的消息一次性進行同步,并非每條消息都需要緩存這段時間。
例如,第二終端間隔10分鐘上報一次生成的消息,假設(shè)在12:00生成第一條傳感器的數(shù)據(jù),則開始計時,在12:00-12:10這段時間共生成到20條傳感器的數(shù)據(jù)并進行了緩存,則在12:10將這20條傳感器的數(shù)據(jù)上報至第一終端。
在具體實現(xiàn)中,第二終端在檢測到狀態(tài)標識為休眠標識時,將消息存儲至緩存隊列中。
此外,第二終端啟動定時器,以計時一段時間。
即第二終端在狀態(tài)標識為休眠標識后,除了將生成的消息存儲至緩存隊列之外,還可以檢測是否啟動定時器,如果沒有啟動,則啟動定時器。
步驟303,第二終端在超過所述時間時,將所述消息通過低功耗藍牙協(xié)議發(fā)送至第一終端。
如果超過緩存的時間,第二終端可以作為外圍設(shè)備(Peripheral)通過BLE的相關(guān)規(guī)范,將該消息發(fā)送至作為中心設(shè)備(Center)的第一終端。
在具體實現(xiàn)中,第二終端在定時器計時結(jié)束時,作為外圍設(shè)備(Peripheral),將緩存隊列中的消息發(fā)送通過低功耗藍牙協(xié)議至作為中心設(shè)備(Center)的第一終端。
此外,第二終端取消定時器,以便于下一次進行計時。
本發(fā)明實施例應(yīng)用低功耗藍牙協(xié)議的通信,第一終端為中心設(shè)備、第二終端為外圍設(shè)備,第二終端在生成消息時,檢測第一終端的狀態(tài)標識,如果第一終端的狀態(tài)標識為休眠標識,則第二終端將消息緩存一段時間,在超過該時間時,將該消息通過低功耗藍牙協(xié)議發(fā)送至第一終端,通過緩存消息,避免了每次生成消息就立即上報至處于休眠狀態(tài)的第一終端,減少了同步的頻次,從而減少了喚醒第一終端的頻次,降低了第一終端的資源消耗。
參照圖4,示出了本發(fā)明的另一種基于低功耗藍牙協(xié)議的通信方法實施例的步驟流程圖,具體可以包括如下步驟:
步驟401,第二終端通過低功耗藍牙協(xié)議接收第一終端在進入休眠狀態(tài)時發(fā)送的休眠標識。
步驟402,第二終端將所述休眠標識記錄為第一終端的狀態(tài)標識。
在本發(fā)明實施例中,如果第一終端即將進入休眠狀態(tài),則可以作為中心設(shè)備(Center),通過BLE的規(guī)范將休眠標識(如“sleep”)發(fā)送至作為外圍設(shè)備(Peripheral)的第二終端。
第二終端作為外圍設(shè)備(Peripheral),通過BLE的規(guī)范接收到作為中心設(shè)備(Center)的第一終端發(fā)送的休眠標識(如“sleep”),則可以存儲該休眠標識(如“sleep”)作為第一終端當前的狀態(tài)標識。
需要說明的是,休眠狀態(tài)一般是指將運行的實時數(shù)據(jù)存儲到內(nèi)存(媒介)上,并且盡可能關(guān)閉不必要的硬件以求省電,對于不同類型、不同系統(tǒng)的終端,該休眠狀態(tài)具有不同的含義,本發(fā)明實施例對此不加以限制。
例如,在Linux系統(tǒng)中,休眠(suspend)主要分三個主要的步驟:
1、凍結(jié)用戶態(tài)進程和內(nèi)核態(tài)任務(wù)
2、調(diào)用注冊的設(shè)備的suspend的回調(diào)函數(shù),順序是按照注冊順序
3、休眠核心設(shè)備和使CPU(Central Processing Unit,中央處理器)進入休眠態(tài),凍結(jié)進程,即內(nèi)核把進程列表中所有的進程的狀態(tài)都設(shè)置為停止,并且保存下所有進程的上下文。
步驟403,第二終端通過低功耗藍牙協(xié)議接收第一終端在進入活動狀態(tài)時發(fā)送的活動標識。
步驟404,第二終端將所述活動標識記錄為第一終端的狀態(tài)標識。
在本發(fā)明實施例中,如果第一終端在休眠狀態(tài)中被中斷或喚醒,則進入活動狀態(tài)。
此時,第一終端可以作為中心設(shè)備(Center),通過BLE的規(guī)范將活動標識(指標識第一終端處于正常狀態(tài)的信息,如“active”)發(fā)送至作為外圍設(shè)備(Peripheral)的第二終端。
第二終端作為外圍設(shè)備(Peripheral),通過BLE的規(guī)范接收到作為中心設(shè)備(Center)發(fā)送的活動標識(如“active”),則可以存儲該休眠標識(如“sleep”)作為第一終端當前的狀態(tài)標識。
需要說明的是,活動狀態(tài)一般是指將終端正常運行的狀態(tài),對于不同類型、不同系統(tǒng)的終端,該活動狀態(tài)具有不同的含義,本發(fā)明實施例對此不加以限制。
例如,在Linux系統(tǒng)中,如果系統(tǒng)在休眠(suspend)中被中斷或者其他事件喚醒,這個喚醒的順序是和休眠的循序一般是相反的,所以系統(tǒng)設(shè)備和總線會首先喚醒,使能系統(tǒng)中斷,使能休眠時候停止掉的非啟動CPU,以及調(diào)用suspend_ops的finish()函數(shù),而且在suspend_devices_and_enter()函數(shù)中也會繼續(xù)喚醒每個終端,使能虛擬終端,最后調(diào)用suspend_ops的end()函數(shù)。
在返回到enter_state()函數(shù)中的,當suspend_devices_and_enter()函數(shù)返回以后,外設(shè)已經(jīng)喚醒了,但是進程和任務(wù)都還是凍結(jié)狀態(tài),這里會調(diào)用suspend_finish()來解凍這些進程和任務(wù),而且發(fā)出Notify來表示系統(tǒng)已經(jīng)從suspend狀態(tài)退出,喚醒終端,系統(tǒng)繼續(xù)運行。
步驟405,第二終端作為外圍設(shè)備,在生成消息時,檢測作為中心設(shè)備的第一終端的狀態(tài)標識。
步驟406,第二終端在檢測到所述狀態(tài)標識為休眠標識時,將所述消息緩存一段時間。
步驟407,第二終端在超過所述時間時,將所述消息通過低功耗藍牙協(xié)議發(fā)送至第一終端。
步驟408,第二終端在所述狀態(tài)標識為活動標識時,將所述消息通過低功耗藍牙協(xié)議發(fā)送至第一終端。
如果第二終端查詢到第一終端的狀態(tài)標識為活動標識,表示第一終端處于活動狀態(tài),正常運行,則第二終端可以作為外圍設(shè)備(Peripheral),通過BLE的相關(guān)規(guī)范,直接將該消息發(fā)送至作為中心設(shè)備(Center)的第一終端。
需要說明的是,對于方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明實施例并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明實施例,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作并不一定是本發(fā)明實施例所必須的。
參照圖5,示出了本發(fā)明的一種基于低功耗藍牙協(xié)議的通信裝置實施例的結(jié)構(gòu)框圖,應(yīng)用在第一終端500中,該裝置具體可以包括如下模塊:
外圍狀態(tài)檢測模塊501,用于作為中心設(shè)備,在接收到消息時,檢測作為外圍設(shè)備的第二終端的狀態(tài)標識;
消息類型識別模塊502,用于在檢測到所述狀態(tài)標識為休眠標識時,識別所述消息的類型;
外圍消息休眠同步模塊503,用于根據(jù)所述類型對應(yīng)的同步頻率、將所述消息通過低功耗藍牙協(xié)議發(fā)送至第二終端。
在本發(fā)明的一個實施例中,所述消息類型識別模塊502可以包括如下子模塊:
應(yīng)用確定子模塊,用于確定接收到所述消息的應(yīng)用;
分類標簽查詢子模塊,用于查詢所述應(yīng)用對應(yīng)的分類標簽;
消息類型確定子模塊,用于按照所述分類標簽確定所述消息的類型。
在本發(fā)明的一個實施例中,所述類型包括第一類型和第二類型;
所述外圍消息休眠同步模塊503可以包括如下子模塊:
中心緩存子模塊,用于在確定所述消息屬于第一類型時,將所述消息緩存一段時間;
中心間隔發(fā)送子模塊,用于在超過所述時間時,將所述時間段內(nèi)屬于所述第一類型的消息通過低功耗藍牙協(xié)議向發(fā)送至第二終端;
中心實時發(fā)送子模塊,用于在確定所述消息屬于第二類型時,將屬于所述第二類型的消息通過低功耗藍牙協(xié)議發(fā)送至第二終端。
在本發(fā)明的一個實施例中,所述中心緩存子模塊可以包括如下單元:
中心緩存隊列存儲單元,用于第一終端在確定所述消息屬于第一類型時,將屬于所述第一類型的消息存儲至緩存隊列中;
中心定時器啟動單元,用于啟動定時器,以計時一段時間;
所述中心間隔發(fā)送子模塊可以包括如下模塊:
中心計時發(fā)送單元,用于在所述定時器計時結(jié)束時,將所述緩存隊列中屬于所述第一類型的消息通過低功耗藍牙協(xié)議發(fā)送至第二終端;
第一中心定時器取消單元,用于取消所述定時器。
在本發(fā)明的一個實施例中,所述中心實時發(fā)送子模塊可以包括如下單元:
緩存消息判斷單元,用于在確定所述消息屬于第二類型時,判斷是否緩存有屬于所述第一類型的消息;若是,則調(diào)用中心協(xié)同發(fā)送單元;
中心協(xié)同發(fā)送單元,用于將屬于所述第一類型的消息、屬于所述第二類型的消息通過低功耗藍牙協(xié)議一同發(fā)送至第二終端。
在本發(fā)明的一個實施例中,所述緩存消息判斷單元可以包括如下子單元:
啟動器啟動判斷子單元,用于第一終端在確定所述消息屬于第二類型時,判斷是否啟動定時器;若是,則調(diào)用消息緩存確定子單元;
消息緩存確定子單元,用于確定緩存有屬于所述第一類型的消息;
所述中心協(xié)同發(fā)送單元可以包括如下子單元:
中心雙類型發(fā)送子單元,用于將緩存隊列中屬于所述第一類型的消息、屬于所述第二類型的消息通過低功耗藍牙協(xié)議一同發(fā)送至第二終端;
第二中心定時器取消子單元,用于取消所述定時器。
在本發(fā)明的一個實施例中,該裝置還可以包括如下模塊:
外圍休眠標識接收模塊,用于通過低功耗藍牙協(xié)議接收第二終端在進入休眠狀態(tài)時發(fā)送的休眠標識;
外圍休眠狀態(tài)記錄模塊,用于將所述休眠標識記錄為第二終端的狀態(tài)標識;
和/或,
外圍活動標識接收模塊,用于通過低功耗藍牙協(xié)議接收第二終端在進入活動狀態(tài)時發(fā)送的活動標識;
外圍活動狀態(tài)記錄模塊,用于將所述活動標識記錄為第二終端的狀態(tài)標識。
在本發(fā)明的一個實施例中,該裝置還可以包括如下模塊:
外圍消息活動同步模塊,用于在所述狀態(tài)標識為活動標識時,將所述消息通過低功耗藍牙協(xié)議發(fā)送至第二終端。
參照圖6,示出了本發(fā)明的另一種基于低功耗藍牙協(xié)議的通信裝置實施例的結(jié)構(gòu)框圖,應(yīng)用在第二終端600中,該裝置具體可以包括如下模塊:
中心狀態(tài)檢測模塊601,用于作為外圍設(shè)備,在生成消息時,檢測作為中心設(shè)備的第一終端的狀態(tài)標識;
外圍緩存模塊602,用于在檢測到所述狀態(tài)標識為休眠標識時,將所述消息緩存一段時間;
中心消息休眠上報模塊603,用于在超過所述時間時,作為外圍設(shè)備、將所述消息通過低功耗藍牙協(xié)議發(fā)送至第一終端。
在本發(fā)明的一個實施例中,所述外圍緩存模塊602可以包括如下子模塊:
外圍緩存隊列存儲子模塊,用于在所述狀態(tài)標識為休眠標識時,將所述消息存儲至緩存隊列中;
外圍定時器啟動子模塊,用于啟動定時器,以計時一段時間。
在本發(fā)明的一個實施例中,所述中心消息休眠上報模塊603可以包括如下子模塊:
外圍計時發(fā)送子模塊,用于在所述定時器計時結(jié)束時,將所述緩存隊列中的消息通過低功耗藍牙協(xié)議發(fā)送至第一終端;
外圍定時器取消子模塊,用于取消所述定時器。
在本發(fā)明的一個實施例中,該裝置還可以包括如下模塊:
中心休眠標識接收模塊,用于通過低功耗藍牙協(xié)議接收第一終端在進入休眠狀態(tài)時發(fā)送的休眠標識;
中心休眠狀態(tài)記錄模塊,用于將所述休眠標識記錄為第一終端的狀態(tài)標識;
和/或,
中心活動標識接收模塊,用于通過低功耗藍牙協(xié)議接收第一終端在進入活動狀態(tài)時發(fā)送的活動標識;
中心活動狀態(tài)記錄模塊,用于將所述活動標識記錄為第一終端的狀態(tài)標識。
在本發(fā)明的一個實施例中,該裝置還可以包括如下模塊:
中心消息活動上報模塊,用于在所述狀態(tài)標識為活動標識時,將所述消息通過低功耗藍牙協(xié)議發(fā)送至第一終端。
對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明實施例的實施例可提供為方法、裝置、或計算機程序產(chǎn)品。因此,本發(fā)明實施例可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明實施例可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明實施例是參照根據(jù)本發(fā)明實施例的方法、終端設(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)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本發(fā)明實施例的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明實施例范圍的所有變更和修改。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終端設(shè)備中還存在另外的相同要素。
以上對本發(fā)明所提供的一種基于低功耗藍牙協(xié)議的通信方法和一種基于低功耗藍牙協(xié)議的通信裝置,進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。