posts - 93,  comments - 2,  trackbacks - 0
          問題:按照NDEF消息格式來解析下列Hex串?

          D1 02 1F 53 70 91 01 0E 54 02 
          65 6E 68 65 6C 6C 6F 20 77 6F 
          72 6C 64 51 01 09 55 01 73 69 
          6E 61 2E 63 6F 6D

          解答:
              
          (1)NDEF記錄格式如下,
             
              
              Byte 0: D1
              0xD1 = 11010001B,對應(yīng)的標(biāo)志位如下:
              MB(Message Begin) = 1,說明這是首記錄
              ME(Message End) = 1,說明這是末記錄(說明消息只有一個記錄)
              CF(Chunk Flag) = 0,說明記錄未被切塊
              SR(Short Record) = 1,說明這是短記錄,PAYLOAD_LENGTH 占1字節(jié)
              IL(ID_LENGTH field is present) = 0,說明沒有 ID_LENGTH 和 ID 域
              TNF(Type Name Format) = 1,說明TYPE類型是 NFC Forum well-known type [NFC RTD],
               下表是TNF編碼對應(yīng)表
              
                  因為SR=1且IL=0,所以NDEF記錄可簡化為如下結(jié)構(gòu)
                  
              Byte 1: 02
              TYPE_LENGTH = 2,TYPE域長度為2

              Byte 2: 1F
              PAYLOAD_LENGTH = 0x1F,Payload域長度為31

              Byte 3-4: 53 70
              TYPE = "Sp",因為TYPE域長度為2,所以此處TYPE取2個字節(jié)

              此后全是PAYLOAD域的內(nèi)容,因為TYPE="Sp",所以需要使用的Spec是“Smart Poster Record Type Definition”

             (2)智能海報的記錄類型其實也是一個NDEF消息。沒錯,NDEF記錄的PAYLOAD域可以存放任何東西,包括嵌套NDEF消息。

              智能海報的內(nèi)容可以包括標(biāo)題、URI、動作、圖標(biāo)、大小、類型等記錄,其中URI記錄是必須有的,其他的可選,次序無所謂。

                  1)現(xiàn)在將智能海報的內(nèi)容貼過來,如下

              91 01 0E 54 02 65 6E 68 65 6C 
              6C 6F 20 77 6F 72 6C 64 51 01 
              09 55 01 73 69 6E 61 2E 63 6F 
              6D

              Byte 0: 91
              0x91 = 10010001B,對應(yīng)的標(biāo)志位如下:
              MB = 1,說明這是首記錄
              ME = 0,說明后面還有記錄
              CF = 0,說明記錄未被切塊
              SR = 1,說明這是短記錄,PAYLOAD_LENGTH 占1字節(jié)
              IL = 0,說明沒有 ID_LENGTH 和 ID 域
              TNF = 1,說明TYPE類型是 NFC Forum well-known type

              Byte 1: 01
              TYPE_LENGTH = 1,TYPE域長度為1

              Byte 2: 0E
              PAYLOAD_LENGTH = 0x0E,Payload域長度為14

              Byte 3: 54
              TYPE = "T",說明是文本記錄類型,適用“Text Record Type Definition”

              Byte 4-17: 02 65 6E 68 65 6C 6C 6F 20 77 6F 72 6C 64 
              這是文本記錄的內(nèi)容

              下面對“02 65 6E 68 65 6C 6C 6F 20 77 6F 72 6C 64”按照文本記錄格式解碼。

              文本記錄格式如下:
              
                  
              Byte 0: 02
              Status = 2,由下表可知,IANA語言碼長度=2
              
              Byte 1-2: 65 6E
              ISO/IANA語言碼 = “en”,編碼為US-ASCII碼

              Byte 3-13:68 65 6C 6C 6F 20 77 6F 72 6C 64
              按照ASCII碼解碼可得“hello world”

              至此,對海報內(nèi)容的第一條NDEF記錄解碼完成,接下來是對剩余內(nèi)容解碼。

                  2)剩余內(nèi)容為“51 01 09 55 01 73 69 6E 61 2E 63 6F 6D”,同樣也是按照NDEF記錄來解碼。

              Byte 0: 51
              0x91 = 01010001B,對應(yīng)的標(biāo)志位如下:
              MB = 0,說明這不是首記錄
              ME = 1,說明這是末記錄
              CF = 0,說明記錄未被切塊
              SR = 1,說明這是短記錄,PAYLOAD_LENGTH 占1字節(jié)
              IL = 0,說明沒有 ID_LENGTH 和 ID 域
              TNF = 1,說明TYPE類型是 NFC Forum well-known type

              Byte 1: 01
              TYPE_LENGTH = 1,TYPE域長度為1

              Byte 2: 09
              PAYLOAD_LENGTH = 0x09,Payload域長度為9

              Byte 3: 55
              TYPE = "U",說明是URI記錄類型,適用“URI Record Type Definition”

              Byte 4-12: 01 73 69 6E 61 2E 63 6F 6D
              這是URI記錄的內(nèi)容

              URI記錄內(nèi)容格式如下:
                  
                  
              Byte 0: 01
              ID碼 = 1,由下表可知,對應(yīng)的協(xié)議是“http://www.”
               
                              
                          
              Byte 1-8: 73 69 6E 61 2E 63 6F 6D
              按照UTF-8格式解碼可得:“sina.com”

              至此,整個NDEF消息解碼完畢。

              回顧一下吧,整個結(jié)構(gòu)的解碼將其如下分解:

              D1 02 1F 53 70                                        <-- 智能海報
              91 01 0E 54 02 65 6E 68 65 6C 6C 6F 20 77 6F 72 6C 64 <-- 文本
              51 01 09 55 01 73 69 6E 61 2E 63 6F 6D                <-- URI

          posted on 2014-05-14 16:17 Terry Zou 閱讀(1852) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          <2014年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          Java

          搜索

          •  

          最新隨筆

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 南宫市| 阜阳市| 浙江省| 肇源县| 孝感市| 丰原市| 东莞市| 怀仁县| 泰宁县| 怀远县| 邹平县| 纳雍县| 宜川县| 石狮市| 马鞍山市| 思南县| 措美县| 安多县| 云安县| 保康县| 静安区| 盘山县| 井陉县| 天全县| 长沙市| 望江县| 枣强县| 子洲县| 长汀县| 太白县| 志丹县| 铅山县| 道真| 海伦市| 新龙县| 张家口市| 开封市| 东方市| 昌宁县| 喀什市| 阿拉善盟|