0
避けては通れないバイナリ地獄  - NDEFってなんだろう -  山下智樹 / tomorrowkey
もくじ•   自己紹介•   NDEFって何?•   なぜNDEFが重要になる?•   もっとNDEFを知ろう•   ちょっとRTD•   NDEF完成•   さらなるNDEFの世界へ…
自己紹介
自己紹介• NFCラボ運営委員• 山下智樹 / @tomorrowkey• 株式会社ブリリアントサービス• バイナリ楽しい!
NDEFって何?
NDEFとは• NFC Data Exchange Format• NFCの通信で使用されるデータ・ フォーマット
なぜNDEFが重要になる?
NFCのモード• Reader/Writer Mode• P2P Mode• Card Emulation Mode
どんなモードでもNDEFは避けて通れない
でも、バイナリまで知ってる必要あるの?
各プラットフォームのNDEFについて• Android SDK API Level 16   •   一部サポート   •   PAYLOADについては自作する必要あり   •   作成はRTD-URIのみサポート、パースはURIに関連するもの...
探せばそのへんにライブラリ落ちてます
避けて通れます
趣味です
もっとNDEFを知ろう
NDEF Message• NDEFには一つのNDEF Messageが含 まれる• NDEF Messageには1つ以上の NDEF Recordが含まれる            構成
NDEF Record    構成
FLAGS•   MB(Message Begin)    •   NDEF Messageの始まりを意味する•   ME(Message End)    •   NDEF Messageの終わりを意味する•   CF(Chunked Flag...
TNF (Type Name Format)        •   TYPEフィールドの種類を表す        •   3bitの値を設定する            •   0x00 Empty            •   0x01 NFC...
TYPE LENGTH  •   符号なし8bit整数  •   TYPEフィールドの長さを指定する
PAYLOAD LENGTH    •   SRの値によって長さが変化する    •   符号なしビックエンディアン    •   PAYLOADの長さを指定する
ID LENGTH •   ILの値によって無い場合がある •   符号なし8bit整数 •   IDの長さを指定する
TYPE•   TYPE LENGTHによって長さが変わる•   TNFの値によって設定値が変わる•   0x01 well-known typesだった場合    •   T ... Text Record    •   U ... URI ...
ID•   ILの値によって無い場合がある•   ID LENGTHによって長さが変わる•   IDを設定することができる
PAYLOAD •   PAYLOAD LENGTHの値によって長さが     変化する •   TNFとTYPEの値によって内容が変わる •   well-known typesの仕様書はNFC     Forumに定義されています
ちょっとRTD
RTD• Record Type Definition• Typeでwell-known-type(0x01)を指定 した場合に使用されるフォーマット• NFC Forumで仕様書を見ることができ ます。  •   http://www.nfc-...
RTDの種類• Text• URI• SmartPoster• Generic Control• Handover Request / Select / Carrier• Signature
Textだけ紹介   構成
Encode• テキストの文字コードを表す• 0 ... UTF-8• 1 ... UTF-16
RFU• Reserved For Future Use
Language Code Length• 言語コードの長さを指定する
Language Code•   言語コードを表す•   Language Code Lengthによって長さが変わる•   ISO/IANA    •   en ... English    •   en-us ... English(Uni...
Actual Text•   実際のテキスト•   PAYLOADの残り部分•   Encodeで指定されたエンコードを使用する
NDEF完成!
Hello, World.と書かれたNDEF                    •   FLAGS                        •   Message Begin : 1                        • ...
さらなるNDEFの世界へ
まだ始まったばかり• 紹介したフォーマットはごく一部• well-known-typeだけでも知っておく べき
おわり
Upcoming SlideShare
Loading in...5
×

避けては通れないバイナリ地獄 - NDEFってなんだろう -

10,171

Published on

2012年7月28日NFC定例会での発表資料です

Published in: Technology
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
10,171
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
69
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript of "避けては通れないバイナリ地獄 - NDEFってなんだろう -"

    1. 1. 避けては通れないバイナリ地獄 - NDEFってなんだろう - 山下智樹 / tomorrowkey
    2. 2. もくじ• 自己紹介• NDEFって何?• なぜNDEFが重要になる?• もっとNDEFを知ろう• ちょっとRTD• NDEF完成• さらなるNDEFの世界へ…
    3. 3. 自己紹介
    4. 4. 自己紹介• NFCラボ運営委員• 山下智樹 / @tomorrowkey• 株式会社ブリリアントサービス• バイナリ楽しい!
    5. 5. NDEFって何?
    6. 6. NDEFとは• NFC Data Exchange Format• NFCの通信で使用されるデータ・ フォーマット
    7. 7. なぜNDEFが重要になる?
    8. 8. NFCのモード• Reader/Writer Mode• P2P Mode• Card Emulation Mode
    9. 9. どんなモードでもNDEFは避けて通れない
    10. 10. でも、バイナリまで知ってる必要あるの?
    11. 11. 各プラットフォームのNDEFについて• Android SDK API Level 16 • 一部サポート • PAYLOADについては自作する必要あり • 作成はRTD-URIのみサポート、パースはURIに関連するものをサ ポート• Windows(SDK for NFC Starter Kit Ver.1.0) • コマンド発行までサポート • NDEFはすべて自作する必要あり
    12. 12. 探せばそのへんにライブラリ落ちてます
    13. 13. 避けて通れます
    14. 14. 趣味です
    15. 15. もっとNDEFを知ろう
    16. 16. NDEF Message• NDEFには一つのNDEF Messageが含 まれる• NDEF Messageには1つ以上の NDEF Recordが含まれる 構成
    17. 17. NDEF Record 構成
    18. 18. FLAGS• MB(Message Begin) • NDEF Messageの始まりを意味する• ME(Message End) • NDEF Messageの終わりを意味する• CF(Chunked Flag) • 分割されたNDEF Messageの一部を意味する• SR(Short Record) • 255Byte以下のレコードを意味する • PAYLOAD LENGTHが1Byteになる• IL(ID Length) • IDが設定されていることを意味する
    19. 19. TNF (Type Name Format) • TYPEフィールドの種類を表す • 3bitの値を設定する • 0x00 Empty • 0x01 NFC Forum well-known-type • 0x02 Media-type as define in RFC2046 • 0x03 Absolute URI as define in RFC3986 • 0x04 NFC Forum external type • 0x05 Unknown • 0x06 Unchanged • 0x07 Reserved
    20. 20. TYPE LENGTH • 符号なし8bit整数 • TYPEフィールドの長さを指定する
    21. 21. PAYLOAD LENGTH • SRの値によって長さが変化する • 符号なしビックエンディアン • PAYLOADの長さを指定する
    22. 22. ID LENGTH • ILの値によって無い場合がある • 符号なし8bit整数 • IDの長さを指定する
    23. 23. TYPE• TYPE LENGTHによって長さが変わる• TNFの値によって設定値が変わる• 0x01 well-known typesだった場合 • T ... Text Record • U ... URI Record • Sp ... Smart Poster • ...
    24. 24. ID• ILの値によって無い場合がある• ID LENGTHによって長さが変わる• IDを設定することができる
    25. 25. PAYLOAD • PAYLOAD LENGTHの値によって長さが 変化する • TNFとTYPEの値によって内容が変わる • well-known typesの仕様書はNFC Forumに定義されています
    26. 26. ちょっとRTD
    27. 27. RTD• Record Type Definition• Typeでwell-known-type(0x01)を指定 した場合に使用されるフォーマット• NFC Forumで仕様書を見ることができ ます。 • http://www.nfc-forum.org/specs/spec_list/#rtds
    28. 28. RTDの種類• Text• URI• SmartPoster• Generic Control• Handover Request / Select / Carrier• Signature
    29. 29. Textだけ紹介 構成
    30. 30. Encode• テキストの文字コードを表す• 0 ... UTF-8• 1 ... UTF-16
    31. 31. RFU• Reserved For Future Use
    32. 32. Language Code Length• 言語コードの長さを指定する
    33. 33. Language Code• 言語コードを表す• Language Code Lengthによって長さが変わる• ISO/IANA • en ... English • en-us ... English(United States) • ja ... Japanese
    34. 34. Actual Text• 実際のテキスト• PAYLOADの残り部分• Encodeで指定されたエンコードを使用する
    35. 35. NDEF完成!
    36. 36. Hello, World.と書かれたNDEF • FLAGS • Message Begin : 1 • Message End : 1 • Chunked Flag : 0D1 01 10 54 • Short Record : 102 65 6E 48 • ID Length : 0 • TNF : 01(well-known types)65 6C 6C 6F • TYPE LENGTH : 12C 20 57 6F • PAYLOAD LENGTH : 1072 6C 64 2E • TYPE : T • PAYLOAD • Encoding : utf-8 • Language Code : en • Actual Text : Hello, World.
    37. 37. さらなるNDEFの世界へ
    38. 38. まだ始まったばかり• 紹介したフォーマットはごく一部• well-known-typeだけでも知っておく べき
    39. 39. おわり
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×