OBEX作為一種基�(chǔ)�(xié)�,以對(duì)象模型封裝信息數(shù)�(jù),以會(huì)話協(xié)議規(guī)范傳輸應(yīng)�,在以信息傳輸為底層實(shí)�(xiàn)的各�(xiàng)�(yīng)用中得到了廣泛的�(yīng)�。在�(lán)牙技�(shù)的開�(fā)�(yīng)用中,OBEX是很多應(yīng)用剖面的底層�(xié)�,在其基礎(chǔ)上封裝實(shí)�(xiàn)了不同藍(lán)牙剖面應(yīng)�,大大拓展了藍(lán)牙技�(shù)的應(yīng)用領(lǐng)�,所以有必要深入研究并剖析OBEX�(xié)議。文中從�(duì)象模型和�(huì)話協(xié)議兩�(gè)方面詳細(xì)介紹了OBEX�(xié)�,并解析了其在�(lán)牙OPP、PBAP上的綁定�(shí)�(xiàn)�
OBEX(Object Exchange)�(xié)議將�(diǎn)�(duì)�(diǎn)�(shè)備間的信息交互應(yīng)用以面向?qū)ο蟮姆绞椒纸鉃�?shù)�(jù)+操作,把�(shù)�(jù)柔性抽象為�(duì)象來描述,同�(shí)定義一種信息交互方式規(guī)范操�。OBEX�(xié)議的兩�(gè)�(guān)鍵部分便是定義了�(duì)象模型和�(huì)話方�,對(duì)象模型依�(jù)�(yīng)用而定,定義了Header描述�(duì)象的一�(gè)方面,Header的集合便是一�(gè)完整的對(duì)�。會(huì)話采用請(qǐng)�-響應(yīng)方式,客戶端�(fā)起請(qǐng)�,服�(wù)器端給與響應(yīng)。下面從�(duì)象模型和�(huì)話協(xié)議上詳細(xì)解析下OBEX�(xié)��
�(duì)象模�
�(duì)象模型是�(duì)�(duì)象本身的抽象描述,它定義了Header的概�,一�(gè)Header描述�(duì)象的一�(gè)方面。對(duì)象模型是一系列Header的集合體,依�(jù)�(yīng)用而定,因?yàn)镺BEX是很多應(yīng)用的基礎(chǔ)�(xié)�,所以這里的應(yīng)用包括底層信息交互操作及其之上的�(yīng)�。對(duì)象模型可以認(rèn)為是�(duì)象和�(yīng)用之間的載體,因?yàn)樗环矫婷枋隽藢?duì)象信�,另一方面又滿足具體應(yīng)用的可操作性�
下面�(duì)Header舉�(gè)例子。比如文件傳輸應(yīng)�,將文件抽象為對(duì)象模型時(shí),需要的Header有文件名稱Name、文件數(shù)�(jù)�(zhǎng)度DataLength、文件類型Type,可能還�(huì)有ApplicatiON specific Header即具體應(yīng)用相�(guān)的Header,比如定義MASK選定文件�(shù)�(jù)只包含某些屬��
Header的形式為ID+Value,ID為單字節(jié),它定義了Value類及其表示格�,Bit7和Bit6指定了Value值的格式,如ID==0x01則表示NAME,格式為兩字節(jié)�(zhǎng)�+�0x00�(jié)尾的字符�?dāng)?shù)�(jù)的方式,�(dāng)文件名為teST.txt�(shí),Header即為01 00 0b 't' 'e' 's' 't' '.' 't' 'x' 't' 00。ID作為Value的一種描�,就像Header只是�(duì)象的一種描述一�,這種定義方式大大�(kuò)展了OBEX的Header空間�
OBEX�(huì)話協(xié)議定義了�(qǐng)�-響應(yīng)形式的會(huì)話式操作,定義發(fā)起請(qǐng)求的一端為客戶�,給與響�(yīng)的為服務(wù)器端,OBEX�(yīng)用便是在客戶端和服務(wù)器端的一系列�(qǐng)�-響應(yīng)�(huì)話中完成�。OBEX以“操作符”的方式來定義請(qǐng)�,以“回�(yīng)符”的方式定義響應(yīng)。操作符包括:連接CONNECT�0x80�、斷開連接DISCONNECT(0x81)、發(fā)送PUT(0x02,0x82)、索取GET(0x03,0x83)、設(shè)置路徑SETPATH(0x85)、中止當(dāng)前會(huì)話ABORT(0xff);回�(yīng)符有0x90-繼續(xù)�0xA0-成功和其他表示錯(cuò)誤原因的回應(yīng)符�
OBEX是�(gè)�(yán)�(jǐn)?shù)膮f(xié)�,其�(huì)話協(xié)議的�(shè)�(jì)�(shí)�(xiàn)首先遵從一問一答的�(huì)話方式,如果在沒有應(yīng)答之前發(fā)送下一�(gè)�(qǐng)求會(huì)造成服務(wù)器端拒絕該請(qǐng)�;其次客戶端和服�(wù)器端都定義了一系列狀�(tài)表示�(huì)話�(jìn)程及�(jìn)行狀�(tài)的跳�(zhuǎn),比如當(dāng)前�(jìn)行的PUT操作,當(dāng)操作符為0x02,服�(wù)器端給與回應(yīng)�0x90之后,客戶端這時(shí)不能�(jìn)行GET操作,必須等到發(fā)完了一包即操作符為0x82,服�(wù)器端給與回應(yīng)�0xA0之后才能�(fā)起GET�(qǐng)�,否則GET�(qǐng)求會(huì)被服�(wù)器端視為�(cuò)誤的�(qǐng)求而給與錯(cuò)誤回�(yīng)�
PBAP(PhoneBook Access Profile)是專門為藍(lán)牙車載設(shè)備自�(dòng)下載手機(jī)�(nèi)的電話本和呼叫日志而定義的一套協(xié)�,它將電話本和呼叫日志定義成特定的對(duì)象模�,定義了五種文件-Local Phone電話�、SIM卡電話本、Dialed Call、Missed Call、Received Call,文件類型Type和文件名Name均固�,如SIM卡的電話本文件類型為"x-^/phonebook",文件名�"SIM1/telecom/pb.vcf"�
PBAP在OBEX上的適配非常�(jiǎn)�,客戶端(車載設(shè)備)向服�(wù)器端(手�(jī))發(fā)起連接�(qǐng)求時(shí)指定Target�796135f0-f0c5-11d8-0966-0800200c9a66(十六�(jìn)制),表示OBEX連接的目的是PBAP�(yīng)�,建立連接�,客戶端�(fā)起GET命令,請(qǐng)求類型為"x-^/phonebook",名稱為"SIM1/telecom/pb.vcf"的文件,便能下載SIM卡中的電話本。PABP可以通過一�(gè)Application Specific Header�(shè)置電話本�(shù)�(jù)即VCARD中含有的屬性,一般設(shè)置為含有VERSION-版本、N名字、TEL電話�(hào)�,PHOTO之類的數(shù)�(jù)量很大但無用的屬性便可以過濾�,從而減少了傳輸�(shù)�(jù)�,加快了下載速度�
相比較于沒有得到普及的IrMC電話本同�,PBAP只提供下載功能,而沒有動(dòng)�(tài)更新的功�,從而不用定義特別的命令,在OBEX之上采用GET命令便能�(shí)�(xiàn),正因其�(jiǎn)�,所以被大多�(shù)手機(jī)廠商所接受得到了大量的�(yīng)��
維庫(kù)電子�,電子知�(shí),一查百通!
已收錄詞�153979�(gè)