基于藍牙廣播包的遙控方法
【專利摘要】基于藍牙廣播包的遙控方法,包括如下步驟:步驟一,首次使用遙控器,采用基于藍牙廣播包的對碼方法使遙控器和藍牙主機端實現(xiàn)配對;步驟二,遙控器傳輸數(shù)據到主機端,數(shù)據根據藍牙ADV_NON_CONN_IND包格式打包,為了防止數(shù)據丟包,每個包重復發(fā)送數(shù)次;步驟三,數(shù)據處理,對于不同類型的數(shù)據分別進行相應的處理,從而控制主機端。本發(fā)明方法操作簡單,成本低廉,可以快速配對,在產線等特殊應用場景下還可實現(xiàn)一對多控制。
【專利說明】基于藍牙廣播包的遙控方法
【技術領域】
[0001]本發(fā)明涉及一種基于藍牙廣播包實現(xiàn)的遙控方法。
【背景技術】
[0002]藍牙(Bluetooth)是一種新型、開放、低成本、短距離的無線連接技術,可取代短距離的電纜,實現(xiàn)話音和數(shù)據的無線傳輸。這種有效、廉價的無線連接技術可以方便地將計算機及便攜設備、PDA、移動電話、拍照手機、打印機、數(shù)碼相機、耳麥、鍵盤甚至是電腦鼠標等設備連接起來,實現(xiàn)多媒體信息的無線傳輸,在它可達到的范圍內使各種信息化移動便攜設備都能實現(xiàn)無縫資源共享。藍牙支持點對點和點對多點通信,為了實現(xiàn)點對多點的通信,發(fā)送數(shù)據采用廣播的形式,使得一定范圍內的接收者都能收到數(shù)據。
[0003]藍牙遙控器以其傳輸距離遠、功耗低、無障礙、支持更多復雜的協(xié)議等優(yōu)點而被廣泛使用,但傳統(tǒng)藍牙協(xié)議復雜,需使用較高的芯片規(guī)格才能支持,并且對碼配對或使用過程也比較復雜,而基于藍牙廣播包的遙控方法操作簡單,成本低廉,可以快速配對,在產線等特殊應用場景下還可以一對多控制,必將受到推崇。
【發(fā)明內容】
[0004]本發(fā)明要克服現(xiàn)有技術的上述缺點,提供一種基于藍牙廣播包的遙控方法,由于藍牙遙控器發(fā)送的藍牙廣播包是非指向性數(shù)據包,一定范圍內的藍牙主機都可以接收到,可以實現(xiàn)一個藍牙遙控器同時與多臺藍牙主機對碼或者控制多臺藍牙主機。
[0005]基于藍牙廣播包的遙控方法,包括如下步驟:按順序包括對碼方法、數(shù)據傳輸方法和數(shù)據處理方法,對碼連接后的遙控器可以傳輸數(shù)據到主機端,主機端接收到數(shù)據后對數(shù)據進行一系列的數(shù)據處理。
[0006]步驟一,首次使用遙控器,采用基于藍牙廣播包的對碼方法使遙控器和藍牙主機實現(xiàn)配對;所述的對碼方法的具體過程為:
[0007]1.1遙控器隨機產生一個設備ID,以藍牙廣播包的形式持續(xù)廣播一段時間,廣播包數(shù)據根據藍牙ADV_N0N_C0NN_IND的包格式打包后發(fā)送;
[0008]1.2主機端收到接收裝置上報藍牙廣播包數(shù)據后,根據該藍牙廣播包的信號強度值,判斷遙控器與主機的距離是否在要求的對碼配對范圍之內,若檢測到的信號強度符合要求,主機保存該數(shù)據包中的設備ID ;
[0009]1.3遙控器廣播完該設備ID后,后續(xù)發(fā)送的藍牙數(shù)據包都包含該ID ;后續(xù)主機端接收到遙控器的廣播包后,對不包含已配對遙控器設備ID的廣播包進行過濾,只將符合條件的廣播包數(shù)據上報給主機端上層應用,上層應用對于數(shù)據包進行處理;
[0010]步驟二,遙控器傳輸數(shù)據到主機端,所述的數(shù)據傳輸?shù)木唧w過程為:
[0011]2.1遙控器將需要發(fā)送的數(shù)據分割成適當長度的數(shù)據包,對數(shù)據進行FEC編碼,力口入對碼時發(fā)送的設備ID,并對數(shù)據包按順序進行編號;
[0012]2.2遙控器按編號順序,以廣播包的形式發(fā)送數(shù)據,廣播包數(shù)據根據藍牙ADV_NON_CONN_IND的包格式打包,為了防止數(shù)據丟包,每個包重復發(fā)送數(shù)次,重復發(fā)送機制可以是重復發(fā)送一個包數(shù)次后再重復發(fā)送下一個包數(shù)次,也可以是重復發(fā)送整個數(shù)據數(shù)次;
[0013]2.3主機端接收遙控器廣播的數(shù)據包,剔除編號相同的數(shù)據包,并利用已配對遙控器設備ID對不符合條件的數(shù)據包進行過濾,再對數(shù)據進行FEC解碼糾錯后,將數(shù)據上報到主機端的上層應用;
[0014]2.4主機上層應用對主機上報的數(shù)據進行處理。
[0015]步驟三,數(shù)據處理,數(shù)據處理的具體過程為:
[0016]3.1實時監(jiān)聽藍牙端口數(shù)據;
[0017]3.2對收到的數(shù)據按照事先約定的格式進行過濾,對于遙控器發(fā)過來的數(shù)據包具有特定的格式,可被正常過濾出來;
[0018]3.3對于過濾出來的數(shù)據,分為不同的類型,包括按鍵、鼠標、傳感器數(shù)據、語音、電池電量信息、對碼配對請求;
[0019]3.4對于不同類型的數(shù)據分別進行相應的處理,從而控制主機系統(tǒng)。
[0020]本發(fā)明的優(yōu)點是:方法操作簡單,成本低廉,可以快速配對,在產線等特殊應用場景下還可實現(xiàn)一對多控制。
【專利附圖】
【附圖說明】
[0021]圖1為本發(fā)明基于藍牙廣播包的遙控方法中對碼方法的流程圖。
[0022]圖2為本發(fā)明基于藍牙廣播包的遙控方法中數(shù)據傳輸方法的流程圖。
[0023]圖3為本發(fā)明基于藍牙廣播包的遙控方法中數(shù)據包上報到安卓JAVA層應用的數(shù)據處理流程。
[0024]圖4為本發(fā)明基于藍牙廣播包的智能遙控方法中數(shù)據包上報到后臺服務進程的數(shù)據處理流程。
【具體實施方式】
[0025]基于藍牙廣播包的遙控方法,包括如下步驟:按順序包括對碼方法、數(shù)據傳輸方法和數(shù)據處理方法,對碼連接后的遙控器可以傳輸數(shù)據到主機端,主機端接收到數(shù)據后對數(shù)據進行一系列的數(shù)據處理。
[0026]步驟一,首次使用遙控器,采用基于藍牙廣播包的對碼方法使遙控器和藍牙主機實現(xiàn)配對;所述的對碼方法的具體過程為:
[0027]1.1遙控器隨機產生一個設備ID,以藍牙廣播包的形式持續(xù)廣播一段時間,廣播包數(shù)據根據藍牙ADV_N0N_C0NN_IND的包格式打包后發(fā)送;
[0028]1.2主機端收到接收裝置上報藍牙廣播包數(shù)據后,根據該藍牙廣播包的信號強度值,判斷遙控器與主機的距離是否在要求的對碼配對范圍之內,若檢測到的信號強度符合要求,主機保存該數(shù)據包中的設備ID ;
[0029]1.3遙控器廣播完該設備ID后,后續(xù)發(fā)送的藍牙數(shù)據包都包含該ID ;后續(xù)主機端接收到遙控器的廣播包后,對不包含已配對遙控器設備ID的廣播包進行過濾,只將符合條件的廣播包數(shù)據上報給主機端上層應用,上層應用對于數(shù)據包進行處理;
[0030]步驟二,遙控器傳輸數(shù)據到主機端,所述的數(shù)據傳輸?shù)木唧w過程為:[0031]2.1遙控器將需要發(fā)送的數(shù)據分割成適當長度的數(shù)據包,對數(shù)據進行FEC編碼,力口入對碼時發(fā)送的設備ID,并對數(shù)據包按順序進行編號;
[0032]2.2遙控器按編號順序,以廣播包的形式發(fā)送數(shù)據,廣播包數(shù)據根據藍牙ADV_N0N_C0NN_IND的包格式打包,為了防止數(shù)據丟包,每個包重復發(fā)送數(shù)次,重復發(fā)送機制可以是重復發(fā)送一個包數(shù)次后再重復發(fā)送下一個包數(shù)次,也可以是重復發(fā)送整個數(shù)據數(shù)次;
[0033]2.3主機端接收遙控器廣播的數(shù)據包,剔除編號相同的數(shù)據包,并利用已配對遙控器設備ID對不符合條件的數(shù)據包進行過濾,再對數(shù)據進行FEC解碼糾錯后,將數(shù)據上報到主機端的上層應用;
[0034]2.4主機上層應用對主機上報的數(shù)據進行處理。
[0035]步驟三,數(shù)據處理,數(shù)據處理的具體過程為:
[0036]3.1實時監(jiān)聽藍牙端口數(shù)據;
[0037]3.2對收到的數(shù)據按照事先約定的格式進行過濾,對于遙控器發(fā)過來的數(shù)據包具有特定的格式,可被正常過濾出來;
[0038]3.3對于過濾出來的數(shù)據,分為不同的類型,包括按鍵、鼠標、傳感器數(shù)據、語音、電池電量信息、對碼配對請求;
[0039]3.4對于不同類型的數(shù)據分別進行相應的處理,從而控制主機系統(tǒng)。
[0040]參照圖1,本發(fā)明基于藍牙廣播包的遙控方法中的對碼方法實現(xiàn)步驟為:
[0041]初次使用智能遙控器時進行對碼操作,首先在步驟110中,用戶通過觸發(fā)機制觸發(fā)遙控器對碼,對碼觸發(fā)可以是按下單個按鍵或組合按鍵等;
[0042]接著在步驟120中,遙控器自動產生一個隨機的設備ID,由其發(fā)射裝置以廣播的形式通過藍牙持續(xù)發(fā)送一段時間,廣播包數(shù)據根據藍牙ADV_N0N_C0NN_IND的包格式打包;
[0043]接著在步驟130中,藍牙主機的接收裝置接收遙控器廣播的數(shù)據包,;
[0044]接著在步驟140中,主機端收到廣播包后,判斷該包的信號強度值,通過信號強度值判斷遙控器與主機的距離是否在要求的對碼配對范圍之內;
[0045]接著在步驟150中,若檢測到的信號強度符合要求,主機端保存該廣播包中的設備ID ;
[0046]接著在步驟160中,遙控器廣播完該設備ID后,后續(xù)廣播發(fā)送的數(shù)據都包含該ID,由其發(fā)射裝置廣播發(fā)送;
[0047]最后在步驟170中,主機端接收遙控器后續(xù)廣播發(fā)送的數(shù)據包,由于此前通過以上對碼流程,主機端上層應用已經保存了該設備ID,因此對于接收的數(shù)據包都運用該ID進行過濾,只對ID相符的數(shù)據包上報給主機端上層應用進行處理。
[0048]圖2為本發(fā)明基于藍牙廣播包的遙控方法中的數(shù)據傳輸方法的流程圖。
[0049]首先在步驟210中,遙控器將需要發(fā)送的數(shù)據分割成適當長度的數(shù)據包,利用FEC編碼技術對其編碼,加入對碼時發(fā)送的設備ID,并對數(shù)據包按順序進行編號;
[0050]接著在步驟220中,遙控器按編號順序,以廣播包的形式發(fā)送數(shù)據,廣播包的數(shù)據根據藍牙ADV_N0N_C0NN_IND的包格式打包,為了防止數(shù)據丟包,對每個包要重復發(fā)送數(shù)次,重復發(fā)送機制可以是重復發(fā)送一個包數(shù)次后再重復發(fā)送下一個包數(shù)次,也可以是重復發(fā)送整個數(shù)據數(shù)次;
[0051]接著在步驟230中,藍牙主機端接收裝置接收遙控器廣播的數(shù)據包;[0052]接著在步驟240中,主機端按照編號,對于接收裝置上報的數(shù)據包進行過濾,刪除重復項;
[0053]接著在步驟250中,主機端按照對碼時保存的設備ID,對于接收裝置上報的廣播包進行過濾,剔除不包含對碼遙控器設備ID的廣播包;
[0054]最后在步驟260中,主機端對除了數(shù)據包編號和設備ID以外的數(shù)據進行FEC解碼糾錯后,上報到上層應用,上層應用對接收的數(shù)據進行處理。
[0055]基于藍牙廣播包的遙控方法中的數(shù)據處理方法,由主機端的上層應用完成,可以將藍牙廣播包數(shù)據上報給一個具體的安卓JAVA層應用進行專用處理;也可以將藍牙廣播包上報給一個后臺服務進程進行比較通用的處理后,再轉發(fā)給某一個或多個上層應用分別處理。
[0056]圖3為是安卓JAVA層應用對藍牙廣播包數(shù)據的數(shù)據處理流程:
[0057]首先在步驟310中,主機JAVA層應用實時監(jiān)聽藍牙端口數(shù)據
[0058]其次在步驟320中,JAVA層應用對收到的數(shù)據按照事先約定的格式進行過濾,對于遙控器發(fā)過來的數(shù)據包具有特定的格式,可被正常過濾出來。
[0059]接著在步驟330中,對于過濾出來的數(shù)據,分為不同的類型,可以包括按鍵、鼠標、傳感器數(shù)據、語音、電池電量信息、對碼配對請求等。
[0060]接著在步驟340中,對于按鍵、鼠標等HID數(shù)據,由JAVA層應用通過調用安卓系統(tǒng)的相關API,將按鍵、鼠標等數(shù)據虛擬成按鍵、鼠標事件。虛擬事件可被主機系統(tǒng)的其它應用接收并響應,從而控制系統(tǒng)。
[0061]最后在步驟350中,對于其他傳感器數(shù)據、語音、電池電量信息等數(shù)據,JAVA層應用本身對其進行響應和相關處理,從而控制主機系統(tǒng)。
[0062]圖4為后臺服務進程對藍牙廣播包數(shù)據的處理方法:
[0063]首先在步驟410中,主機端運行一個后臺服務進程,用于監(jiān)聽藍牙數(shù)據
[0064]接著在步驟420中,服務進程偵聽到過濾后的數(shù)據,將數(shù)據分類為如步驟330所述的類型。
[0065]最后在步驟430中,將相應的數(shù)據寫入到對應的事件隊列里,其他上層應用在接收到事件后會進行相應的響應,從而控制主機系統(tǒng)。
【權利要求】
1.基于藍牙廣播包的遙控方法,包括如下步驟: 步驟一,首次使用遙控器,采用基于藍牙廣播包的對碼方法使遙控器和藍牙主機實現(xiàn)配對;所述的對碼方法的具體過程為: 1.1遙控器隨機產生一個設備ID,以藍牙廣播包的形式持續(xù)廣播一段時間,廣播包數(shù)據根據藍牙ADV_NON_CONN_IND的包格式打包后發(fā)送; 1.2主機端收到接收裝置上報藍牙廣播包數(shù)據后,根據該藍牙廣播包的信號強度值,判斷遙控器與主機的距離是否在要求的對碼配對范圍之內,若檢測到的信號強度符合要求,主機保存該數(shù)據包中的設備ID ; 1.3遙控器廣播完該設備ID后,后續(xù)發(fā)送的藍牙數(shù)據包都包含該ID ;后續(xù)主機端接收到遙控器的廣播包后,對不包含已配對遙控器設備ID的廣播包進行過濾,只將符合條件的廣播包數(shù)據上報給主機端上層應用,上層應用對于數(shù)據包進行處理; 步驟二,遙控器傳輸數(shù)據到主機端,所述的數(shù)據傳輸?shù)木唧w過程為: .2.1遙控器將需要發(fā)送的數(shù)據分割成適當長度的數(shù)據包,對數(shù)據進行FEC編碼,加入對碼時發(fā)送的設備ID,并對數(shù)據包按順序進行編號; . 2.2遙控器按編號順序,以廣播包的形式發(fā)送數(shù)據,廣播包數(shù)據根據藍牙ADV_NON_CONN_IND的包格式打包,為了防止數(shù)據丟包,每個包重復發(fā)送數(shù)次,重復發(fā)送機制可以是重復發(fā)送一個包數(shù)次后再重復發(fā)送下一個包數(shù)次,也可以是重復發(fā)送整個數(shù)據數(shù)次; .2.3主機端接收遙控器廣播的數(shù)據包,剔除編號相同的數(shù)據包,并利用已配對遙控器設備ID對不符合條件的數(shù)據包進行過濾,再對數(shù)據進行FEC解碼糾錯后,將數(shù)據上報到主機端的上層應用; .2.4主機上層應用對主機上報的數(shù)據進行處理。 步驟三,主機端對數(shù)據進行處理,數(shù)據處理的具體過程為: .3.1實時監(jiān)聽藍牙端口數(shù)據; .3.2對收到的數(shù)據按照事先約定的格式進行過濾,對于遙控器發(fā)過來的數(shù)據包具有特定的格式,可被正常過濾出來; .3.3對于過濾出來的數(shù)據,分為不同的類型,包括按鍵、鼠標、傳感器數(shù)據、語音、電池電量信息、對碼配對請求; .3.4對于不同類型的數(shù)據分別進行相應的處理,從而控制主機系統(tǒng)。
【文檔編號】H04B5/00GK103985234SQ201410164629
【公開日】2014年8月13日 申請日期:2014年4月23日 優(yōu)先權日:2014年4月23日
【發(fā)明者】姚嘉, 高永澤, 許偉偉, 馬琪 申請人:杭州微納科技有限公司