新聞中心

        EEPW首頁 > 汽車電子 > 設計應用 > SyncML在藍牙車載信息娛樂設備上的設計與實現

        SyncML在藍牙車載信息娛樂設備上的設計與實現

        作者:馬建輝 山東省科學院自動化研究所 汽車電子重點實驗室 呂夢興 南京工業大學土木工程學院交通工程系 時間:2009-12-11 來源:電子產品世界 收藏

          

        本文引用地址:http://www.104case.com/article/101084.htm

          應用獨立于具體的傳輸方式,換言之,針對具體的傳輸方式,定義了相應的適配協議。對于應用, 協議定義了SyncML在上的實現方式。下面介紹協議,以及SyncML在OBEX上綁定時需要注意的地方。

          OBEX(Object Exchange)對象交換協議是采用C/S(客戶/服務器)結構的面向會話的協議,它建立了“對象模型”以抽象描述各種實體,并定義了Header的概念來描述對象,一個對象便是一系列Header的集合。

          OBEX定義了OBEX客戶端和服務器端的應用規范,客戶端是指發起OBEX連接、初始化OBEX會話的一端。根據車載設備要在免提連接建立后進行電話薄同步的應用,車載設備需要實現OBEX客戶端。OBEX客戶端在之前建立的Rfcomm連接的通道上發起連接請求,請求數據為80 00 15 11 00 04 00 46 00 0e 53 59 4e 43 4d 4c 2d 53 59 4e 43。其中0x80為連接操作符,連接請求包長度為0x0015,OBEX版本為version1.1,版本號表示為0x1100,最大OBEX包長度為0x0400,0x46表示Target,Target表明連接的目的或服務,在這里Target為53 59 4e 43 4d 4c 2d 53 59 4e 43即SYNCML-SYNC,表明建立的OBEX連接用于SyncML。

          SyncML Document需要封裝為SyncML MIME類型的對象在OBEX請求或響應主體內傳輸,該類型為"application/vnd.syncml+wbxml"。SyncML同步電話薄的速度是個很關鍵的用戶體驗,相關的關鍵屬性值為最大OBEX包長度,它決定了每次交互的OBEX包的大小,從而決定了交互次數,該最大包長度越大,交互次數越少,從而同步速度越快,反之,同步速度越慢。該最大包長度在OBEX連接時協商決定,取雙方設備能夠支持的最大包長度的較小值。

          SyncML的應用不可避免地會遇到兼容性問題,在測試過程中發現車載設備和Nokia6288手機進行同步時,車載設備通過PUT發給手機的SyncML Document的最后一包必須是空包82 00 03,否則無法繼續同步。

          vCard解析

          SyncML實現的藍牙手機和車載設備間電話薄同步應用中,首先提取出采用vCard格式的個人信息數據和相關命令,將數據和命令映射在一起存儲為結構體形式的列表,然后根據vCard規范解析出個人信息,根據命令完成添加、刪除和替代電話薄條目。解析出的個人信息包括人名、手機號碼、家庭電話、辦公電話和車載電話,命令為ADD、DELETE、REPLACE。下面簡要介紹vCard規范,以及vCard解析的實現。

          vCard電子名片規范定義了個人公共信息交換(PDI)的描述標準和組織格式,該格式與信息傳送的方式無關,方便了各種系統和應用之間的信息交換。在vCard中,個人公共信息包括姓名、年齡、地址、電話等與個人緊密相關的基本信息。手機內vCard樣例如下:

        BEGIN:VCARD
        VERSION:2.1
        N:denglibao
        TEL;WORK:045182605447
        TEL;HOME:05307415684
        TEL;CELL:13478951524
        END:VCARD

         

          現在使用的vCard規范版本為2.1和3.0,定義了數據的存儲格式及訪問接口的規范,vCard解析需要能夠解析這兩種版本。根據的應用,vCard解析函數需要提取出姓名和電話號碼兩個屬性,其中電話號碼又包括手機、家庭電話、辦公電話、車載電話四類,其屬性值均為TEL,參數值分別為CELL、HOME、WORK、CAR,下面給出設計代碼的主要部分。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 沭阳县| 原平市| 宜城市| 河南省| 阜康市| 晋城| 肥东县| 江西省| 仪陇县| 青州市| 青岛市| 吉木萨尔县| 乌审旗| 贵德县| 扬中市| 拉孜县| 正镶白旗| 马关县| 古交市| 神农架林区| 鄂伦春自治旗| 津南区| 湖州市| 黄冈市| 文昌市| 寻甸| 鄂尔多斯市| 陆川县| 定西市| 马关县| 秀山| 沙田区| 镇康县| 旬阳县| 田阳县| 阳谷县| 彩票| 晴隆县| 安远县| 阳城县| 荆州市|