專利名稱:通過單個虛擬端口的藍牙通信的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及帶藍牙功能的設(shè)備,并更特別地用于增強藍牙協(xié)議的串列埠定義(SPP)的可用性。
背景技術(shù):
藍牙通信協(xié)議是用于設(shè)備間短距離無線通信的系統(tǒng)。
在典型情況下,帶藍牙功能的設(shè)備A期望使用藍牙連接與帶同樣功能的設(shè)備B通信。在傳統(tǒng)的配置中,當(dāng)設(shè)備處于通信范圍內(nèi)時,不能剛開始就進行通信。也就是,設(shè)備A沒有預(yù)先得知設(shè)備B的存在,因此不能與其通信。圖1示出了用于建立通信的處理的流程圖。在步驟102中,當(dāng)通信被請求的時候,設(shè)備A執(zhí)行掃描關(guān)聯(lián)(scan-associate)處理。該掃描關(guān)聯(lián)處理經(jīng)常是耗時的處理,通常需要多達幾分鐘的時間。在步驟104中,設(shè)備B的存在被建立。隨著設(shè)備B的存在被建立,在步驟106中,虛擬串行端口在設(shè)備A中被創(chuàng)建,并且在步驟108中,設(shè)備A和設(shè)備B之間的通信被啟動。
圖2是可在上述方法中使用的帶藍牙功能的設(shè)備A202的示意圖。連同一些硬件一起,該圖呈現(xiàn)了藍牙通信中涉及的功能組件,其中功能組件是軟件的單元或由與設(shè)備202的硬件交互的軟件創(chuàng)建的狀態(tài)。
在設(shè)備A202中運行的應(yīng)用程序204請求與設(shè)備B203進行藍牙通信。藍牙堆棧210可被提供在設(shè)備202的操作系統(tǒng)之內(nèi)或之外。堆棧210實現(xiàn)藍牙功能的多個層,它提供RFComm協(xié)議的實現(xiàn)以模擬藍牙無線電(Bluetooth radio)212的串行端口功能,并且它提供SDP的實現(xiàn)以發(fā)現(xiàn)和搜索藍牙設(shè)備和服務(wù)。
用戶使用藍牙管理器208來激活至諸如設(shè)備B203的遠程設(shè)備的連接。然后藍牙管理器208與創(chuàng)建虛擬串行端口的藍牙堆棧210交互。藍牙管理器208與堆棧210通信并與堆棧210無關(guān)地獨立執(zhí)行。藍牙管理器208適于提供用戶與堆棧210之間的接口。在該實例中,虛擬串行端口BSP2206被開啟。藍牙堆棧210經(jīng)由虛擬串行端口206接收來自應(yīng)用程序204的數(shù)據(jù),并將其提供給藍牙無線電212。
在現(xiàn)有技術(shù)的另一個系統(tǒng)中,自動掃描關(guān)聯(lián)處理被周期地執(zhí)行以確定可用于通信的藍牙設(shè)備。一旦確定對于特定設(shè)備而言通信將是可能的,就將其添加到可用于通信的設(shè)備的列表中。在上述系統(tǒng)中,可能的設(shè)備的列表不是由用戶配置的。
在現(xiàn)有技術(shù)中,也存在著這樣的系統(tǒng),其藍牙通信的可用性是有優(yōu)勢的,但不合乎需要的是,其使得系統(tǒng)在掃描關(guān)聯(lián)處理中變得“可發(fā)現(xiàn)”。對于處在公共場所中的系統(tǒng)而言,可能會出現(xiàn)這樣的情況。在此情況下,系統(tǒng)不希望藍牙功能對公眾中可以訪問該系統(tǒng)并且具有掃描帶藍牙功能的設(shè)備的能力的任何成員可見。
因此,需要有一種系統(tǒng),其在通信時不需要掃描關(guān)聯(lián)處理,向用戶提供可與其建立通信的設(shè)備的可配置列表,并且不需要系統(tǒng)將其自身識別為對其它帶藍牙功能的設(shè)備“可發(fā)現(xiàn)”。
發(fā)明內(nèi)容
本發(fā)明涉及一種用于藍牙協(xié)議中的SPP的系統(tǒng)和方法。
本發(fā)明的一個目的是提供用于藍牙通信的一種改進的系統(tǒng)和方法。本發(fā)明的進一步的目的是消除或減輕現(xiàn)有技術(shù)中的至少一個缺陷。
根據(jù)本發(fā)明的一個方面,提供了一種提供從第一帶藍牙功能的設(shè)備至第二帶藍牙功能的設(shè)備的藍牙通信的系統(tǒng)。該系統(tǒng)包括提供圖形用戶界面的藍牙管理器;輸出端口驅(qū)動器,其與藍牙管理器共享配置信息并由藍牙管理器啟動;第一串行端口,其接收來自在第一設(shè)備上運行的應(yīng)用程序的數(shù)據(jù),該第一串行端口充當(dāng)虛擬串行端口,其中第一串行端口不連接到通信硬件;第二串行端口,其被連接到通信硬件,該第二串行端口充當(dāng)輸出端口;以及藍牙堆棧,其接收將從第二串行端口傳遞的數(shù)據(jù);其中輸出端口驅(qū)動器引導(dǎo)來自第一串行端口的數(shù)據(jù)經(jīng)由該輸出端口驅(qū)動器到達第二串行端口。
本發(fā)明的該概述不一定描述本發(fā)明的所有特征。在結(jié)合附圖閱覽過本發(fā)明的以下描述后,本發(fā)明的其它方面和優(yōu)點以及本發(fā)明的不同實施例的結(jié)構(gòu)和操作,對于本領(lǐng)域的普通技術(shù)人員來說將是顯而易見的。
根據(jù)參考了附圖的以下描述,本發(fā)明的這些和其它特征將變得更顯而易見,在附圖中圖1是現(xiàn)有技術(shù)中用于連接到藍牙設(shè)備的方法的流程圖;圖2是現(xiàn)有技術(shù)中藍牙設(shè)備的組件的示意性框圖;圖3是根據(jù)本發(fā)明的實施例的藍牙設(shè)備的示意性框圖;圖4是根據(jù)本發(fā)明的實施例的藍牙設(shè)備的組件的示意性框圖;圖5a是根據(jù)本發(fā)明的實施例的配置藍牙設(shè)備的方法的流程圖;圖5b是根據(jù)本發(fā)明的實施例的用于建立與藍牙設(shè)備的通信的方法的流程圖;圖6a是示出根據(jù)本發(fā)明的實施例的與藍牙設(shè)備的連接的示意性框圖;圖6b是示出根據(jù)本發(fā)明的實施例的與藍牙設(shè)備的連接的示意性框圖;具體實施方式
本發(fā)明提供了使得能夠在兩個帶藍牙功能的設(shè)備之間進行藍牙通信的系統(tǒng)和方法。該方法允許用戶配置,限制所開啟串行端口的數(shù)目,并且在通信時不需要用戶執(zhí)行掃描關(guān)聯(lián)處理。
圖3示意性地描繪了可在其上運用本發(fā)明的設(shè)備。在本實施例中,該設(shè)備是適于采集數(shù)據(jù)的手持終端。設(shè)備301包含CPU302、隨機存取存儲器304、非易失性存儲器306和藍牙無線電308。本實施例的設(shè)備還包含RF無線電310。術(shù)語無線電用于描述RF無線電310和藍牙無線電308,一般包括對本領(lǐng)域技術(shù)人員來說將顯而易見的為這些類型的通信所需的那些元件。本發(fā)明的系統(tǒng)一般被作為電子信號存儲在非易失性存儲器306中。該系統(tǒng)可以在CPU302中運行并且可在操作期間被全部或部分地加載在RAM304中。對本領(lǐng)域技術(shù)人員來說將顯而易見的是,本發(fā)明可以用在適于存儲和運行程序的任何設(shè)備中并且能夠用于進行藍牙通信。對本領(lǐng)域技術(shù)人員來說顯而易見的是,圖3不一定示出帶藍牙功能的設(shè)備301內(nèi)的所有組件。
圖4是根據(jù)本實施例的帶藍牙功能的設(shè)備402的示意性框圖。圖4描繪了當(dāng)設(shè)備402與設(shè)備B203通信時該設(shè)備的特征。如在圖2中那樣,圖4中示出的元件可以是硬件元件、軟件或通過軟件構(gòu)建的狀態(tài),并且后兩個元件通常與包括圖3中示出的元件的硬件元件交互,和/或在其上運行。圖4也描繪了不同元件間交互的性質(zhì)。實線塊箭頭表示元件之間的數(shù)據(jù)流和/或功能調(diào)用,而虛線箭頭表示配置信息的交換。
在本實施例中,設(shè)備A402,特別是CPU302,在其上運行著WindowsTMCE操作系統(tǒng)。對本領(lǐng)域技術(shù)人員顯而易見的是,包括但不限于Linux、Apple OS X和Palm OS的其它操作系統(tǒng)也在本發(fā)明的范圍內(nèi)。藍牙管理器407是由設(shè)備A402的用戶用來配置設(shè)備402的藍牙子系統(tǒng)用于通信的圖形用戶界面(GUI)。藍牙管理器407與藍牙堆棧412通信并向輸出端口驅(qū)動器408提供配置信息。在本實施例中,堆棧412是由Windows CE操作系統(tǒng)提供的MicrosoftTM藍牙堆棧。適于所實現(xiàn)的操作系統(tǒng)(包括Windows CE)的藍牙堆棧的其它實現(xiàn)方案也在本發(fā)明的范圍內(nèi)。
輸出端口驅(qū)動器408是本實施例的中心實體。該輸出端口驅(qū)動器408是.DLL文件形式的虛擬設(shè)備驅(qū)動器。輸出端口驅(qū)動器408創(chuàng)建虛擬串行端口406和成為輸出端口的輸出串行端口410(BSP9)。虛擬串行端口406由應(yīng)用程序404使用。在這樣的意義上,其是虛擬端口應(yīng)用程序404將其認為是輸出端口,而它不具有任何與之相關(guān)的物理串行通信硬件。輸出端口驅(qū)動器408還向用戶提供藍牙管理器407并確保藍牙堆棧412連接到期望的設(shè)備。
虛擬串行端口406、輸出端口驅(qū)動器408、輸出串行端口410、藍牙堆棧412都是在應(yīng)用程序404和藍牙無線電414之間形成的數(shù)據(jù)路徑的元件。
本發(fā)明的系統(tǒng)允許帶藍牙功能的設(shè)備之間的通信,而無需在通信的時候執(zhí)行掃描關(guān)聯(lián)處理。此外,該方法允許與固定設(shè)備列表中的設(shè)備通信。這些方面現(xiàn)在將參考圖4示出的系統(tǒng)來考慮。
根據(jù)本發(fā)明的實施例的通信方法分兩個步驟執(zhí)行。在第一步驟中,為通信配置設(shè)備。該步驟在期望進行通信之前發(fā)生。其可由用戶或系統(tǒng)管理員執(zhí)行并且可被認為是建立程序。第二步驟在通信的時候發(fā)生。在這個步驟期間,設(shè)備如圖4中圖示的那樣被配置。
圖5a示出了根據(jù)本發(fā)明的實施例的建立程序。在步驟502,執(zhí)行掃描關(guān)聯(lián)處理。在步驟504中,將響應(yīng)該處理的設(shè)備添加到可用設(shè)備的菜單中。在步驟506中,處理詢問是否還有任何設(shè)備要添加到可用設(shè)備的列表中。如果有其它的設(shè)備,則處理返回步驟502并且執(zhí)行另一掃描關(guān)聯(lián)處理。如果沒有其它設(shè)備要被登記,則處理轉(zhuǎn)到步驟508,在該步驟中列出可用設(shè)備的菜單被提供。關(guān)于圖4的討論,設(shè)備B203將是上述菜單中列出的設(shè)備。
圖5b示出了當(dāng)期望進行通信時建立通信的方法的流程圖。在步驟520中,藍牙管理器407接收指令以加載輸出端口驅(qū)動器408。在步驟522中,輸出端口驅(qū)動器408被加載。輸出端口驅(qū)動器408在步驟524中開始執(zhí)行。在步驟526中,其創(chuàng)建稱為BSP2的虛擬串行端口406,并在端口406上監(jiān)聽。應(yīng)用程序404開啟虛擬串行端口406,并且用戶從選擇菜單中選擇將與其進行遠程連接的藍牙設(shè)備,諸如設(shè)備B203。在步驟528中,輸出端口驅(qū)動器408接收該選擇。在步驟530中,輸出端口驅(qū)動器408與藍牙堆棧412通信以創(chuàng)建輸出串行端口410(BSP9)。在步驟532中,輸出端口驅(qū)動器408創(chuàng)建該輸出串行端口410。輸出端口驅(qū)動器408將來自應(yīng)用程序404的所有數(shù)據(jù)流,經(jīng)由虛擬串行端口406改向至輸出串行端口410。因此在步驟534中,數(shù)據(jù)業(yè)務(wù)被傳送到該端口并從該端口被傳送。
圖6a和6b示意性地示出了用于連接到新設(shè)備的程序。在圖6a中,應(yīng)用程序602與設(shè)備X604通信,其中應(yīng)用程序602被運行在設(shè)備605中。特別地,來自應(yīng)用程序602的數(shù)據(jù)流經(jīng)虛擬串行端口606(BSP2)到達輸出端口驅(qū)動器608并經(jīng)由串行端口610到達設(shè)備X604。設(shè)備X604是從由設(shè)備A402訪問并包含在設(shè)備A402內(nèi)的選擇菜單中選擇出的。
當(dāng)設(shè)備A605的用戶希望與另一設(shè)備(諸如設(shè)備Y614)建立通信時,他們調(diào)出選擇菜單并從中選擇設(shè)備。輸出端口驅(qū)動器608保持其創(chuàng)建的端口BSP2606,但是通過刪除端口BSP9610而撤消與設(shè)備X604之間的連接。驅(qū)動器608通過再次創(chuàng)建端口BSP9610激活其與設(shè)備Y614之間的新連接。這提供與新設(shè)備614之間的無縫切換,而無需執(zhí)行掃描關(guān)聯(lián)處理。
下面的實例示出了本實施例的系統(tǒng)和方法的操作和使用。在倉庫(warehouse)情況下,存在著對手持數(shù)據(jù)捕獲終端的操作者可能必須與其通信的網(wǎng)絡(luò)訪問接入點、打印機和掃描儀的選擇。以預(yù)先確定的時間間隔,管理員對用戶期望與其通信的帶藍牙功能的設(shè)備執(zhí)行掃描關(guān)聯(lián)處理。一旦該處理被執(zhí)行,可用設(shè)備的列表就被編制。在手持終端的使用期間,用戶可以從選擇菜單中選擇將與其建立通信的設(shè)備。
輸出端口提示模式是用戶可以經(jīng)由管理輸出端口選擇菜單的行為的藍牙管理器設(shè)置的配置。其具有兩種選擇“每次”和“一次”。將值設(shè)為“每次”意味著當(dāng)每次應(yīng)用程序“開啟”輸出端口時輸出端口選擇菜單將自動出現(xiàn)。將值設(shè)置為“一次”意味著僅當(dāng)應(yīng)用程序“開啟”輸出端口并且沒有遠程設(shè)備的當(dāng)前選擇時,輸出端口選擇菜單才將自動出現(xiàn)。輸出端口選擇菜單的熱鍵調(diào)用是可用的,而不管輸出端口提示模式的值如何。
盡管已經(jīng)根據(jù)當(dāng)前認為是更實際和優(yōu)選的實施例描述了本發(fā)明,但必須理解的是,本發(fā)明不限于所公開的實施例。本領(lǐng)域的普通技術(shù)人員可以理解的是,可以進行各種各樣的修改和提出等效結(jié)構(gòu)和功能而不脫離如權(quán)利要求所限定的本發(fā)明的精神和范圍。因此,如權(quán)利要求所限定的本發(fā)明必須與最廣闊的可能的解釋相一致,以便包括所有這些修改及等效結(jié)構(gòu)和功能。
權(quán)利要求
1.一種提供從第一帶藍牙功能的設(shè)備至第二帶藍牙功能的設(shè)備的藍牙通信的系統(tǒng),所述系統(tǒng)位于所述第一帶藍牙功能的設(shè)備內(nèi),所述系統(tǒng)包括藍牙管理器,其提供圖形用戶界面;輸出端口驅(qū)動器,其與所述藍牙管理器共享配置信息并由所述藍牙管理器啟動;第一串行端口,其接收來自在所述第一設(shè)備上運行的應(yīng)用程序的數(shù)據(jù),所述第一串行端口充當(dāng)虛擬串行端口,其中所述第一串行端口不與通信硬件連接;第二串行端口,其被連接到通信硬件,所述第二串行端口充當(dāng)輸出端口;以及藍牙堆棧,其接收將從所述第二串行端口傳遞的數(shù)據(jù);其中,所述輸出端口驅(qū)動器引導(dǎo)來自所述第一串行端口的數(shù)據(jù)經(jīng)由所述輸出端口驅(qū)動器到達所述第二串行端口。
2.如權(quán)利要求1所述的系統(tǒng),其中,數(shù)據(jù)從所述藍牙堆棧被傳遞到藍牙無線電。
3.一種建立提供藍牙通信的通信路徑的方法,其中數(shù)據(jù)被傳遞到應(yīng)用程序并從應(yīng)用程序傳遞到正在執(zhí)行所述方法的設(shè)備內(nèi)的藍牙無線電,所述方法包括以下步驟接收指令以啟用端口;創(chuàng)建虛擬串行端口并使用輸出端口驅(qū)動器在其上監(jiān)聽;開啟所述虛擬串行端口;接收對將與其進行通信的設(shè)備的選擇,所述設(shè)備被列在菜單上;創(chuàng)建輸出串行端口;以及經(jīng)由所述輸出端口驅(qū)動器將來自所述虛擬串行端口的數(shù)據(jù)路由到所述輸出串行端口。
全文摘要
本發(fā)明提供了一種提供從第一帶藍牙功能的設(shè)備至第二帶藍牙功能的設(shè)備的藍牙通信的系統(tǒng)。該系統(tǒng)包括提供圖形用戶界面的藍牙管理器;輸出端口驅(qū)動器,其與藍牙管理器共享配置信息并由藍牙管理器啟動;第一串行端口,其接收來自在第一設(shè)備上運行的應(yīng)用程序的數(shù)據(jù),該第一串行端口充當(dāng)虛擬串行端口,其中第一串行端口不連接到通信硬件;第二串行端口,其被連接到通信硬件,該第二串行端口充當(dāng)輸出端口;以及藍牙堆棧,其接收將從第二串行端口傳遞的數(shù)據(jù);其中輸出端口驅(qū)動器引導(dǎo)來自第一串行端口的數(shù)據(jù)經(jīng)由該輸出端口驅(qū)動器到達第二串行端口。
文檔編號G06F13/38GK101013902SQ20061006426
公開日2007年8月8日 申請日期2006年12月30日 優(yōu)先權(quán)日2005年12月30日
發(fā)明者R·李 申請人:得邏輯公司