則藍(lán)牙監(jiān)聽設(shè)備丟棄預(yù)定時(shí)間長(zhǎng)度內(nèi)收到的相同的通告報(bào)文,進(jìn)行篩選時(shí)可以將報(bào)文中轉(zhuǎn)次數(shù)超過(guò)預(yù)定次數(shù)的通告報(bào)文丟棄(MAC地址與UUID均相同,報(bào)文中轉(zhuǎn)次數(shù)不同),避免發(fā)送過(guò)多信息到定位設(shè)備。具體做法可以是:
[0066]藍(lán)牙監(jiān)聽設(shè)備在確定出通告報(bào)文不為網(wǎng)絡(luò)中的藍(lán)牙穿戴設(shè)備廣播的時(shí),判斷本地是否已接收到與所述通告報(bào)文中攜帶的MAC地址及所述通告報(bào)文的來(lái)源藍(lán)牙穿戴設(shè)備的唯一識(shí)別碼UUID相同的通告報(bào)文;若是,將通告報(bào)文丟棄;否則,將通告報(bào)文轉(zhuǎn)換為有線報(bào)文后發(fā)送給所述定位設(shè)備進(jìn)行定位。
[0067]圖5是藍(lán)牙實(shí)時(shí)定位系統(tǒng)200在一個(gè)實(shí)際的應(yīng)用場(chǎng)景中的組網(wǎng)圖。圖中藍(lán)牙中繼設(shè)備201包含多個(gè)藍(lán)牙標(biāo)簽(一級(jí)藍(lán)牙中繼設(shè)備為藍(lán)牙標(biāo)簽10、藍(lán)牙標(biāo)簽11、藍(lán)牙標(biāo)簽12、藍(lán)牙標(biāo)簽20、藍(lán)牙標(biāo)簽21、藍(lán)牙標(biāo)簽22 ;二級(jí)藍(lán)牙中繼設(shè)備為藍(lán)牙標(biāo)簽110、藍(lán)牙標(biāo)簽111、藍(lán)牙標(biāo)簽210、藍(lán)牙標(biāo)簽211),各個(gè)藍(lán)牙標(biāo)簽按照藍(lán)牙信號(hào)的有效傳播距離分布。以下描述圖中藍(lán)牙穿戴設(shè)備203的轉(zhuǎn)發(fā)流程。
[0068]本例中通告報(bào)文為Beacon通告報(bào)文。圖6a是本例中Beacon通告報(bào)文的報(bào)文格式,格式前兩行為BLE定義的標(biāo)準(zhǔn)通告報(bào)文字段,其含義可參照BLE協(xié)議中的定義,在此不予贅述。本申請(qǐng)所增添的字段包括在圖中data字段內(nèi)。在Data字段中的tagBeacon Prefix為固定字段(此處假設(shè)為“Ox 01 Of e2 00”),代表上述實(shí)施例中的預(yù)設(shè)類型,區(qū)分其他Beacon通告類型;Sender UUID為藍(lán)牙穿戴設(shè)備203的UUID ;Sender Battery為藍(lán)牙穿戴設(shè)備203的電池電量;Forwarding Count為報(bào)文中轉(zhuǎn)次數(shù);Count O MAC為第一級(jí)接收者的MAC地址;Count O RSSI為第一級(jí)接收者讀取到的信號(hào)強(qiáng)度。在本例中步驟S301所述的預(yù)定類型為 tagBeacon Pref ix 字段,驗(yàn)證參數(shù)為 Forwarding Count 或者 Count O MAC。
[0069]圖6b是圖5中對(duì)藍(lán)牙穿戴設(shè)備所發(fā)送的通告報(bào)文的轉(zhuǎn)發(fā)過(guò)程示意圖。虛線表示無(wú)線傳輸,實(shí)現(xiàn)表示有線傳輸。
[0070]在S610階段,藍(lán)牙手環(huán)作為藍(lán)牙穿戴設(shè)備,并且內(nèi)置藍(lán)牙標(biāo)簽,作為通告報(bào)文源頭。其周期(例如:以600ms為間隔)發(fā)送通告報(bào)文,攜帶自己的UUID、電池電量信息,同時(shí) Forwarding Count 固定為 0,Count O MAC 和 Count O RSSI 均為 O。
[0071]網(wǎng)絡(luò)中部署若干藍(lán)牙標(biāo)簽作為藍(lán)牙中繼設(shè)備201,該藍(lán)牙標(biāo)簽不支持有線通信也不支持連接,僅支持監(jiān)聽藍(lán)牙穿戴設(shè)備定義的tagBeacon Prefix字段的通告報(bào)文,并立即觸發(fā)另一個(gè)通告,其硬件形態(tài)與穿戴設(shè)備中的BLE Tag基本一致。結(jié)合圖5可以看出,通告報(bào)文將被一級(jí)藍(lán)牙中繼設(shè)備藍(lán)牙標(biāo)簽10、藍(lán)牙標(biāo)簽11、藍(lán)牙標(biāo)簽20監(jiān)聽到。
[0072]在S611階段,當(dāng)藍(lán)牙標(biāo)簽10、藍(lán)牙標(biāo)簽11、藍(lán)牙標(biāo)簽20監(jiān)聽到ForwardingCount為O的BLE通告報(bào)文時(shí),將各自的MAC地址和接收到報(bào)文的RSSI填充進(jìn)去,同時(shí)將Forwarding Count加一,并轉(zhuǎn)發(fā)出去;結(jié)合圖5可以看出,藍(lán)牙標(biāo)簽10轉(zhuǎn)發(fā)的通告報(bào)文將被藍(lán)牙標(biāo)簽110監(jiān)聽到,藍(lán)牙標(biāo)簽11轉(zhuǎn)發(fā)的通告報(bào)文將被藍(lán)牙標(biāo)簽110、111監(jiān)聽到,藍(lán)牙標(biāo)簽20轉(zhuǎn)發(fā)的通告報(bào)文將被藍(lán)牙標(biāo)簽210監(jiān)聽到。
[0073]在S612階段,作為第二級(jí)接收者的二級(jí)藍(lán)牙中繼設(shè)備處理收到的通告報(bào)文,針對(duì)Forwarding Count為I的通告報(bào)文,保持原有的MAC地址和RSSI不變,同時(shí)將ForwardingCount加一;如果這些標(biāo)簽還收到其他來(lái)自藍(lán)牙穿戴設(shè)備的通告報(bào)文,則針對(duì)ForwardingCount為O的通告,填充自身的MAC地址和RSSI信息,同時(shí)將Forwarding Count加一。
[0074]參考圖5,藍(lán)牙標(biāo)簽110、111與有線接收器m相連,藍(lán)牙標(biāo)簽210與有線接收器η相連。
[0075]在S613階段,支持有線連接的有線接收器m和η匯總收到的通告報(bào)文,篩選后轉(zhuǎn)換成有線信號(hào)上報(bào)定位設(shè)備,有線接收器m收到的通告報(bào)文有:一條藍(lán)牙標(biāo)簽10的MAC地址的報(bào)文(報(bào)文中轉(zhuǎn)次數(shù)為2);兩條藍(lán)牙標(biāo)簽11的MAC地址的報(bào)文(兩條報(bào)文中轉(zhuǎn)次數(shù)為2);有線接收器η收到一條藍(lán)牙標(biāo)簽20的MAC地址的報(bào)文(報(bào)文中轉(zhuǎn)次數(shù)為2)。有線接收器m選擇一條將帶有藍(lán)牙標(biāo)簽11的MAC地址的通告報(bào)文,與帶有藍(lán)牙標(biāo)簽10的MAC地址的通告報(bào)文轉(zhuǎn)換為有線報(bào)文發(fā)給定位設(shè)備204,有線接收器η將帶有藍(lán)牙標(biāo)簽20的MAC地址的通告報(bào)文轉(zhuǎn)換為有線報(bào)文發(fā)給定位設(shè)備204。
[0076]定位設(shè)備收到上述通告報(bào)文時(shí),將MAC地址作為Sensor ID,統(tǒng)一使用Sensor ID作為地圖參考點(diǎn)計(jì)算信號(hào)源的位置,進(jìn)行三點(diǎn)計(jì)算來(lái)實(shí)現(xiàn)高精度定位。
[0077]與前述利用藍(lán)牙標(biāo)簽進(jìn)行定位的方法的實(shí)施例相對(duì)應(yīng),本申請(qǐng)還提供了藍(lán)牙中繼設(shè)備的實(shí)施例。
[0078]本申請(qǐng)藍(lán)牙中繼設(shè)備的實(shí)施例可以應(yīng)用在藍(lán)牙標(biāo)簽上。裝置實(shí)施例可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為一個(gè)邏輯意義上的裝置,是通過(guò)其所在藍(lán)牙標(biāo)簽的處理器將非易失性存儲(chǔ)器中對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。從硬件層面而言,如圖7所示,為本申請(qǐng)藍(lán)牙中繼設(shè)備所在藍(lán)牙標(biāo)簽的一種硬件結(jié)構(gòu)圖,除了圖7所示的處理器、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲(chǔ)器之外,實(shí)施例中裝置所在的藍(lán)牙標(biāo)簽通常根據(jù)該藍(lán)牙標(biāo)簽的實(shí)際功能,還可以包括其他硬件,對(duì)此不再贅述。同樣,對(duì)于藍(lán)牙監(jiān)聽設(shè)備實(shí)施例可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。對(duì)于硬件實(shí)現(xiàn)方式不再贅述。
[0079]請(qǐng)參考圖8,為本申請(qǐng)藍(lán)牙中繼設(shè)備的軟件實(shí)現(xiàn)的邏輯框圖,該藍(lán)牙中繼設(shè)備800包括:
[0080]監(jiān)聽模塊801,用于在監(jiān)聽到通告報(bào)文,且確定出所述通告報(bào)文中攜帶的通告類型為預(yù)設(shè)類型時(shí),根據(jù)所述通告報(bào)文中攜帶的驗(yàn)證參數(shù),確定所述通告報(bào)文是否為所述網(wǎng)絡(luò)中的藍(lán)牙穿戴設(shè)備廣播的,并通知處理模塊802 ;
[0081]所述處理模塊802,用于將網(wǎng)絡(luò)中的藍(lán)牙穿戴設(shè)備廣播的所述通告報(bào)文中攜帶的MAC地址修改為自身的MAC地址、攜帶的接收信號(hào)強(qiáng)度指示RSSI值修改為自身監(jiān)聽到所述通告報(bào)文時(shí)測(cè)量的RSSI值;
[0082]廣播模塊803,用于廣播修改后的通告報(bào)文,以使監(jiān)聽到修改后的通告報(bào)文的藍(lán)牙監(jiān)聽設(shè)備按照預(yù)設(shè)策略對(duì)修改后的通告報(bào)文進(jìn)行處理后發(fā)送給所述定位設(shè)備進(jìn)行定位。
[0083]作為一個(gè)實(shí)施例,所述驗(yàn)證參數(shù)包括所述通告報(bào)文所攜帶的MAC地址;所述監(jiān)聽模塊801根據(jù)所述通告報(bào)文中攜帶的驗(yàn)證參數(shù),確定所述通告報(bào)文是否為所述網(wǎng)絡(luò)中的藍(lán)牙穿戴設(shè)備廣播的,具體包括:
[0084]判斷所述通告報(bào)文中攜帶的MAC地址是否為初始MAC地址;
[0085]若是,確定所述通告報(bào)文為所述網(wǎng)絡(luò)中的藍(lán)牙穿戴設(shè)備廣播的。
[0086]作為另一個(gè)實(shí)施例,所述驗(yàn)證參數(shù)包括報(bào)文中轉(zhuǎn)次數(shù);所述監(jiān)聽模塊801具體用于:
[0087]判斷所述通告報(bào)文中攜帶的報(bào)文中轉(zhuǎn)次數(shù)是否為初始值;
[0088]若是,確定所述通告報(bào)文為所述網(wǎng)絡(luò)中的藍(lán)牙穿戴設(shè)備廣播的;
[0089]所述監(jiān)聽模塊801還用于在判斷出所述通告報(bào)文中攜帶的報(bào)文中轉(zhuǎn)次數(shù)為初始值之后,廣播修改后的通告報(bào)文之前,將所述通告報(bào)文中攜帶的報(bào)文中轉(zhuǎn)次數(shù)增加設(shè)定數(shù)值。
[0090]在一個(gè)實(shí)施例中,所述藍(lán)牙中繼設(shè)備800為一級(jí)藍(lán)牙中繼設(shè)備;所述監(jiān)聽模塊801還用于在確定出所述通告報(bào)文不為所述網(wǎng)絡(luò)中的藍(lán)牙穿戴設(shè)備廣播的時(shí),將所述通告報(bào)文丟棄。
[0091]在另一個(gè)實(shí)施例中,多個(gè)藍(lán)牙中繼設(shè)備800包括一級(jí)藍(lán)牙中繼設(shè)備和二級(jí)藍(lán)牙中繼設(shè)備;
[0092]在所述藍(lán)牙中繼設(shè)備800為二級(jí)藍(lán)牙中繼設(shè)備時(shí),所述監(jiān)聽模塊801還用于:在確定出所述通告報(bào)文不為所述網(wǎng)絡(luò)中的藍(lán)牙穿戴設(shè)備廣播的時(shí),通知所述廣播模塊803,以使所述廣播模塊廣播所述通告報(bào)文后,監(jiān)聽到所述通告報(bào)文的藍(lán)牙監(jiān)聽設(shè)備按照所述預(yù)設(shè)策略對(duì)所述通告報(bào)文進(jìn)行處理后發(fā)送給所述定位設(shè)備進(jìn)行定位。
[00