一種藍(lán)牙設(shè)備通信方法和裝置制造方法
【專(zhuān)利摘要】本發(fā)明涉及通信領(lǐng)域,特別是一種藍(lán)牙設(shè)備通信方法,包括:接收藍(lán)牙主設(shè)備中的第一應(yīng)用發(fā)送的數(shù)據(jù)請(qǐng)求信息,所述數(shù)據(jù)請(qǐng)求信息至少包括與數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的第一藍(lán)牙從設(shè)備的設(shè)備信息;根據(jù)數(shù)據(jù)請(qǐng)求中包含的第一藍(lán)牙從設(shè)備的設(shè)備信息以及保存的數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備的對(duì)應(yīng)關(guān)系判斷是否存在與第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道;當(dāng)判斷存在與第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則利用數(shù)據(jù)連接通道實(shí)現(xiàn)藍(lán)牙主設(shè)備中的第一應(yīng)用與第一藍(lán)牙從設(shè)備間的數(shù)據(jù)通信;當(dāng)判斷不存在與第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則與第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道,并保存建立的數(shù)據(jù)連接通道與第一藍(lán)牙從設(shè)備的對(duì)應(yīng)關(guān)系。本發(fā)明可有效提高藍(lán)牙設(shè)備間通信的效率。
【專(zhuān)利說(shuō)明】一種藍(lán)牙設(shè)備通信方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,特別是涉及一種藍(lán)牙設(shè)備通信方法和裝置。
【背景技術(shù)】
[0002]藍(lán)牙(Blue tooth)是一種支持設(shè)備間進(jìn)行短距離通信的無(wú)線通信技術(shù),在無(wú)線通信領(lǐng)域得到了廣泛的應(yīng)用。現(xiàn)有技術(shù)中,兩個(gè)支持藍(lán)牙技術(shù)的設(shè)備間可以通過(guò)建立無(wú)線通信通道以實(shí)現(xiàn)數(shù)據(jù)傳輸。藍(lán)牙技術(shù)可以有效地簡(jiǎn)化通信終端設(shè)備間的通信,使得數(shù)據(jù)傳輸更加快捷、高效。
[0003]在現(xiàn)有技術(shù)提供的方法中,兩個(gè)支持藍(lán)牙技術(shù)的設(shè)備例如包括藍(lán)牙主設(shè)備和藍(lán)牙從設(shè)備建立無(wú)線通信通道的過(guò)程為:(1)發(fā)現(xiàn)配對(duì)階段,在此階段需要完成藍(lán)牙主設(shè)備和藍(lán)牙從設(shè)備之間的信任認(rèn)證。具體過(guò)程為:藍(lán)牙主設(shè)備和藍(lán)牙從設(shè)備的藍(lán)牙功能開(kāi)啟后,藍(lán)牙主設(shè)備掃描開(kāi)啟藍(lán)牙功能的設(shè)備,掃描完畢后生成設(shè)備列表,由用戶(hù)在設(shè)備列表中選擇一個(gè)設(shè)備作為藍(lán)牙從設(shè)備。然后,藍(lán)牙主設(shè)備向藍(lán)牙從設(shè)備發(fā)送配對(duì)請(qǐng)求,在配對(duì)請(qǐng)求中攜帶配對(duì)密鑰,當(dāng)藍(lán)牙從設(shè)備確定配對(duì)密鑰正確時(shí),則反饋配對(duì)成功響應(yīng)消息至藍(lán)牙主設(shè)備以完成藍(lán)牙配對(duì)。(2)連接通信階段,在此階段完成藍(lán)牙主設(shè)備和藍(lán)牙從設(shè)備間的通信連接和數(shù)據(jù)傳輸。具體過(guò)程為:藍(lán)牙主設(shè)備中的應(yīng)用程序向藍(lán)牙從設(shè)備發(fā)送連接建立請(qǐng)求消息,藍(lán)牙從設(shè)備返回連接響應(yīng)消息以建立通信通道。而后,藍(lán)牙從設(shè)備利用已建立的通信通道向藍(lán)牙主設(shè)備中的應(yīng)用程序發(fā)送數(shù)據(jù)以完成數(shù)據(jù)交互。
[0004]發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中發(fā)現(xiàn),現(xiàn)有技術(shù)存在的藍(lán)牙設(shè)備間建立無(wú)線通信信道的方法,需要用戶(hù)執(zhí)行繁瑣的操作才能完成藍(lán)牙設(shè)備的配對(duì)和連接,效率較低。此外,無(wú)線通信連接的建立與具體的應(yīng)用程序相對(duì)應(yīng),應(yīng)用程序退出時(shí),連接自動(dòng)中斷,而應(yīng)用程序重新啟動(dòng)時(shí),則需要重新執(zhí)行建立連接操作,操作繁瑣,通信效率較低。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供了一種藍(lán)牙設(shè)備通信方法和裝置,可以有效提高藍(lán)牙設(shè)備間通信的效率,簡(jiǎn)化操作、易于實(shí)現(xiàn)。
[0006]技術(shù)方案如下:
[0007]根據(jù)本發(fā)明實(shí)施例的第一方面,公開(kāi)了一種藍(lán)牙設(shè)備通信方法,所述方法包括:
[0008]接收藍(lán)牙主設(shè)備中的第一應(yīng)用發(fā)送的數(shù)據(jù)請(qǐng)求信息,所述數(shù)據(jù)請(qǐng)求信息至少包括與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的第一藍(lán)牙從設(shè)備的設(shè)備信息;
[0009]根據(jù)所述數(shù)據(jù)請(qǐng)求中包含的第一藍(lán)牙從設(shè)備的設(shè)備信息以及保存的數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系判斷是否存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道;
[0010]當(dāng)判斷存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則利用所述數(shù)據(jù)連接通道實(shí)現(xiàn)所述藍(lán)牙主設(shè)備中的第一應(yīng)用與所述第一藍(lán)牙從設(shè)備間的數(shù)據(jù)通信;
[0011]當(dāng)判斷不存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則與所述第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道,并保存建立的所述數(shù)據(jù)連接通道與所述第一藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系。
[0012]進(jìn)一步的,所述與所述第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道包括:
[0013]判斷是否已與所述第一藍(lán)牙從設(shè)備進(jìn)行配對(duì)操作;
[0014]當(dāng)判斷已與所述第一藍(lán)牙從設(shè)備進(jìn)行配對(duì)操作時(shí),向所述第一藍(lán)牙從設(shè)備發(fā)送通信連接請(qǐng)求以與所述第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道。
[0015]進(jìn)一步的,所述方法還包括:
[0016]當(dāng)判斷未與所述第一藍(lán)牙從設(shè)備進(jìn)行配對(duì)操作時(shí),則根據(jù)所述第一藍(lán)牙從設(shè)備的設(shè)備信息判斷是否保存了與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信息;所述通信數(shù)據(jù)信息至少包括配對(duì)密鑰信息;
[0017]當(dāng)判斷保存了與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信息時(shí),利用所述通信數(shù)據(jù)信息中包含的所述配對(duì)密鑰信息向所述第一藍(lán)牙從設(shè)備發(fā)送配對(duì)請(qǐng)求消息;
[0018]當(dāng)接收到所述第一藍(lán)牙從設(shè)備發(fā)送的配對(duì)響應(yīng)消息時(shí),向所述第一藍(lán)牙從設(shè)備發(fā)送通信連接請(qǐng)求以與所述第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道。
[0019]進(jìn)一步的,所述方法還包括:
[0020]當(dāng)判斷未保存與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信息時(shí),顯示第一提示信息;其中,所述第一提示信息用于提示用戶(hù)輸入與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信肩、O
[0021]進(jìn)一步的,所述方法還包括:
[0022]保存所述數(shù)據(jù)連接通道的引用計(jì)數(shù),所述引用計(jì)數(shù)用于表明所述數(shù)據(jù)連接通道對(duì)應(yīng)的應(yīng)用的數(shù)量;
[0023]當(dāng)有新的應(yīng)用使用所述數(shù)據(jù)連接通道時(shí),所述數(shù)據(jù)連接通道的引用計(jì)數(shù)加I ;
[0024]當(dāng)有與所述數(shù)據(jù)連接通道對(duì)應(yīng)的應(yīng)用退出時(shí),所述數(shù)據(jù)連接通道的引用計(jì)數(shù)減I ;
[0025]當(dāng)所述數(shù)據(jù)連接通道的引用計(jì)數(shù)為O且所述數(shù)據(jù)連接通道的引用計(jì)數(shù)為O的狀態(tài)超過(guò)預(yù)設(shè)的空閑持續(xù)時(shí)間時(shí),中斷所述數(shù)據(jù)連接通道,釋放與所述數(shù)據(jù)連接通道對(duì)應(yīng)的系統(tǒng)資源,解除與所述藍(lán)牙從設(shè)備的通信連接。
[0026]進(jìn)一步的,所述方法還包括:
[0027]當(dāng)藍(lán)牙從設(shè)備處于不可連接狀態(tài)時(shí),中斷與所述藍(lán)牙從設(shè)備建立的數(shù)據(jù)連接通道;
[0028]顯示第二提示信息,所述第二提示信息用于提示用戶(hù)數(shù)據(jù)連接通道的狀態(tài)。
[0029]進(jìn)一步的,所述方法還包括:
[0030]當(dāng)中斷與所述藍(lán)牙從設(shè)備的數(shù)據(jù)連接通道時(shí),保存所述數(shù)據(jù)連接通道的引用計(jì)數(shù)信息以及連接持續(xù)時(shí)間信息;
[0031]當(dāng)再次建立與所述藍(lán)牙從設(shè)備的數(shù)據(jù)連接通道時(shí),根據(jù)上一次保存的所述數(shù)據(jù)連接通道的引用計(jì)數(shù)信息以及連接持續(xù)時(shí)間信息設(shè)置空閑持續(xù)時(shí)間。
[0032]進(jìn)一步的,所述利用所述數(shù)據(jù)連接通道實(shí)現(xiàn)所述藍(lán)牙主設(shè)備中的第一應(yīng)用與所述第一藍(lán)牙從設(shè)備間的數(shù)據(jù)通信包括:
[0033]接收所述第一藍(lán)牙從設(shè)備通過(guò)所述數(shù)據(jù)連接通道發(fā)送的應(yīng)用數(shù)據(jù);[0034]對(duì)所述應(yīng)用數(shù)據(jù)進(jìn)行解析,并將解析后的應(yīng)用數(shù)據(jù)發(fā)送至藍(lán)牙主設(shè)備中對(duì)應(yīng)的應(yīng)用。
[0035]進(jìn)一步的,所述對(duì)所述應(yīng)用數(shù)據(jù)進(jìn)行解析包括:
[0036]確定與所述應(yīng)用數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)連接通道,根據(jù)保存的數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系確定與所述數(shù)據(jù)連接通道對(duì)應(yīng)的藍(lán)牙從設(shè)備;
[0037]獲取與所述藍(lán)牙從設(shè)備對(duì)應(yīng)的預(yù)置的通信數(shù)據(jù)信息;所述預(yù)置的通信數(shù)據(jù)信息包括數(shù)據(jù)格式信息;
[0038]利用所述數(shù)據(jù)格式信息對(duì)所述應(yīng)用數(shù)據(jù)進(jìn)行解析將其轉(zhuǎn)換成預(yù)設(shè)的數(shù)據(jù)類(lèi)型。
[0039]進(jìn)一步的,在接收所述第一藍(lán)牙從設(shè)備通過(guò)所述數(shù)據(jù)連接通道發(fā)送的應(yīng)用數(shù)據(jù)之后、在對(duì)所述應(yīng)用數(shù)據(jù)進(jìn)行解析之前,所述方法還包括:
[0040]利用預(yù)先保存的通信數(shù)據(jù)信息對(duì)所述應(yīng)用數(shù)據(jù)進(jìn)行長(zhǎng)度校驗(yàn)和/或校驗(yàn)和校驗(yàn);其中,所述通信數(shù)據(jù)信息包括校驗(yàn)信息;
[0041]當(dāng)校驗(yàn)錯(cuò)誤時(shí),向所述第一藍(lán)牙從設(shè)備發(fā)送數(shù)據(jù)重發(fā)請(qǐng)求;
[0042]當(dāng)校驗(yàn)正確時(shí),進(jìn)入對(duì)所述應(yīng)用數(shù)據(jù)進(jìn)行解析的步驟。
[0043]進(jìn)一步的,所述利用預(yù)先保存通信數(shù)據(jù)信息對(duì)所述應(yīng)用數(shù)據(jù)進(jìn)行校驗(yàn)和校驗(yàn),具體包括:
[0044]利用校驗(yàn)信息計(jì)算校驗(yàn)和,將計(jì)算的校驗(yàn)和與預(yù)先保存的校驗(yàn)和值進(jìn)行比較,如果相同,則確定校驗(yàn)正確;或者
[0045]從接收的應(yīng)用數(shù)據(jù)中提取所述藍(lán)牙從設(shè)備根據(jù)數(shù)據(jù)內(nèi)容生成的校驗(yàn)和;
[0046]利用校驗(yàn)信息計(jì)算校驗(yàn)和,將計(jì)算的校驗(yàn)和與提取的校驗(yàn)和進(jìn)行比較,如果相同,則確定校驗(yàn)正確。
[0047]進(jìn)一步的,在接收藍(lán)牙主設(shè)備中的第一應(yīng)用發(fā)送的數(shù)據(jù)請(qǐng)求信息之后,所述方法還包括:
[0048]判斷是否存在與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的訂閱信息;其中,所述訂閱信息包括應(yīng)用信息以及藍(lán)牙從設(shè)備的設(shè)備信息;
[0049]如果不存在與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的訂閱信息,則保存與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的訂閱信息。
[0050]進(jìn)一步的,所述將解析后的應(yīng)用數(shù)據(jù)發(fā)送至藍(lán)牙主設(shè)備中對(duì)應(yīng)的應(yīng)用包括:
[0051]利用預(yù)先保存的訂閱信息,確定與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的應(yīng)用信息;
[0052]利用所述應(yīng)用信息確定目標(biāo)應(yīng)用,并向確定的目標(biāo)應(yīng)用發(fā)送解析后的應(yīng)用數(shù)據(jù)。
[0053]進(jìn)一步的,所述方法還包括:
[0054]接收藍(lán)牙主設(shè)備中的第二應(yīng)用發(fā)送的數(shù)據(jù)請(qǐng)求信息,所述數(shù)據(jù)請(qǐng)求信息至少包括與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的第一藍(lán)牙從設(shè)備的設(shè)備信息;
[0055]根據(jù)所述數(shù)據(jù)請(qǐng)求中包含的第一藍(lán)牙從設(shè)備的設(shè)備信息以及保存的數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系判斷是否存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道;
[0056]當(dāng)判斷存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則利用所述數(shù)據(jù)連接通道實(shí)現(xiàn)所述藍(lán)牙主設(shè)備中的第二應(yīng)用與所述第一藍(lán)牙從設(shè)備間的數(shù)據(jù)通信;
[0057]當(dāng)判斷不存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則與所述第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道,并保存建立的所述數(shù)據(jù)連接通道與所述第一藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系。
[0058]根據(jù)本發(fā)明實(shí)施例的第二方面,公開(kāi)了 一種藍(lán)牙設(shè)備通信裝置,所述裝置包括:
[0059]接收模塊,用于接收藍(lán)牙主設(shè)備中的第一應(yīng)用發(fā)送的數(shù)據(jù)請(qǐng)求信息,所述數(shù)據(jù)請(qǐng)求信息至少包括與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的第一藍(lán)牙從設(shè)備的設(shè)備信息;
[0060]第一判斷模塊,用于根據(jù)所述數(shù)據(jù)請(qǐng)求中包含的第一藍(lán)牙從設(shè)備的設(shè)備信息以及保存的數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系判斷是否存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道;
[0061]數(shù)據(jù)通信模塊,用于當(dāng)判斷存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則利用所述數(shù)據(jù)連接通道實(shí)現(xiàn)所述藍(lán)牙主設(shè)備中的第一應(yīng)用與所述第一藍(lán)牙從設(shè)備間的數(shù)據(jù)通信;
[0062]通信連接建立模塊,用于當(dāng)判斷不存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則與所述第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道;
[0063]通信連接管理模塊,用于保存建立的所述數(shù)據(jù)連接通道與所述第一藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系
[0064]本發(fā)明實(shí)施例能夠達(dá)到的有益效果為:本發(fā)明提供的方法,在接收到藍(lán)牙主設(shè)備中的第一應(yīng)用發(fā)送的數(shù)據(jù)請(qǐng)求信息之后,根據(jù)所述數(shù)據(jù)請(qǐng)求中包含的第一藍(lán)牙從設(shè)備的設(shè)備信息以及保存的數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系判斷是否存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道;當(dāng)判斷存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則利用所述數(shù)據(jù)連接通道實(shí)現(xiàn)所述藍(lán)牙主設(shè)備中的第一應(yīng)用與所述第一藍(lán)牙從設(shè)備間的數(shù)據(jù)通信;當(dāng)判斷不存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則與所述第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道,并保存建立的所述數(shù)據(jù)連接通道與所述第一藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系。
[0065]由于本發(fā)明中建立數(shù)據(jù)連接通道后即保存數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備的對(duì)應(yīng)關(guān)系,當(dāng)請(qǐng)求的數(shù)據(jù)對(duì)象對(duì)應(yīng)的藍(lán)牙從設(shè)備存在對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則直接利用所述數(shù)據(jù)連接通道傳輸應(yīng)用數(shù)據(jù),而無(wú)需重新建立數(shù)據(jù)連接通道,有效提高了通信效率。
[0066]此外,由于數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備具有一一對(duì)應(yīng)關(guān)系,當(dāng)多個(gè)應(yīng)用對(duì)應(yīng)的目標(biāo)設(shè)備為同一藍(lán)牙從設(shè)備時(shí),所述數(shù)據(jù)連接通道可以被多個(gè)應(yīng)用同時(shí)使用,有效提高了數(shù)據(jù)連接通道的利用率,節(jié)省了通信資源,提高了通信效率。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0067]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0068]圖1為本發(fā)明提供的藍(lán)牙設(shè)備通信方法第一實(shí)施例示意圖;
[0069]圖2為本發(fā)明提供的藍(lán)牙設(shè)備通信方法第二實(shí)施例示意圖;
[0070]圖3為本發(fā)明提供的藍(lán)牙設(shè)備通信方法第三實(shí)施例示意圖;
[0071]圖4為本發(fā)明實(shí)施例提供的藍(lán)牙連接管理示意圖;[0072]圖5為本發(fā)明實(shí)施例提供的數(shù)據(jù)解析過(guò)程示意圖;
[0073]圖6為本發(fā)明實(shí)施例提供的數(shù)據(jù)分發(fā)過(guò)程示意圖;
[0074]圖7為本發(fā)明提供的藍(lán)牙設(shè)備通信裝置示意圖;
[0075]圖8為本發(fā)明應(yīng)用場(chǎng)景示意圖。
【具體實(shí)施方式】
[0076]本發(fā)明實(shí)施例提供了一種藍(lán)牙設(shè)備通信方法和裝置,可以有效提高藍(lán)牙設(shè)備間通信的效率,簡(jiǎn)化操作、易于實(shí)現(xiàn)。
[0077]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明中的技術(shù)方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
[0078]參見(jiàn)圖1,為本發(fā)明提供的藍(lán)牙設(shè)備通信方法第一實(shí)施例示意圖。
[0079]本發(fā)明實(shí)施例提供的方法可以應(yīng)用于藍(lán)牙設(shè)備通信裝置,所述藍(lán)牙設(shè)備通信裝置可以應(yīng)用于具有藍(lán)牙功能的藍(lán)牙設(shè)備中。在本發(fā)明實(shí)施例中,將藍(lán)牙設(shè)備分為藍(lán)牙主設(shè)備和藍(lán)牙從設(shè)備,其中,藍(lán)牙主設(shè)備為發(fā)起數(shù)據(jù)請(qǐng)求以及連接的設(shè)備,藍(lán)牙從設(shè)備為接收數(shù)據(jù)請(qǐng)求的設(shè)備。藍(lán)牙主設(shè)備可以具有多個(gè)應(yīng)用。
[0080]S101,接收藍(lán)牙主設(shè)備中的第一應(yīng)用發(fā)送的數(shù)據(jù)請(qǐng)求信息,所述數(shù)據(jù)請(qǐng)求信息至少包括與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的第一藍(lán)牙從設(shè)備的設(shè)備信息。
[0081]當(dāng)藍(lán)牙從設(shè)備中的應(yīng)用需要請(qǐng)求連接藍(lán)牙從設(shè)備以進(jìn)行數(shù)據(jù)傳輸時(shí),則發(fā)送數(shù)據(jù)請(qǐng)求信息。由藍(lán)牙設(shè)備通信裝置接收藍(lán)牙主設(shè)備中的第一應(yīng)用發(fā)送的數(shù)據(jù)請(qǐng)求信息。其中,所述數(shù)據(jù)請(qǐng)求信息至少包括與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的第一藍(lán)牙從設(shè)備的設(shè)備信息。具體實(shí)現(xiàn)時(shí),數(shù)據(jù)請(qǐng)求信息可以包括藍(lán)牙主設(shè)備的應(yīng)用信息和藍(lán)牙從設(shè)備的信息。其中,藍(lán)牙主設(shè)備的應(yīng)用信息包括應(yīng)用名稱(chēng)等。藍(lán)牙從設(shè)備的信息可以包括設(shè)備名稱(chēng)、設(shè)備型號(hào)、設(shè)備提供商信息、設(shè)備標(biāo)識(shí)、設(shè)備地址中的一種或多種。
[0082]S102,根據(jù)所述數(shù)據(jù)請(qǐng)求中包含的第一藍(lán)牙從設(shè)備的設(shè)備信息以及保存的數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系判斷是否存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道。
[0083]在本發(fā)明實(shí)施例具體實(shí)現(xiàn)時(shí),預(yù)先保存了已經(jīng)建立的數(shù)據(jù)連接通道的信息。具體地,保存了已經(jīng)建立的數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備的對(duì)應(yīng)關(guān)系。其中,數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備具有一一對(duì)應(yīng)的關(guān)系。不同于現(xiàn)有技術(shù)中應(yīng)用軟件或應(yīng)用程序與數(shù)據(jù)連接通道具有的一一對(duì)應(yīng)關(guān)系,本發(fā)明實(shí)施例中,應(yīng)用軟件與數(shù)據(jù)連接通道可以是一對(duì)多或者多對(duì)一的關(guān)系。也就是說(shuō),當(dāng)多個(gè)應(yīng)用請(qǐng)求數(shù)據(jù)的對(duì)象是同一藍(lán)牙從設(shè)備時(shí),可以是多個(gè)應(yīng)用軟件使用同一數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備進(jìn)行數(shù)據(jù)通信,即多個(gè)應(yīng)用可以復(fù)用同一數(shù)據(jù)連接通道,而無(wú)需每個(gè)應(yīng)用均建立一個(gè)數(shù)據(jù)傳輸通道,有效提高了通信效率。當(dāng)然,本領(lǐng)域技術(shù)人員可以理解的是,本發(fā)明中,當(dāng)一個(gè)應(yīng)用請(qǐng)求數(shù)據(jù)的對(duì)象是多個(gè)不同的藍(lán)牙從設(shè)備時(shí),也可以為一個(gè)應(yīng)用建立不同的數(shù)據(jù)連接通道以用于與不同的藍(lán)牙從設(shè)備進(jìn)行數(shù)據(jù)傳輸。而這些建立的數(shù)據(jù)連接通道還可以被其他應(yīng)用復(fù)用。由此,本發(fā)明的方法由于保存了已經(jīng)建立的數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備的對(duì)應(yīng)關(guān)系,不同于現(xiàn)有技術(shù)只能支持單通道數(shù)據(jù)傳輸?shù)姆绞?,本發(fā)明可以實(shí)現(xiàn)藍(lán)牙設(shè)備多通道數(shù)據(jù)傳輸與通信,有效提高了數(shù)據(jù)通信效率。
[0084]在接收到藍(lán)牙主設(shè)備中的第一應(yīng)用發(fā)送的數(shù)據(jù)請(qǐng)求信息后,即獲取所述數(shù)據(jù)請(qǐng)求消息包含的藍(lán)牙從設(shè)備信息,獲取保存的數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備的對(duì)應(yīng)關(guān)系,判斷是否存在與所述藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道。
[0085]S103,當(dāng)判斷存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則利用所述數(shù)據(jù)連接通道實(shí)現(xiàn)所述藍(lán)牙主設(shè)備中的第一應(yīng)用與所述第一藍(lán)牙從設(shè)備間的數(shù)據(jù)通信。
[0086]具體實(shí)現(xiàn)時(shí),利用所述數(shù)據(jù)連接通道實(shí)現(xiàn)所述藍(lán)牙主設(shè)備中的第一應(yīng)用與所述第一藍(lán)牙從設(shè)備間的數(shù)據(jù)通信具體通過(guò)以下步驟實(shí)現(xiàn):
[0087]S103A,接收所述第一藍(lán)牙從設(shè)備通過(guò)所述數(shù)據(jù)連接通道發(fā)送的應(yīng)用數(shù)據(jù)。
[0088]S103B,對(duì)所述應(yīng)用數(shù)據(jù)進(jìn)行解析。
[0089]在現(xiàn)有技術(shù)中,由藍(lán)牙從設(shè)備傳輸?shù)膽?yīng)用數(shù)據(jù)由藍(lán)牙主設(shè)備中的應(yīng)用程序進(jìn)行解析。這樣,應(yīng)用程序的代碼需要依賴(lài)藍(lán)牙從設(shè)備傳輸?shù)膽?yīng)用數(shù)據(jù)的協(xié)議格式,不利于代碼的復(fù)用。如果藍(lán)牙從設(shè)備的型號(hào)或者應(yīng)用數(shù)據(jù)格式發(fā)生變化時(shí),藍(lán)牙主設(shè)備的應(yīng)用程序需要重新編寫(xiě)解析程序與代碼來(lái)適應(yīng)上述變化,增加了代碼的維護(hù)成本,通用性不強(qiáng)。
[0090]在本發(fā)明實(shí)施例中,由藍(lán)牙設(shè)備通信裝置進(jìn)行數(shù)據(jù)解析,然后將解析后的數(shù)據(jù)發(fā)送給藍(lán)牙主設(shè)備中的對(duì)應(yīng)應(yīng)用。在一種可能的實(shí)現(xiàn)方式中,藍(lán)牙設(shè)備通信裝置設(shè)置流數(shù)據(jù)解析模塊,利用流數(shù)據(jù)解析模塊進(jìn)行數(shù)據(jù)解析。這樣,藍(lán)牙主設(shè)備的應(yīng)用程序無(wú)需關(guān)心數(shù)據(jù)解析過(guò)程,降低了應(yīng)用程序代碼的復(fù)雜度。具體實(shí)現(xiàn)時(shí),藍(lán)牙設(shè)備通信裝置預(yù)先保存了通信數(shù)據(jù)信息。其中,通信數(shù)據(jù)信息是與藍(lán)牙從設(shè)備信息對(duì)應(yīng)的。通信數(shù)據(jù)信息包含數(shù)據(jù)格式信息用于進(jìn)行應(yīng)用數(shù)據(jù)解析。具體實(shí)現(xiàn)時(shí),藍(lán)牙設(shè)備之間傳輸?shù)臄?shù)據(jù)為二進(jìn)制數(shù)據(jù)流,數(shù)據(jù)格式信息用于定義二進(jìn)制數(shù)據(jù)流的格式,可以包括數(shù)據(jù)名稱(chēng)、數(shù)據(jù)類(lèi)型、起始字節(jié)位、數(shù)據(jù)字節(jié)長(zhǎng)度、數(shù)據(jù)重復(fù)次數(shù)等信息。
[0091]當(dāng)藍(lán)牙設(shè)備通信裝置接收到藍(lán)牙從設(shè)備傳輸?shù)膽?yīng)用數(shù)據(jù)后,則確定與所述藍(lán)牙從設(shè)備傳輸?shù)臄?shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)連接通道,根據(jù)保存的數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備的對(duì)應(yīng)關(guān)系確定與所述數(shù)據(jù)連接通道對(duì)應(yīng)的藍(lán)牙從設(shè)備,即確定數(shù)據(jù)的來(lái)源。然后,再獲取與所述藍(lán)牙從設(shè)備對(duì)應(yīng)的預(yù)置的通信數(shù)據(jù)信息,利用通信數(shù)據(jù)信息中包含的數(shù)據(jù)格式信息對(duì)應(yīng)用數(shù)據(jù)進(jìn)行解析將其轉(zhuǎn)換成預(yù)設(shè)的數(shù)據(jù)類(lèi)型。具體地,藍(lán)牙設(shè)備通信裝置根據(jù)通信數(shù)據(jù)信息中定義的數(shù)據(jù)格式,分解二進(jìn)制流數(shù)據(jù),然后把分解結(jié)果轉(zhuǎn)換成數(shù)據(jù)格式中定義的用戶(hù)(即應(yīng)用)可識(shí)別的數(shù)據(jù)類(lèi)型。當(dāng)有多個(gè)二進(jìn)制流同時(shí)請(qǐng)求解析時(shí),本發(fā)明中的流數(shù)據(jù)解析模塊會(huì)為每個(gè)請(qǐng)求啟動(dòng)一個(gè)工作線程完成應(yīng)用數(shù)據(jù)解析操作。
[0092]S103C,將解析后的應(yīng)用數(shù)據(jù)發(fā)送至藍(lán)牙主設(shè)備中對(duì)應(yīng)的應(yīng)用。
[0093]在本發(fā)明實(shí)施例中,預(yù)先保存了訂閱信息。其中,訂閱信息與數(shù)據(jù)請(qǐng)求相對(duì)應(yīng),其包含了應(yīng)用信息以及藍(lán)牙從設(shè)備的設(shè)備信息。應(yīng)用信息至少包含應(yīng)用的名稱(chēng)。當(dāng)首次接受到藍(lán)牙主設(shè)備的應(yīng)用發(fā)送的數(shù)據(jù)請(qǐng)求時(shí),即保存訂閱信息。
[0094]當(dāng)藍(lán)牙設(shè)備通信裝置完成應(yīng)用數(shù)據(jù)解析后,根據(jù)預(yù)先保存的訂閱信息,查找與所述應(yīng)用數(shù)據(jù)對(duì)應(yīng)的藍(lán)牙從設(shè)備的訂閱信息,以確定所述信息被哪些應(yīng)用訂閱,即確定與所述藍(lán)牙從設(shè)備對(duì)應(yīng)的應(yīng)用信息,然后利用應(yīng)用信息確定目標(biāo)應(yīng)用,將解析后的應(yīng)用數(shù)據(jù)發(fā)送給目標(biāo)應(yīng)用。這樣,即實(shí)現(xiàn)了應(yīng)用數(shù)據(jù)的分發(fā),并可以實(shí)現(xiàn)多個(gè)通道的定向發(fā)布。[0095]S104,當(dāng)判斷不存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則與所述第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道,并保存建立的所述數(shù)據(jù)連接通道與所述第一藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系。
[0096]具體實(shí)現(xiàn)時(shí),步驟S104具體可以包括:
[0097]S104A,當(dāng)判斷不存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),判斷是否已與所述第一藍(lán)牙從設(shè)備進(jìn)行配對(duì)操作,如果是,進(jìn)入步驟S104G ;如果否,進(jìn)入步驟S104B。
[0098]S104B,當(dāng)判斷未與所述第一藍(lán)牙從設(shè)備進(jìn)行配對(duì)操作時(shí),則根據(jù)所述第一藍(lán)牙從設(shè)備的設(shè)備信息判斷是否保存了與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信息。其中,通信數(shù)據(jù)信息至少包括配對(duì)密鑰信息。如果是,進(jìn)入步驟S104E ;如果否,進(jìn)入步驟S104C。
[0099]S104C,當(dāng)判斷未保存與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信息時(shí),顯示第一提示信息;其中,所述第一提示信息用于提示用戶(hù)輸入與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信息。
[0100]S104D,接收輸入的通信數(shù)據(jù)信息,進(jìn)入步驟S 104E。
[0101]S104E,利用所述通信數(shù)據(jù)信息中包含的所述配對(duì)密鑰信息向所述第一藍(lán)牙從設(shè)備發(fā)送配對(duì)請(qǐng)求消息。
[0102]S104F,接收所述第一藍(lán)牙從設(shè)備發(fā)送的配對(duì)響應(yīng)消息。
[0103]S104G,向所述第一藍(lán)牙從設(shè)備發(fā)送通信連接請(qǐng)求以與所述第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道。
[0104]S104H,保存建立的所述數(shù)據(jù)連接通道與所述第一藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系。
[0105]由此,即建立了藍(lán)牙從設(shè)備與藍(lán)牙主設(shè)備之間的應(yīng)用的數(shù)據(jù)連接通道。
[0106]進(jìn)一步的,在本發(fā)明實(shí)施例的方法中,還進(jìn)一步包括:保存已經(jīng)建立的數(shù)據(jù)連接通道的引用計(jì)數(shù),所述引用計(jì)數(shù)用于表明所述數(shù)據(jù)連接通道對(duì)應(yīng)的應(yīng)用的數(shù)量;當(dāng)有新的應(yīng)用使用所述數(shù)據(jù)連接通道時(shí),所述數(shù)據(jù)連接通道的引用計(jì)數(shù)加I ;當(dāng)有與所述數(shù)據(jù)連接通道對(duì)應(yīng)的應(yīng)用退出時(shí),所述數(shù)據(jù)連接通道的引用計(jì)數(shù)減I ;當(dāng)所述數(shù)據(jù)連接通道的引用計(jì)數(shù)為O且所述數(shù)據(jù)連接通道的引用計(jì)數(shù)為O的狀態(tài)超過(guò)預(yù)設(shè)的空閑持續(xù)時(shí)間時(shí),中斷所述數(shù)據(jù)連接通道,釋放與所述數(shù)據(jù)連接通道對(duì)應(yīng)的系統(tǒng)資源,解除與所述藍(lán)牙從設(shè)備的通信連接。
[0107]在本發(fā)明實(shí)施例中,所述方法進(jìn)一步包括:當(dāng)藍(lán)牙從設(shè)備處于不可連接狀態(tài)時(shí),中斷與所述藍(lán)牙從設(shè)備建立的數(shù)據(jù)連接通道;顯示第二提示信息,所述第二提示信息用于提示用戶(hù)數(shù)據(jù)連接通道的狀態(tài)。其中,藍(lán)牙從設(shè)備處于不可連接狀態(tài)包括:藍(lán)牙從設(shè)備的藍(lán)牙信號(hào)關(guān)閉、藍(lán)牙從設(shè)備超出連接范圍、藍(lán)牙從設(shè)備處于非工作狀態(tài)等。
[0108]在本發(fā)明實(shí)施例中,所述方法進(jìn)一步包括:當(dāng)中斷與所述藍(lán)牙從設(shè)備的數(shù)據(jù)連接通道時(shí),保存所述數(shù)據(jù)連接通道的引用計(jì)數(shù)信息以及連接持續(xù)時(shí)間信息;當(dāng)再次建立與所述藍(lán)牙從設(shè)備的數(shù)據(jù)連接通道時(shí),根據(jù)上一次保存的所述數(shù)據(jù)連接通道的引用計(jì)數(shù)信息以及連接持續(xù)時(shí)間信息設(shè)置空閑持續(xù)時(shí)間。這樣,可以根據(jù)歷史應(yīng)用對(duì)連接的使用情況,動(dòng)態(tài)調(diào)整空閑持續(xù)時(shí)間,以提供更合適的資源配置,為用戶(hù)提供更好的體驗(yàn)。
[0109]在本發(fā)明第一實(shí)施例中,由于本發(fā)明中建立數(shù)據(jù)連接通道后即保存數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備的對(duì)應(yīng)關(guān)系,當(dāng)請(qǐng)求的數(shù)據(jù)對(duì)象對(duì)應(yīng)的藍(lán)牙從設(shè)備存在對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則直接利用所述數(shù)據(jù)連接通道傳輸應(yīng)用數(shù)據(jù),而無(wú)需重新建立數(shù)據(jù)連接通道,有效提高了通信效率。此外,由于數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備具有一一對(duì)應(yīng)關(guān)系,當(dāng)多個(gè)應(yīng)用對(duì)應(yīng)的目標(biāo)設(shè)備為同一藍(lán)牙從設(shè)備時(shí),所述數(shù)據(jù)連接通道可以被多個(gè)應(yīng)用同時(shí)使用,有效提高了數(shù)據(jù)連接通道的利用率,節(jié)省了通信資源,提高了通信效率。
[0110]參見(jiàn)圖2,為本發(fā)明提供的藍(lán)牙設(shè)備通信方法第二實(shí)施例示意圖。
[0111]圖2所示實(shí)施例為基于圖1所示實(shí)施例中的又一種實(shí)現(xiàn)。
[0112]在一種可能的實(shí)現(xiàn)方式中,本發(fā)明提供的方法進(jìn)一步包括:
[0113]S201,接收藍(lán)牙主設(shè)備中的第二應(yīng)用發(fā)送的第二數(shù)據(jù)請(qǐng)求信息,所述第二數(shù)據(jù)請(qǐng)求信息至少包括與所述第二數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的第一藍(lán)牙從設(shè)備的設(shè)備信息。
[0114]S202,根據(jù)所述第二數(shù)據(jù)請(qǐng)求中包含的第一藍(lán)牙從設(shè)備的設(shè)備信息以及保存的數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系判斷是否存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道。
[0115]S203,當(dāng)判斷存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則利用所述數(shù)據(jù)連接通道實(shí)現(xiàn)所述藍(lán)牙主設(shè)備中的第二應(yīng)用與所述第一藍(lán)牙從設(shè)備間的數(shù)據(jù)通信。
[0116]S204,當(dāng)判斷不存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則與所述第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道,并保存建立的所述數(shù)據(jù)連接通道與所述第一藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系。
[0117]步驟S201至S204的具體實(shí)現(xiàn)可以參照步驟SlOl至S104的實(shí)現(xiàn)進(jìn)行,在此不再贅述。需要說(shuō)明的是,在本發(fā)明一種實(shí)現(xiàn)方式中,步驟SlOl至S104的實(shí)現(xiàn)過(guò)程與步驟S201至S204的實(shí)現(xiàn)過(guò)程可以并行地進(jìn)行,也可以先后地執(zhí)行。即可以先執(zhí)行步驟SlOl至S104,然后執(zhí)行步驟S201至S204。具體的實(shí)現(xiàn)可以是非常靈活的。
[0118]在本發(fā)明第二實(shí)施例中,當(dāng)多個(gè)應(yīng)用的數(shù)據(jù)請(qǐng)求對(duì)象為同一藍(lán)牙設(shè)備時(shí),可以是多個(gè)應(yīng)用軟件使用同一數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備進(jìn)行數(shù)據(jù)通信,即多個(gè)應(yīng)用可以復(fù)用同一數(shù)據(jù)連接通道,而無(wú)需每個(gè)應(yīng)用均建立一個(gè)數(shù)據(jù)傳輸通道,有效提高了通信效率。此外,當(dāng)一個(gè)應(yīng)用請(qǐng)求數(shù)據(jù)的對(duì)象是多個(gè)不同的藍(lán)牙從設(shè)備時(shí),也可以為一個(gè)應(yīng)用建立不同的數(shù)據(jù)連接通道以用于與不同的藍(lán)牙從設(shè)備進(jìn)行數(shù)據(jù)傳輸。而這些建立的數(shù)據(jù)連接通道還可以被其他應(yīng)用復(fù)用。再者,當(dāng)不同的應(yīng)用對(duì)應(yīng)不同的藍(lán)牙從設(shè)備時(shí),還可以為不同的應(yīng)用建立不同的數(shù)據(jù)連接通道以進(jìn)行數(shù)據(jù)傳輸,從而實(shí)現(xiàn)了藍(lán)牙設(shè)備之間的多通道數(shù)據(jù)通信與傳輸,實(shí)現(xiàn)了不同應(yīng)用程序的數(shù)據(jù)的請(qǐng)求與分發(fā)。
[0119]圖3為本發(fā)明提供的藍(lán)牙設(shè)備通信方法第三實(shí)施例示意圖。
[0120]下面圖3,對(duì)本發(fā)明的具體實(shí)現(xiàn)進(jìn)行詳細(xì)地介紹。在這一實(shí)施例中,藍(lán)牙主設(shè)備為發(fā)起數(shù)據(jù)請(qǐng)求、連接的設(shè)備,藍(lán)牙從設(shè)備為接收數(shù)據(jù)請(qǐng)求的設(shè)備。藍(lán)牙主設(shè)備可以具有多個(gè)應(yīng)用。藍(lán)牙通信裝置與藍(lán)牙主設(shè)備連接,藍(lán)牙通信裝置可以設(shè)置在藍(lán)牙主設(shè)備中。當(dāng)然,藍(lán)牙通信裝置也可以作為獨(dú)立的裝置與模塊。
[0121]S301,藍(lán)牙主設(shè)備的第一應(yīng)用向藍(lán)牙設(shè)備通信裝置輸入通信數(shù)據(jù)信息。
[0122]藍(lán)牙主設(shè)備的應(yīng)用需要在首次發(fā)送數(shù)據(jù)請(qǐng)求前,向藍(lán)牙設(shè)備通信裝置輸入通信數(shù)據(jù)信息。當(dāng)然,藍(lán)牙從設(shè)備的應(yīng)用也可以在首次發(fā)送數(shù)據(jù)請(qǐng)求時(shí),在數(shù)據(jù)請(qǐng)求中攜帶通信數(shù)據(jù)信息,由藍(lán)牙設(shè)備通信裝置獲取并保存所述通信數(shù)據(jù)信息。。
[0123]藍(lán)牙主設(shè)備中的第一應(yīng)用可以向藍(lán)牙通信裝置輸入通信數(shù)據(jù)信息,通信數(shù)據(jù)信息可以包括藍(lán)牙從設(shè)備的信息以及數(shù)據(jù)格式信息。通信數(shù)據(jù)信息可以保存在XML格式的文件中。其中,藍(lán)牙從設(shè)備的信息可以包括設(shè)備名稱(chēng)、設(shè)備型號(hào)、設(shè)備提供商信息、設(shè)備標(biāo)識(shí)、設(shè)備地址、配對(duì)密鑰信息中的一種或多種。數(shù)據(jù)格式信息與藍(lán)牙從設(shè)備信息對(duì)應(yīng)的,用于進(jìn)行數(shù)據(jù)解析。具體實(shí)現(xiàn)時(shí),藍(lán)牙設(shè)備之間傳輸?shù)膽?yīng)用數(shù)據(jù)為二進(jìn)制數(shù)據(jù)流,數(shù)據(jù)格式信息用于定義二進(jìn)制數(shù)據(jù)流的格式,可以包括數(shù)據(jù)名稱(chēng)、數(shù)據(jù)類(lèi)型、起始字節(jié)位、數(shù)據(jù)字節(jié)長(zhǎng)度、數(shù)據(jù)重復(fù)次數(shù)等信息。
[0124]在本發(fā)明實(shí)施例中,提供了原語(yǔ)定義與通信數(shù)據(jù)的格式。其中,原語(yǔ)是一組XML節(jié)點(diǎn)元素和屬性,主要用來(lái)定義藍(lán)牙數(shù)據(jù)連接通道中二進(jìn)制流數(shù)據(jù)的格式和配對(duì)密鑰等。下面以一個(gè)具體的實(shí)例進(jìn)行說(shuō)明。
[0125]在本發(fā)明實(shí)施例的一種實(shí)現(xiàn)方式中,主要的節(jié)點(diǎn)元素和屬性如下:
[0126](I)設(shè)備信息
[0127]使用〈device name=”” model=”” vendor=””/>來(lái)定義藍(lán)牙設(shè)備的基本信息,一個(gè)定義文件中只能包含一個(gè)該元素。name用于指定藍(lán)牙設(shè)備的名稱(chēng);model用于指定藍(lán)牙設(shè)備的型號(hào);vendor用于指定藍(lán)牙設(shè)備的提供商。name、model和vendor三個(gè)屬性唯一標(biāo)識(shí)一種設(shè)備,在定義格式文件時(shí),需要給這三個(gè)屬性設(shè)定屬性值。
[0128](2)配對(duì)密鑰
[0129]其中,使用〈pin device=””password=””/〉定義從屬藍(lán)牙設(shè)備的配對(duì)密鑰,一個(gè)定義文件中包含一個(gè)該元素,device用于指定藍(lán)牙從設(shè)備名稱(chēng),password用于指定配對(duì)秘鑰。
[0130](3)數(shù)據(jù)格式信息
[0131]使用〈datacode=””name=””position=”” length=””type=””repeat=””/〉定義藍(lán)牙數(shù)據(jù)連接通道中二進(jìn)制流數(shù)據(jù)的格式,一個(gè)定義文件中可以包含一個(gè)或多個(gè)該元素。code用于指定本地?cái)?shù)據(jù)字典中該項(xiàng)數(shù)據(jù)的數(shù)據(jù)編碼;name用于指定數(shù)據(jù)名稱(chēng)position用于指定該項(xiàng)數(shù)據(jù)在二進(jìn)制流中的起始位置;length用于指定一個(gè)數(shù)據(jù)值所占字節(jié)數(shù);type用于指定數(shù)據(jù)值的類(lèi)型repeat用于指定該項(xiàng)數(shù)據(jù)從起始位置開(kāi)始的重復(fù)次數(shù)。
[0132](4)校驗(yàn)數(shù)據(jù)信息
[0133]使用〈checktype=”” length=”” checksum=””/> 指定二進(jìn)制流數(shù)據(jù)的校驗(yàn)方法,一個(gè)定義文件中可以包含O或I個(gè)該元素。type用于指定校驗(yàn)方法其中,如果校驗(yàn)類(lèi)型為L(zhǎng)ENGTH表明進(jìn)行長(zhǎng)度校驗(yàn);如果校驗(yàn)類(lèi)型為SUM表明進(jìn)行和校驗(yàn);如果校驗(yàn)類(lèi)型為L(zhǎng)ENGTH I SUM,則同時(shí)進(jìn)行長(zhǎng)度校驗(yàn)以及和校驗(yàn)。length用于指定正確的數(shù)據(jù)流長(zhǎng)度;checksum用于指定數(shù)據(jù)流的校驗(yàn)和值。
[0134]在進(jìn)行通信數(shù)據(jù)信息(Data Profile)的輸入時(shí),藍(lán)牙主設(shè)備的應(yīng)用程序可以使用上述原語(yǔ)來(lái)定義二進(jìn)制數(shù)據(jù)流的格式,并把它們保存到一個(gè)XML格式的文件中,然后把該文件注冊(cè)到本發(fā)明所實(shí)現(xiàn)的中間件藍(lán)牙設(shè)備通信裝置(BT-MCAM)中,藍(lán)牙設(shè)備通信裝置BT-MCAM的通信數(shù)據(jù)信息管理模塊DPM (Data Profile Manager)模塊會(huì)提供相應(yīng)的接口API和工具,來(lái)支持通信數(shù)據(jù)信息Data profile的編程注入和工具注入,并持久保存在藍(lán)牙設(shè)備通信裝置BT-MCAM中。為了避免輸入相同的通信數(shù)據(jù)信息(Data Profile),在通信數(shù)據(jù)信息Data Profile被注入到藍(lán)牙設(shè)備通信裝置BT-MCAM中之前,通信數(shù)據(jù)信息管理模塊DPM (Data Profile Manager)會(huì)首先把待輸入的通信數(shù)據(jù)信息Data Profile對(duì)應(yīng)的XML文件轉(zhuǎn)換成數(shù)據(jù)對(duì)象Data Profile 0bject (DP0),然后會(huì)把該DPO與藍(lán)牙設(shè)備通信裝置中已存在的DPO進(jìn)行比較,如果有相同的存在,則提示用戶(hù)系統(tǒng)已經(jīng)支持該設(shè)備,不需要重復(fù)注入Data Profile。如果沒(méi)有相同的DPO對(duì)象存在,那么通信數(shù)據(jù)信息管理模塊DPM會(huì)把該DPO對(duì)象持久化保存到藍(lán)牙設(shè)備通信裝置BT-MCAM中。
[0135]S302,藍(lán)牙主設(shè)備的第一應(yīng)用發(fā)送數(shù)據(jù)請(qǐng)求信息。
[0136]其中,藍(lán)牙主設(shè)備的第一應(yīng)用發(fā)送的數(shù)據(jù)請(qǐng)求信息又可以稱(chēng)為數(shù)據(jù)訂閱請(qǐng)求。在本發(fā)明具體實(shí)施例中,為應(yīng)用提供了監(jiān)聽(tīng)器接口 IPostboxListener,應(yīng)用可以通過(guò)指定監(jiān)聽(tīng)器接口獲取經(jīng)過(guò)藍(lán)牙設(shè)備通信裝置解析處理、由藍(lán)牙從設(shè)備發(fā)送的應(yīng)用數(shù)據(jù),還可以獲取藍(lán)牙數(shù)據(jù)連接通道的連接狀態(tài)。當(dāng)藍(lán)牙主設(shè)備的應(yīng)用需要發(fā)送數(shù)據(jù)訂閱請(qǐng)求是,則可以調(diào)用本發(fā)明藍(lán)牙設(shè)備通信裝置提供的數(shù)據(jù)訂閱模塊(Register Subscription),在數(shù)據(jù)訂閱請(qǐng)求中訂閱者信息(即藍(lán)牙主設(shè)備的應(yīng)用的名稱(chēng))、訂閱對(duì)象(藍(lán)牙從設(shè)備的信息,例如可以包括設(shè)備名稱(chēng)、設(shè)備型號(hào)、設(shè)備提供商信息、設(shè)備標(biāo)識(shí)、設(shè)備地址等)、指定的訂閱監(jiān)聽(tīng)器信息、訂閱模式信息(包括臨時(shí)訂閱和持久訂閱)。
[0137]S303,藍(lán)牙設(shè)備通信裝置接收數(shù)據(jù)請(qǐng)求信息,判斷是否存在與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的訂閱信息。如果存在,進(jìn)入步驟305;如果不存在,進(jìn)入步驟S304。
[0138]S304,藍(lán)牙設(shè)備通信裝置保存與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的訂閱信息。
[0139]在具體實(shí)現(xiàn)時(shí),如果不存在與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的訂閱信息,則藍(lán)牙設(shè)備通信裝置需要保存與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的訂閱信息,按照訂閱模式,把訂閱者信息、訂閱監(jiān)聽(tīng)器信息保存至對(duì)應(yīng)的訂閱列表中。對(duì)應(yīng)臨時(shí)訂閱模式和持久訂閱模式,訂閱列表可以分為臨時(shí)訂閱列表和持久訂閱列表。
[0140]在一種可能的實(shí)現(xiàn)方式中,在判斷不存在與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的訂閱信息時(shí),所述方法還可以包括:判斷是否存在與訂閱對(duì)象(即藍(lán)牙從設(shè)備)對(duì)應(yīng)的通信數(shù)據(jù)信息DataProfile,如果存在,則保存與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的訂閱信息。如果不存在,則顯示提示信息,用于提示用戶(hù)輸入與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信息。
[0141]S305,藍(lán)牙設(shè)備通信裝置判斷是否存在與數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道。如果存在,進(jìn)入步驟S312 ;如果不存在,進(jìn)入步驟S306。
[0142]在現(xiàn)有技術(shù)中,藍(lán)牙通信的數(shù)據(jù)連接通道會(huì)隨著應(yīng)用的退出而關(guān)閉,當(dāng)應(yīng)用程序重新啟動(dòng)時(shí),則需要重新建立連接,不利用應(yīng)用程序的執(zhí)行效率,而且降低了系統(tǒng)資源的復(fù)用程度。而在本發(fā)明提供的方法中,在接收到應(yīng)用程序的數(shù)據(jù)請(qǐng)求后,會(huì)根據(jù)藍(lán)牙設(shè)備通信裝置的連接池中保存的數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備的對(duì)應(yīng)關(guān)系判斷是否存在與所述請(qǐng)求對(duì)應(yīng)的連接通道存在,如果存在,則利用所述連接通道傳輸數(shù)據(jù),并增加該連接通道的引用計(jì)數(shù)。此外,還可以調(diào)用訂閱監(jiān)聽(tīng)器接口中的onstatuschangeO方法,提示用戶(hù)藍(lán)牙連接已存在。如果不存在,進(jìn)入步驟S306。
[0143]S306,藍(lán)牙設(shè)備通信裝置判斷是否已與藍(lán)牙設(shè)備進(jìn)行配對(duì)操作,如果是,進(jìn)入步驟
S309;如果否,進(jìn)入步驟S307。
[0144]S307,藍(lán)牙設(shè)備通信裝置向藍(lán)牙從設(shè)備發(fā)送配對(duì)請(qǐng)求消息。
[0145]當(dāng)判斷未與所述第一藍(lán)牙從設(shè)備進(jìn)行配對(duì)操作時(shí),則根據(jù)所述第一藍(lán)牙從設(shè)備的設(shè)備信息判斷是否保存了與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信息;所述通信數(shù)據(jù)信息至少包括配對(duì)密鑰信息。
[0146]當(dāng)判斷保存了與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信息時(shí),利用所述通信數(shù)據(jù)信息中包含的所述配對(duì)密鑰信息向所述第一藍(lán)牙從設(shè)備發(fā)送配對(duì)請(qǐng)求消息。
[0147]當(dāng)判斷未保存與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信息時(shí),顯示第一提示信息;其中,所述第一提示信息用于提示用戶(hù)輸入與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信息。而后,當(dāng)接收到輸入的通信數(shù)據(jù)信息且判斷通信數(shù)據(jù)信息完整時(shí),則向藍(lán)牙從設(shè)備發(fā)送配對(duì)密鑰的配對(duì)請(qǐng)求信息。
[0148]S308,藍(lán)牙從設(shè)備向藍(lán)牙設(shè)備通信裝置發(fā)送配對(duì)響應(yīng)消息。具體地,藍(lán)牙從設(shè)備驗(yàn)證配對(duì)密鑰,如果匹配,則向藍(lán)牙設(shè)備通信裝置發(fā)送配對(duì)響應(yīng)消息。
[0149]S309,藍(lán)牙設(shè)備通信裝置接收所述第一藍(lán)牙從設(shè)備發(fā)送的配對(duì)響應(yīng)消息,向所述第一藍(lán)牙從設(shè)備發(fā)送通信連接請(qǐng)求以與所述第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道。
[0150]S310,藍(lán)牙從設(shè)備反饋通信連接響應(yīng)消息。
[0151]在本發(fā)明這一實(shí)施例中,不同于現(xiàn)有技術(shù)中在藍(lán)牙設(shè)備配對(duì)與連接過(guò)程中需要過(guò)多的人工干預(yù)和操作繁瑣的方法,根據(jù)預(yù)先保存的通信數(shù)據(jù)信息中的配對(duì)密鑰自動(dòng)完成藍(lán)牙設(shè)備的發(fā)現(xiàn)、配對(duì)與連接,無(wú)需用戶(hù)人工干預(yù)、操作簡(jiǎn)便。此外,當(dāng)藍(lán)牙設(shè)備通信裝置被卸載時(shí),通過(guò)藍(lán)牙設(shè)備通信裝置自動(dòng)配對(duì)的藍(lán)牙從設(shè)備會(huì)被自動(dòng)取消配對(duì),保存了藍(lán)牙應(yīng)用與配對(duì)設(shè)備的一致性。
[0152]S311,藍(lán)牙設(shè)備通信裝置保存與所述數(shù)據(jù)連接通道對(duì)應(yīng)的信息,至少包括所述數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備的對(duì)應(yīng)關(guān)系。
[0153]在本發(fā)明實(shí)施例中,藍(lán)牙設(shè)備通信裝置使用連接池保存與所述數(shù)據(jù)連接通道對(duì)應(yīng)的信息。其中,連接池中連接對(duì)象連接的是同一數(shù)據(jù)目標(biāo)(對(duì)應(yīng)同一藍(lán)牙從設(shè)備)。在藍(lán)牙連接池中,通過(guò)結(jié)構(gòu)化的處理,不同的連接對(duì)象連接的是不同的藍(lán)牙設(shè)備,并能夠準(zhǔn)確的標(biāo)識(shí)出設(shè)備的身份。請(qǐng)參見(jiàn)圖4所示,為藍(lán)牙連接池示意圖。圖中,key I代表藍(lán)牙從設(shè)備1,BT Devicel代表藍(lán)牙主設(shè)備I ;key2代表藍(lán)牙從設(shè)備2,BT Device2代表藍(lán)牙主設(shè)備2。通過(guò)藍(lán)牙連接的池化管理,可以有效的降低應(yīng)用程序連接藍(lán)牙設(shè)備的步驟,提高藍(lán)牙連接的持續(xù)性和穩(wěn)定性,同時(shí)解除了藍(lán)牙連接于具體應(yīng)用的耦合性,為該連接的應(yīng)用數(shù)據(jù)能夠同時(shí)服務(wù)于多個(gè)應(yīng)用程序奠定了基礎(chǔ)條件。
[0154]具體實(shí)現(xiàn)時(shí),保存在藍(lán)牙設(shè)備通信裝置BT-MCAM中間件藍(lán)牙連接池(BTCP)中的藍(lán)牙連接通道信息,同時(shí)還會(huì)保存以下信息:
[0155](I)引用計(jì)數(shù)信息:即當(dāng)前使用該數(shù)據(jù)連接通道的應(yīng)用程序的數(shù)量。其中,當(dāng)有新的應(yīng)用使用所述數(shù)據(jù)連接通道時(shí),所述數(shù)據(jù)連接通道的引用計(jì)數(shù)加I ;當(dāng)有與所述數(shù)據(jù)連接通道對(duì)應(yīng)的應(yīng)用退出時(shí),所述數(shù)據(jù)連接通道的引用計(jì)數(shù)減I ;當(dāng)所述數(shù)據(jù)連接通道的引用計(jì)數(shù)為O且所述數(shù)據(jù)連接通道的引用計(jì)數(shù)為O的狀態(tài)超過(guò)預(yù)設(shè)的空閑持續(xù)時(shí)間時(shí),中斷所述數(shù)據(jù)連接通道,釋放與所述數(shù)據(jù)連接通道對(duì)應(yīng)的系統(tǒng)資源,解除與所述藍(lán)牙從設(shè)備的通信連接。
[0156](2)連接持續(xù)時(shí)間:即該連接從建立到當(dāng)前持續(xù)保持的時(shí)間差。
[0157](3)引用計(jì)數(shù)合計(jì):即在連接持續(xù)期間,共有多少次對(duì)該連接的引用,包括已經(jīng)退出的應(yīng)用程序。
[0158]需要說(shuō)明的是,藍(lán)牙設(shè)備通信裝置BT-MCAM中間件不會(huì)主動(dòng)創(chuàng)建藍(lán)牙連接,但會(huì)根據(jù)上述記錄的信息,自動(dòng)延長(zhǎng)空閑藍(lán)牙連接(引用計(jì)數(shù)為O)的保持時(shí)間。
[0159]在藍(lán)牙設(shè)備通信裝置BT-MCAM中間件中藍(lán)牙連接中斷分為兩種:[0160](I)主動(dòng)中斷:所謂主動(dòng)中斷,就是指中斷藍(lán)牙連接的指令是由藍(lán)牙設(shè)備通信裝置BT-MCAM中間件發(fā)出的。當(dāng)數(shù)據(jù)連接通道的引用計(jì)數(shù)為O且所述數(shù)據(jù)連接通道的引用計(jì)數(shù)為O的狀態(tài)超過(guò)預(yù)設(shè)的空閑持續(xù)時(shí)間時(shí),中斷所述數(shù)據(jù)連接通道,釋放與所述數(shù)據(jù)連接通道對(duì)應(yīng)的系統(tǒng)資源,解除與所述藍(lán)牙從設(shè)備的通信連接。也就是說(shuō),這種中斷的情形只會(huì)在藍(lán)牙連接的引用計(jì)數(shù)為0,且連接保持超時(shí)時(shí)發(fā)生,并且不會(huì)向應(yīng)用層發(fā)出任何提示。
[0161](2)被動(dòng)中斷:所謂被動(dòng)中斷,當(dāng)藍(lán)牙從設(shè)備處于不可連接狀態(tài)時(shí),中斷與所述藍(lán)牙從設(shè)備建立的數(shù)據(jù)連接通道。藍(lán)牙從設(shè)備處于不可連接狀態(tài)包括:藍(lán)牙從設(shè)備的藍(lán)牙信號(hào)關(guān)閉、藍(lán)牙從設(shè)備超出連接范圍、藍(lán)牙從設(shè)備處于非工作狀態(tài)等。這時(shí),顯示第二提示信息,所述第二提示信息用于提示用戶(hù)數(shù)據(jù)連接通道的狀態(tài)。也就是說(shuō),這種中斷主要是由從屬藍(lán)牙設(shè)備的藍(lán)牙信號(hào)關(guān)閉、超出連接范圍等因素引起的連接中斷。這種中斷會(huì)向應(yīng)用層發(fā)出中斷提示,提醒用戶(hù)是否需要重建連接。
[0162]當(dāng)中斷與所述藍(lán)牙從設(shè)備的數(shù)據(jù)連接通道時(shí),保存所述數(shù)據(jù)連接通道的引用計(jì)數(shù)信息以及連接持續(xù)時(shí)間信息;當(dāng)再次建立與所述藍(lán)牙從設(shè)備的數(shù)據(jù)連接通道時(shí),根據(jù)上一次保存的所述數(shù)據(jù)連接通道的引用計(jì)數(shù)信息以及連接持續(xù)時(shí)間信息設(shè)置空閑持續(xù)時(shí)間。也就是說(shuō),藍(lán)牙連接中斷后,保存在連接池中的連接對(duì)象會(huì)被自動(dòng)的釋放,同時(shí)記錄該連接保持期間相關(guān)的計(jì)數(shù)信息,藍(lán)牙設(shè)備通信裝置BT-MCAM中間件會(huì)根據(jù)這些信息在重建連接時(shí),自動(dòng)的設(shè)置空閑持續(xù)時(shí)間。
[0163]S312,增加數(shù)據(jù)連接通道的引用計(jì)數(shù)。
[0164]S313,藍(lán)牙從設(shè)備發(fā)送應(yīng)用數(shù)據(jù)。
[0165]S314,藍(lán)牙 設(shè)備通信裝置接收藍(lán)牙從設(shè)備發(fā)送的應(yīng)用數(shù)據(jù),藍(lán)牙設(shè)備通信裝置對(duì)應(yīng)用數(shù)據(jù)進(jìn)行校驗(yàn)、緩存、解析操作。
[0166]流數(shù)據(jù)在無(wú)線傳輸過(guò)程中,經(jīng)常會(huì)由于設(shè)備和干擾原因,導(dǎo)致數(shù)據(jù)的失真。同時(shí)在無(wú)線通道中傳輸?shù)牧鲾?shù)據(jù),具有很強(qiáng)的實(shí)時(shí)性,且通信通道不具備臨時(shí)緩存數(shù)據(jù)的特性。本發(fā)明中的藍(lán)牙設(shè)備通信裝置BT-MCAM提供了數(shù)據(jù)校驗(yàn)與緩存的方法。
[0167]藍(lán)牙設(shè)備通信裝置BT-MCAM會(huì)根據(jù)通信數(shù)據(jù)信息Data Profile中的校驗(yàn)數(shù)據(jù)信息〈check〉元素的定義來(lái)執(zhí)行以下三種可能的數(shù)據(jù)校驗(yàn):
[0168](I)長(zhǎng)度校驗(yàn):〈CheCk>元素中的type屬性值設(shè)定為L(zhǎng)ENGTH時(shí),中間件中的DC模塊會(huì)執(zhí)行該類(lèi)型校驗(yàn),它主要檢查流數(shù)據(jù)的長(zhǎng)度與〈check〉元素中l(wèi)ength屬性所指定的長(zhǎng)度值是否匹配。
[0169](2)校驗(yàn)和校驗(yàn):〈check>元素中的type屬性值設(shè)定為SUM時(shí),中間件中的DC模塊會(huì)執(zhí)行該類(lèi)型校驗(yàn),它分為靜態(tài)校驗(yàn)和動(dòng)態(tài)校驗(yàn)。靜態(tài)校驗(yàn)首先會(huì)根據(jù)Data Profile中的數(shù)據(jù)定義來(lái)計(jì)算校驗(yàn)和,然后再檢查該計(jì)算結(jié)果與〈check〉元素中checksum屬性所指定的值是否匹配。動(dòng)態(tài)校驗(yàn)的方法是,從屬藍(lán)牙設(shè)備在發(fā)送數(shù)據(jù)時(shí),根據(jù)數(shù)據(jù)內(nèi)容,動(dòng)態(tài)的生成校驗(yàn)和,并附在數(shù)據(jù)流中指定的位置,藍(lán)牙主機(jī)端接收的數(shù)據(jù)后,先提取校驗(yàn)和ChecksunuA,然后計(jì)算流數(shù)據(jù)的實(shí)際的校驗(yàn)和(Checksum_B),最后檢查Checksum_A和Checksum_B是否匹配。
[0170](3)長(zhǎng)度和校驗(yàn)和校驗(yàn):〈check>元素中的type屬性值設(shè)定為L(zhǎng)ENGTH! SUM時(shí),同時(shí)執(zhí)行(I)和(2)的數(shù)據(jù)校驗(yàn)。
[0171]對(duì)于校驗(yàn)失真的應(yīng)用數(shù)據(jù),則拋棄該數(shù)據(jù),如果從屬設(shè)備支持?jǐn)?shù)據(jù)重發(fā)機(jī)制,則請(qǐng)求設(shè)備重新發(fā)送應(yīng)用數(shù)據(jù),否則向應(yīng)用層發(fā)出數(shù)據(jù)錯(cuò)誤的提示信息。對(duì)于通過(guò)校驗(yàn)的應(yīng)用數(shù)據(jù),則會(huì)把應(yīng)用數(shù)據(jù)放入緩存中,并向藍(lán)牙設(shè)備通信裝置BT-MCAM中間件中的流數(shù)據(jù)解析模塊(SDP---Stream Data Parser)發(fā)送應(yīng)用數(shù)據(jù)解析請(qǐng)求。
[0172]如果通信數(shù)據(jù)信息Data Profile中沒(méi)有設(shè)置校驗(yàn)信息(〈check〉元素),那么流數(shù)據(jù)會(huì)直接放入緩存中,并發(fā)送數(shù)據(jù)解析請(qǐng)求。
[0173]在本發(fā)明實(shí)施例中,藍(lán)牙設(shè)備通信裝置具有數(shù)據(jù)緩存模塊,數(shù)據(jù)緩存模塊(DataCacheDC)模塊會(huì)根據(jù)通信數(shù)據(jù)信息Data Profile中的定義來(lái)確定緩存數(shù)據(jù)條數(shù),默認(rèn)情況下只緩存當(dāng)前最新的應(yīng)用數(shù)據(jù)。當(dāng)有新應(yīng)用數(shù)據(jù)進(jìn)入緩存時(shí),最舊的緩存數(shù)據(jù)會(huì)被拋棄。[0174]對(duì)于空閑連接(引用計(jì)數(shù)為O的連接)的應(yīng)用數(shù)據(jù),會(huì)按照上述規(guī)則保存到緩存中,并會(huì)根據(jù)Data Prof i Ie中設(shè)定的時(shí)間來(lái)確定緩存中應(yīng)用數(shù)據(jù)的保存時(shí)間,對(duì)于超時(shí)的應(yīng)用數(shù)據(jù),數(shù)據(jù)緩存DC模塊會(huì)執(zhí)行數(shù)據(jù)清除處理。如果空閑連接被中斷,那么該連接所對(duì)應(yīng)的緩存及數(shù)據(jù)都會(huì)被釋放。
[0175]下面對(duì)應(yīng)用數(shù)據(jù)解析過(guò)程進(jìn)行說(shuō)明。藍(lán)牙各數(shù)據(jù)連接通道中的應(yīng)用數(shù)據(jù)是以二進(jìn)制流的形式存在的,如果只是簡(jiǎn)單把它們轉(zhuǎn)發(fā)給應(yīng)用層,那么應(yīng)用層會(huì)無(wú)法識(shí)別這些數(shù)據(jù)。因此在藍(lán)牙設(shè)備通信裝置BT-MCAM提供了數(shù)據(jù)解析模塊(Stream Data ParserSDP)來(lái)進(jìn)行數(shù)據(jù)的解析。
[0176]為了解決二進(jìn)制流數(shù)據(jù)解析的硬編碼,以及藍(lán)牙多通道實(shí)時(shí)數(shù)據(jù)的解析問(wèn)題,
BT-MCAM中間件提供了自適應(yīng)流數(shù)據(jù)解析模塊(Stream Data Parser---SDP),其解析過(guò)程
如圖5所示。
[0177]流數(shù)據(jù)解析模塊(SDP)的工作原理如下:根據(jù)輸入二進(jìn)制流數(shù)據(jù)的通信通道(即數(shù)據(jù)連接通道),確定其對(duì)應(yīng)的通信數(shù)據(jù)信息(Data Profile);根據(jù)Data Profile中定義的數(shù)據(jù)格式,分解二進(jìn)制流;把分解結(jié)果轉(zhuǎn)換成Data Profile中定義的對(duì)應(yīng)的用戶(hù)可識(shí)別的數(shù)據(jù)類(lèi)型;當(dāng)有多個(gè)二進(jìn)制流同時(shí)請(qǐng)求解析時(shí),SDP會(huì)為每個(gè)請(qǐng)求啟動(dòng)一個(gè)工作線程來(lái)完成數(shù)據(jù)解析工作。
[0178]本發(fā)明實(shí)施例中,流數(shù)據(jù)解析模塊(SDP)工作時(shí),不會(huì)依賴(lài)具體的二進(jìn)制數(shù)據(jù)流的數(shù)據(jù)格式,但會(huì)依賴(lài)通信數(shù)據(jù)信息Data Profile的定義,因此把數(shù)據(jù)解析過(guò)程中對(duì)具體數(shù)據(jù)格式的依賴(lài)轉(zhuǎn)化成對(duì)Data Profile中的原語(yǔ)的依賴(lài),這樣在數(shù)據(jù)協(xié)議發(fā)生變化時(shí),就不需要修改解析代碼,只修改對(duì)應(yīng)的通信數(shù)據(jù)信息Data Profile就可以了。同樣在追加新的藍(lán)牙設(shè)備時(shí),也不需要編寫(xiě)任何代碼,只需向藍(lán)牙設(shè)備通信裝置BT-MCAM中輸入與新的藍(lán)牙設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信息Data Profile即可。
[0179]S315,藍(lán)牙設(shè)備通信裝置根據(jù)預(yù)先保存的訂閱信息將應(yīng)用數(shù)據(jù)分發(fā)至對(duì)應(yīng)的藍(lán)牙主設(shè)備中相應(yīng)的應(yīng)用。
[0180]在本發(fā)明實(shí)施例中,藍(lán)牙設(shè)備通信裝置BT-MCAM設(shè)置數(shù)據(jù)分發(fā)模塊(Data
Subscribe Distributor---DSD)模塊使用數(shù)據(jù)代理訂閱機(jī)制實(shí)現(xiàn)數(shù)據(jù)的定向推送。數(shù)據(jù)的
分發(fā)方法如圖6所示。
[0181 ] 具體實(shí)現(xiàn)時(shí),多通道實(shí)時(shí)并發(fā)流數(shù)據(jù)經(jīng)過(guò)流數(shù)據(jù)解析模塊(SDP)解析后,應(yīng)用數(shù)據(jù)
會(huì)被推送到數(shù)據(jù)分發(fā)模塊(Data Subscribe Distributor---DSD),數(shù)據(jù)分發(fā)模塊會(huì)創(chuàng)建相
應(yīng)的工作線程,并查閱本地的數(shù)據(jù)訂閱列表,把應(yīng)用數(shù)據(jù)定向發(fā)送給訂閱者。數(shù)據(jù)分發(fā)模塊支持兩種性質(zhì)的數(shù)據(jù)訂閱:臨時(shí)訂閱:這種方式,只會(huì)把訂閱者信息保存在內(nèi)存中,并隨著訂閱者的消亡而消亡。持久化訂閱:這種方式會(huì)把訂閱者信息持久的保存在磁盤(pán)中。數(shù)據(jù)分發(fā)模塊不但會(huì)持久化數(shù)據(jù)訂閱者的信息,而且會(huì)根據(jù)藍(lán)牙主機(jī)上應(yīng)用程序的卸載信息,自動(dòng)維護(hù)持久化訂閱者信息,對(duì)于已經(jīng)不存在的訂閱者,會(huì)自動(dòng)的實(shí)施清除。
[0182]對(duì)于沒(méi)有被應(yīng)用App訂閱的應(yīng)用數(shù)據(jù),數(shù)據(jù)分發(fā)模塊(DSD)會(huì)自動(dòng)拋棄該應(yīng)用數(shù)據(jù)。例如上圖中的Data3,如果沒(méi)有任何應(yīng)用程序訂閱它,那么DSD就會(huì)把它拋棄。這種方法有效的實(shí)現(xiàn)了多通道實(shí)時(shí)并發(fā)數(shù)據(jù)的定向發(fā)布,同時(shí)降低了應(yīng)用App端獲取多通道數(shù)據(jù)并發(fā)數(shù)據(jù)時(shí)的復(fù)雜度。應(yīng)用App端只需向DSD發(fā)布訂閱請(qǐng)求即可。
[0183]S316,藍(lán)牙主設(shè)備的相應(yīng)應(yīng)用接收到應(yīng)用數(shù)據(jù)后,展現(xiàn)應(yīng)用數(shù)據(jù)。
[0184]S317,藍(lán)牙主設(shè)備發(fā)送取消數(shù)據(jù)訂閱請(qǐng)求。
[0185]S318,藍(lán)牙設(shè)備通信裝置發(fā)送中斷連接請(qǐng)求以中斷與藍(lán)牙從設(shè)備之間的連接。
[0186]圖7為本發(fā)明提供的藍(lán)牙設(shè)備通信裝置示意圖。
[0187]一種藍(lán)牙設(shè)備通信裝置,所述裝置包括:
[0188]接收模塊701,用于接收藍(lán)牙主設(shè)備中的第一應(yīng)用發(fā)送的數(shù)據(jù)請(qǐng)求信息,所述數(shù)據(jù)請(qǐng)求信息至少包括與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的第一藍(lán)牙從設(shè)備的設(shè)備信息;
[0189]第一判斷模塊702,用于根據(jù)所述數(shù)據(jù)請(qǐng)求中包含的第一藍(lán)牙從設(shè)備的設(shè)備信息以及保存的數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系判斷是否存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道;
[0190]數(shù)據(jù)通信模塊703,用于當(dāng)判斷存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則利用所述數(shù)據(jù)連接通道實(shí)現(xiàn)所述藍(lán)牙主設(shè)備中的第一應(yīng)用與所述第一藍(lán)牙從設(shè)備間的數(shù)據(jù)通信;
[0191]通信連接建立模塊704,用于當(dāng)判斷不存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則與所述第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道;
[0192]通信連接管理模塊705,用于保存建立的所述數(shù)據(jù)連接通道與所述第一藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系。
[0193]進(jìn)一步的,通信連接建立模塊包括:
[0194]第二判斷模塊,用于判斷是否已與所述第一藍(lán)牙從設(shè)備進(jìn)行配對(duì)操作;
[0195]通信連接請(qǐng)求發(fā)送模塊,用于當(dāng)判斷已與所述第一藍(lán)牙從設(shè)備進(jìn)行配對(duì)操作時(shí),向所述第一藍(lán)牙從設(shè)備發(fā)送通信連接請(qǐng)求以與所述第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道。
[0196]進(jìn)一步的,所通信連接建立模塊還包括:
[0197]第三判斷模塊,用于當(dāng)判斷未與所述第一藍(lán)牙從設(shè)備進(jìn)行配對(duì)操作時(shí),則根據(jù)所述第一藍(lán)牙從設(shè)備的設(shè)備信息判斷是否保存了與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信息;所述通信數(shù)據(jù)信息至少包括配對(duì)密鑰信息;
[0198]配對(duì)請(qǐng)求發(fā)送模塊,用于當(dāng)判斷保存了與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信息時(shí),利用所述通信數(shù)據(jù)信息中包含的所述配對(duì)密鑰信息向所述第一藍(lán)牙從設(shè)備發(fā)送配對(duì)請(qǐng)求消息;
[0199]通信連接請(qǐng)求發(fā)送模塊還用于當(dāng)接收到所述第一藍(lán)牙從設(shè)備發(fā)送的配對(duì)響應(yīng)消息時(shí),向所述第一藍(lán)牙從設(shè)備發(fā)送通信連接請(qǐng)求以與所述第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道。[0200]進(jìn)一步的,所述裝置還包括:
[0201]第一提示模塊,用于當(dāng)判斷未保存與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信息時(shí),顯示第一提示信息;其中,所述第一提示信息用于提示用戶(hù)輸入與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信息。
[0202]進(jìn)一步的,所述通信連接管理模塊還用于保存所述數(shù)據(jù)連接通道的引用計(jì)數(shù),所述引用計(jì)數(shù)用于表明所述數(shù)據(jù)連接通道對(duì)應(yīng)的應(yīng)用的數(shù)量;當(dāng)有新的應(yīng)用使用所述數(shù)據(jù)連接通道時(shí),所述數(shù)據(jù)連接通道的引用計(jì)數(shù)加I ;當(dāng)有與所述數(shù)據(jù)連接通道對(duì)應(yīng)的應(yīng)用退出時(shí),所述數(shù)據(jù)連接通道的引用計(jì)數(shù)減I;當(dāng)所述數(shù)據(jù)連接通道的引用計(jì)數(shù)為O且所述數(shù)據(jù)連接通道的引用計(jì)數(shù)為O的狀態(tài)超過(guò)預(yù)設(shè)的空閑持續(xù)時(shí)間時(shí),中斷所述數(shù)據(jù)連接通道,釋放與所述數(shù)據(jù)連接通道對(duì)應(yīng)的系統(tǒng)資源,解除與所述藍(lán)牙從設(shè)備的通信連接。
[0203]進(jìn)一步的,所述裝置還包括:
[0204]中斷連接模塊,用于當(dāng)藍(lán)牙從設(shè)備處于不可連接狀態(tài)時(shí),中斷與所述藍(lán)牙從設(shè)備建立的數(shù)據(jù)連接通道;
[0205]第二提示模塊,用于當(dāng)當(dāng)藍(lán)牙從設(shè)備處于不可連接狀態(tài)時(shí)、中斷與所述藍(lán)牙從設(shè)備建立的數(shù)據(jù)連接通道時(shí),顯示第二提示信息,所述第二提示信息用于提示用戶(hù)數(shù)據(jù)連接通道的狀態(tài)。
[0206]進(jìn)一步的,所述通信連接管理模塊還用于當(dāng)中斷與所述藍(lán)牙從設(shè)備的數(shù)據(jù)連接通道時(shí),保存所述數(shù)據(jù)連接通道的引用計(jì)數(shù)信息以及連接持續(xù)時(shí)間信息;當(dāng)再次建立與所述藍(lán)牙從設(shè)備的數(shù)據(jù)連接通道時(shí),根據(jù)上一次保存的所述數(shù)據(jù)連接通道的引用計(jì)數(shù)信息以及連接持續(xù)時(shí)間信息設(shè)置空閑持續(xù)時(shí)間。
[0207]數(shù)據(jù)通信模塊包括:
[0208]第二接收模塊,用于接收所述第一藍(lán)牙從設(shè)備通過(guò)所述數(shù)據(jù)連接通道發(fā)送的應(yīng)用數(shù)據(jù);
[0209]數(shù)據(jù)解析模塊,用于對(duì)所述應(yīng)用數(shù)據(jù)進(jìn)行解析;
[0210]數(shù)據(jù)分發(fā)模塊,用于將解析后的應(yīng)用數(shù)據(jù)發(fā)送至藍(lán)牙主設(shè)備中對(duì)應(yīng)的應(yīng)用。
[0211]進(jìn)一步的,數(shù)據(jù)解析模塊包括:
[0212]確定模塊,用于確定與所述應(yīng)用數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)連接通道,根據(jù)保存的數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系確定與所述數(shù)據(jù)連接通道對(duì)應(yīng)的藍(lán)牙從設(shè)備;
[0213]獲取模塊,用于獲取與所述藍(lán)牙從設(shè)備對(duì)應(yīng)的預(yù)置的通信數(shù)據(jù)信息;所述預(yù)置的通信數(shù)據(jù)信息包括數(shù)據(jù)格式信息;
[0214]轉(zhuǎn)換模塊,用于利用所述數(shù)據(jù)格式信息對(duì)所述應(yīng)用數(shù)據(jù)進(jìn)行解析將其轉(zhuǎn)換成預(yù)設(shè)的數(shù)據(jù)類(lèi)型。
[0215]進(jìn)一步的,所述裝置還包括:
[0216]校驗(yàn)?zāi)K,用于在接收所述第一藍(lán)牙從設(shè)備通過(guò)所述數(shù)據(jù)連接通道發(fā)送的應(yīng)用數(shù)據(jù)之后、在對(duì)所述應(yīng)用數(shù)據(jù)進(jìn)行解析之前,利用預(yù)先保存的通信數(shù)據(jù)信息對(duì)所述應(yīng)用數(shù)據(jù)進(jìn)行長(zhǎng)度校驗(yàn)和/或校驗(yàn)和校驗(yàn);其中,所述通信數(shù)據(jù)信息包括校驗(yàn)信息。
[0217]進(jìn)一步的,所述裝置還包括:
[0218]數(shù)據(jù)重復(fù)請(qǐng)求模塊,用于當(dāng)校驗(yàn)錯(cuò)誤時(shí),向所述第一藍(lán)牙從設(shè)備發(fā)送數(shù)據(jù)重發(fā)請(qǐng)求。[0219]進(jìn)一步的,所述校驗(yàn)?zāi)K具體用于利用校驗(yàn)信息計(jì)算校驗(yàn)和,將計(jì)算的校驗(yàn)和與預(yù)先保存的校驗(yàn)和值進(jìn)行比較,如果相同,則確定校驗(yàn)正確;或者,從接收的應(yīng)用數(shù)據(jù)中提取所述藍(lán)牙從設(shè)備根據(jù)數(shù)據(jù)內(nèi)容生成的校驗(yàn)和;利用校驗(yàn)信息計(jì)算校驗(yàn)和,將計(jì)算的校驗(yàn)和與提取的校驗(yàn)和進(jìn)行比較,如果相同,則確定校驗(yàn)正確。
[0220]進(jìn)一步的,所述裝置還包括:
[0221]第四判斷模塊,用于在接收藍(lán)牙主設(shè)備中的第一應(yīng)用發(fā)送的數(shù)據(jù)請(qǐng)求信息之后,判斷是否存在與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的訂閱信息;其中,所述訂閱信息包括應(yīng)用信息以及藍(lán)牙從設(shè)備的設(shè)備信息;
[0222]數(shù)據(jù)分發(fā)模塊還用于如果不存在與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的訂閱信息,則保存與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的訂閱信息。
[0223]進(jìn)一步的,所述數(shù)據(jù)分發(fā)模塊還用于利用預(yù)先保存的訂閱信息,確定與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的應(yīng)用信息;利用所述應(yīng)用信息確定目標(biāo)應(yīng)用,并向確定的目標(biāo)應(yīng)用發(fā)送解析后的應(yīng)用數(shù)據(jù)。
[0224]進(jìn)一步的,所述第一接收模塊還用于接收藍(lán)牙主設(shè)備中的第二應(yīng)用發(fā)送的數(shù)據(jù)請(qǐng)求信息,所述數(shù)據(jù)請(qǐng)求信息至少包括與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的第一藍(lán)牙從設(shè)備的設(shè)備信息。
[0225]圖8為本發(fā)明提供的應(yīng)用場(chǎng)景示意圖。
[0226]如圖8所示,本發(fā)明提供的藍(lán)牙設(shè)備通信裝置可以實(shí)現(xiàn)藍(lán)牙多通道的數(shù)據(jù)實(shí)時(shí)傳輸、解析和分發(fā)。其中,Bluetooth Host為藍(lán)牙主設(shè)備,其包含了多個(gè)應(yīng)用BTAPP1、BTAPP2、
BTAPP3、BTAPP4、BTAPP5......Bluetooth Mult1-Chnanel Application Middleware 為本
發(fā)明提供的藍(lán)牙設(shè)備通信裝置(BT-MCAM),其包含的模塊可以包括:數(shù)據(jù)分發(fā)模塊(DataSubcribe Distributor, DSD)、數(shù)據(jù)解析模塊(Stream Data Parser, SDP)、通信數(shù)據(jù)信息管理模塊(Data Profile Manager, DBM)、數(shù)據(jù)緩存模塊(Data Cache, DC)、通信連接管理模塊(Bluetooth Connect Pool, BTCP)、以及數(shù)據(jù)通信模塊。其中,BT Devicel為第一藍(lán)牙從設(shè)備,BT Device2為第二藍(lán)牙從設(shè)備,BTDevice3為第三遍藍(lán)牙從設(shè)備,BT Device4為第四藍(lán)牙從設(shè)備,BT Devicd為第五藍(lán)牙從設(shè)備……由此,本發(fā)明提供的藍(lán)牙設(shè)備通信裝置可以實(shí)現(xiàn)藍(lán)牙主設(shè)備中的多個(gè)應(yīng)用與多個(gè)的藍(lán)牙從設(shè)備間的數(shù)據(jù)通信與傳輸。
[0227]從圖示所述應(yīng)用場(chǎng)景可以看出,本發(fā)明提供的藍(lán)牙設(shè)備通信方法和裝置具有如下優(yōu)點(diǎn):
[0228](I)本發(fā)明提供的方法和裝置把藍(lán)牙多通道實(shí)時(shí)通信數(shù)據(jù)的處理過(guò)程進(jìn)行整合和優(yōu)化,通過(guò)多通道實(shí)時(shí)流數(shù)據(jù)的讀取、適配、校驗(yàn)、緩存、解析、分發(fā)等處理,實(shí)現(xiàn)了藍(lán)牙多通道實(shí)時(shí)數(shù)據(jù)的統(tǒng)一處理,同時(shí)支持并發(fā)的數(shù)據(jù)通信處理。
[0229]( 2 )在本發(fā)明中,保存了藍(lán)牙數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備的對(duì)應(yīng)關(guān)系,當(dāng)存在與藍(lán)牙從設(shè)備對(duì)應(yīng)的連接時(shí),則無(wú)需重復(fù)建立連接。因此,有效的隱藏了不必要的藍(lán)牙設(shè)備間建立連接通道的步驟,簡(jiǎn)化了用戶(hù)操作,改善了用戶(hù)體驗(yàn)。同時(shí),通過(guò)連接池的管理,也為多通道藍(lán)牙連接提供了穩(wěn)定性、持續(xù)性的保障。
[0230]( 3 )本發(fā)明中,藍(lán)牙設(shè)備通信裝置通過(guò)記錄其藍(lán)牙連接池中相關(guān)連接的引用計(jì)數(shù)、持續(xù)時(shí)長(zhǎng)、引用計(jì)數(shù)合計(jì)等信息,來(lái)計(jì)算相關(guān)連接(對(duì)應(yīng)數(shù)據(jù)連接通道)的使用頻率,對(duì)于使用頻率較高的連接,動(dòng)態(tài)的調(diào)整連接處于空閑狀態(tài)時(shí),連接保持的時(shí)長(zhǎng)(即數(shù)據(jù)連接通道的空閑持續(xù)時(shí)間)。由此,有效提高了資源的復(fù)用率、提高了通信的效率。[0231](4)本發(fā)明實(shí)施例中,通過(guò)數(shù)據(jù)原語(yǔ)的定義和格式注入,自適應(yīng)解析多通道實(shí)時(shí)并發(fā)二進(jìn)制流數(shù)據(jù)。在本發(fā)明中,通過(guò)預(yù)先保存通信數(shù)據(jù)信息,通過(guò)數(shù)據(jù)解析模塊識(shí)別并獲取與接收的數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)格式信息,然后通過(guò)數(shù)據(jù)格式信息對(duì)二進(jìn)制流進(jìn)行數(shù)據(jù)分解,并轉(zhuǎn)化成對(duì)應(yīng)的、用戶(hù)可閱讀的數(shù)據(jù)。由此,有效解決了現(xiàn)有技術(shù)應(yīng)用程序的代碼需要依賴(lài)藍(lán)牙從設(shè)備傳輸?shù)膽?yīng)用數(shù)據(jù)的協(xié)議格式,不利于代碼的復(fù)用的問(wèn)題。
[0232](5)本發(fā)明實(shí)施例中,實(shí)現(xiàn)了數(shù)據(jù)的定向發(fā)送,可以支持同一數(shù)據(jù)發(fā)送給不同的應(yīng)用程序,也可以實(shí)現(xiàn)同一應(yīng)用獲取來(lái)自多個(gè)不同藍(lán)牙從設(shè)備的數(shù)據(jù)。
[0233](6)本發(fā)明實(shí)施例中,提供對(duì)數(shù)據(jù)完整性、正確性的校驗(yàn),從而進(jìn)一步保證了應(yīng)用層所獲取到的數(shù)據(jù)的正確性。
[0234]需要說(shuō)明的是,在本文中,諸如第一和第二等之類(lèi)的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0235]本發(fā)明可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類(lèi)型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本發(fā)明,在這些分布式計(jì)算環(huán)境中,由通過(guò)通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來(lái)執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。
[0236]以上所述僅是本發(fā)明的【具體實(shí)施方式】,應(yīng)當(dāng)指出,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理 的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種藍(lán)牙設(shè)備通信方法,其特征在于,所述方法包括: 接收藍(lán)牙主設(shè)備中的第一應(yīng)用發(fā)送的數(shù)據(jù)請(qǐng)求信息,所述數(shù)據(jù)請(qǐng)求信息至少包括與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的第一藍(lán)牙從設(shè)備的設(shè)備信息; 根據(jù)所述數(shù)據(jù)請(qǐng)求中包含的第一藍(lán)牙從設(shè)備的設(shè)備信息以及保存的數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系判斷是否存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道; 當(dāng)判斷存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則利用所述數(shù)據(jù)連接通道實(shí)現(xiàn)所述藍(lán)牙主設(shè)備中的第一應(yīng)用與所述第一藍(lán)牙從設(shè)備間的數(shù)據(jù)通信; 當(dāng)判斷不存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則與所述第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道,并保存建立的所述數(shù)據(jù)連接通道與所述第一藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述與所述第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道包括: 判斷是否已與所述第一藍(lán)牙從設(shè)備進(jìn)行配對(duì)操作; 當(dāng)判斷已與所述第一藍(lán)牙從設(shè)備進(jìn)行配對(duì)操作時(shí),向所述第一藍(lán)牙從設(shè)備發(fā)送通信連接請(qǐng)求以與所述第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括: 當(dāng)判斷未與所述第一藍(lán)牙從設(shè)備進(jìn)行配對(duì)操作時(shí),則根據(jù)所述第一藍(lán)牙從設(shè)備的設(shè)備信息判斷是否保存了與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信息;所述通信數(shù)據(jù)信息至少包括配對(duì)密鑰信息; 當(dāng)判斷保存了與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信息時(shí),利用所述通信數(shù)據(jù)信息中包含的所述配對(duì)密鑰信息向所述第一藍(lán)牙從設(shè)備發(fā)送配對(duì)請(qǐng)求消息; 當(dāng)接收到所述第一藍(lán)牙從設(shè)備發(fā)送的配對(duì)響應(yīng)消息時(shí),向所述第一藍(lán)牙從設(shè)備發(fā)送通信連接請(qǐng)求以與所述第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法還包括: 當(dāng)判斷未保存與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信息時(shí),顯示第一提示信息;其中,所述第一提示信息用于提示用戶(hù)輸入與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的通信數(shù)據(jù)信息。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 保存所述數(shù)據(jù)連接通道的引用計(jì)數(shù),所述引用計(jì)數(shù)用于表明所述數(shù)據(jù)連接通道對(duì)應(yīng)的應(yīng)用的數(shù)量; 當(dāng)有新的應(yīng)用使用所述數(shù)據(jù)連接通道時(shí),所述數(shù)據(jù)連接通道的引用計(jì)數(shù)加I ; 當(dāng)有與所述數(shù)據(jù)連接通道對(duì)應(yīng)的應(yīng)用退出時(shí),所述數(shù)據(jù)連接通道的引用計(jì)數(shù)減I; 當(dāng)所述數(shù)據(jù)連接通道的引用計(jì)數(shù)為O且所述數(shù)據(jù)連接通道的引用計(jì)數(shù)為O的狀態(tài)超過(guò)預(yù)設(shè)的空閑持續(xù)時(shí)間時(shí),中斷所述數(shù)據(jù)連接通道,釋放與所述數(shù)據(jù)連接通道對(duì)應(yīng)的系統(tǒng)資源,解除與所述藍(lán)牙從設(shè)備的通信連接。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 當(dāng)藍(lán)牙從設(shè)備處于不可連接狀態(tài)時(shí),中斷與所述藍(lán)牙從設(shè)備建立的數(shù)據(jù)連接通道; 顯示第二提示信息,所述第二提示信息用于提示用戶(hù)數(shù)據(jù)連接通道的狀態(tài)。
7.根據(jù)權(quán)利要求5或6所述的方法,其特征在于,所述方法還包括: 當(dāng)中斷與所述藍(lán)牙從設(shè)備的數(shù)據(jù)連接通道時(shí),保存所述數(shù)據(jù)連接通道的引用計(jì)數(shù)信息以及連接持續(xù)時(shí)間信息; 當(dāng)再次建立與所述藍(lán)牙從設(shè)備的數(shù)據(jù)連接通道時(shí),根據(jù)上一次保存的所述數(shù)據(jù)連接通道的引用計(jì)數(shù)信息以及連接持續(xù)時(shí)間信息設(shè)置空閑持續(xù)時(shí)間。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述利用所述數(shù)據(jù)連接通道實(shí)現(xiàn)所述藍(lán)牙主設(shè)備中的第一應(yīng)用與所述第一藍(lán)牙從設(shè)備間的數(shù)據(jù)通信包括: 接收所述第一藍(lán)牙從設(shè)備通過(guò)所述數(shù)據(jù)連接通道發(fā)送的應(yīng)用數(shù)據(jù); 對(duì)所述應(yīng)用數(shù)據(jù)進(jìn)行解析,并將解析后的應(yīng)用數(shù)據(jù)發(fā)送至藍(lán)牙主設(shè)備中對(duì)應(yīng)的應(yīng)用。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述對(duì)所述應(yīng)用數(shù)據(jù)進(jìn)行解析包括: 確定與所述應(yīng)用數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)連接通道,根據(jù)保存的數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系確定與所述數(shù)據(jù)連接通道對(duì)應(yīng)的藍(lán)牙從設(shè)備; 獲取與所述藍(lán)牙從設(shè)備對(duì)應(yīng)的預(yù)置的通信數(shù)據(jù)信息;所述預(yù)置的通信數(shù)據(jù)信息包括數(shù)據(jù)格式信息; 利用所述數(shù)據(jù)格式信息對(duì)所述應(yīng)用數(shù)據(jù)進(jìn)行解析將其轉(zhuǎn)換成預(yù)設(shè)的數(shù)據(jù)類(lèi)型。
10.根據(jù)權(quán)利要求8所述的方法,其特征在于,在接收所述第一藍(lán)牙從設(shè)備通過(guò)所述數(shù)據(jù)連接通道發(fā)送的應(yīng)用數(shù)據(jù)之后、在對(duì)所述應(yīng)用數(shù)據(jù)進(jìn)行解析之前,所述方法還包括: 利用預(yù)先保存的通信數(shù)據(jù)信息對(duì)所述應(yīng)用數(shù)據(jù)進(jìn)行長(zhǎng)度校驗(yàn)和/或校驗(yàn)和校驗(yàn);其中,所述通信數(shù)據(jù)信息包括校驗(yàn)信`息; 當(dāng)校驗(yàn)錯(cuò)誤時(shí),向所述第一藍(lán)牙從設(shè)備發(fā)送數(shù)據(jù)重發(fā)請(qǐng)求; 當(dāng)校驗(yàn)正確時(shí),進(jìn)入對(duì)所述應(yīng)用數(shù)據(jù)進(jìn)行解析的步驟。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述利用預(yù)先保存通信數(shù)據(jù)信息對(duì)所述應(yīng)用數(shù)據(jù)進(jìn)行校驗(yàn)和校驗(yàn),具體包括: 利用校驗(yàn)信息計(jì)算校驗(yàn)和,將計(jì)算的校驗(yàn)和與預(yù)先保存的校驗(yàn)和值進(jìn)行比較,如果相同,則確定校驗(yàn)正確;或者 從接收的應(yīng)用數(shù)據(jù)中提取所述藍(lán)牙從設(shè)備根據(jù)數(shù)據(jù)內(nèi)容生成的校驗(yàn)和; 利用校驗(yàn)信息計(jì)算校驗(yàn)和,將計(jì)算的校驗(yàn)和與提取的校驗(yàn)和進(jìn)行比較,如果相同,則確定校驗(yàn)正確。
12.根據(jù)權(quán)利要求8所述的方法,其特征在于,在接收藍(lán)牙主設(shè)備中的第一應(yīng)用發(fā)送的數(shù)據(jù)請(qǐng)求信息之后,所述方法還包括: 判斷是否存在與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的訂閱信息;其中,所述訂閱信息包括應(yīng)用信息以及藍(lán)牙從設(shè)備的設(shè)備信息; 如果不存在與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的訂閱信息,則保存與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的訂閱信肩、O
13.根據(jù)權(quán)利要求8或12所述的方法,其特征在于,所述將解析后的應(yīng)用數(shù)據(jù)發(fā)送至藍(lán)牙主設(shè)備中對(duì)應(yīng)的應(yīng)用包括: 利用預(yù)先保存的訂閱信息,確定與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的應(yīng)用信息; 利用所述應(yīng)用信息確定目標(biāo)應(yīng)用,并向確定的目標(biāo)應(yīng)用發(fā)送解析后的應(yīng)用數(shù)據(jù)。
14.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 接收藍(lán)牙主設(shè)備中的第二應(yīng)用發(fā)送的數(shù)據(jù)請(qǐng)求信息,所述數(shù)據(jù)請(qǐng)求信息至少包括與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的第一藍(lán)牙從設(shè)備的設(shè)備信息;根據(jù)所述數(shù)據(jù)請(qǐng)求中包含的第一藍(lán)牙從設(shè)備的設(shè)備信息以及保存的數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系判斷是否存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道; 當(dāng)判斷存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則利用所述數(shù)據(jù)連接通道實(shí)現(xiàn)所述藍(lán)牙主設(shè)備中的第二應(yīng)用與所述第一藍(lán)牙從設(shè)備間的數(shù)據(jù)通信; 當(dāng)判斷不存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則與所述第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道,并保存建立的所述數(shù)據(jù)連接通道與所述第一藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系。
15.一種藍(lán)牙設(shè)備通信裝置,其特征在于,所述裝置包括: 接收模塊,用于接收藍(lán)牙主設(shè)備中的第一應(yīng)用發(fā)送的數(shù)據(jù)請(qǐng)求信息,所述數(shù)據(jù)請(qǐng)求信息至少包括與所述數(shù)據(jù)請(qǐng)求對(duì)應(yīng)的第一藍(lán)牙從設(shè)備的設(shè)備信息; 第一判斷模塊,用于根據(jù)所述數(shù)據(jù)請(qǐng)求中包含的第一藍(lán)牙從設(shè)備的設(shè)備信息以及保存的數(shù)據(jù)連接通道與藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系判斷是否存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道; 數(shù)據(jù)通信模塊,用于當(dāng)判斷存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則利用所述數(shù)據(jù)連接通道實(shí)現(xiàn)所述藍(lán)牙主設(shè)備中的第一應(yīng)用與所述第一藍(lán)牙從設(shè)備間的數(shù)據(jù)通信; 通信連接建立模塊,用于當(dāng)判斷不存在與所述第一藍(lán)牙從設(shè)備對(duì)應(yīng)的數(shù)據(jù)連接通道時(shí),則與所述第一藍(lán)牙從設(shè)備建立數(shù)據(jù)連接通道; 通信連接管理模塊,用于保存建立的所述數(shù)據(jù)連接通道與所述第一藍(lán)牙從設(shè)備之間的對(duì)應(yīng)關(guān)系。
【文檔編號(hào)】H04W76/02GK103561479SQ201310488733
【公開(kāi)日】2014年2月5日 申請(qǐng)日期:2013年10月17日 優(yōu)先權(quán)日:2013年10月17日
【發(fā)明者】李永春, 張 榮, 李強(qiáng), 單日強(qiáng) 申請(qǐng)人:東軟熙康健康科技有限公司