Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ndefってなんだろう

2,355 views

Published on

  • Be the first to comment

Ndefってなんだろう

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

×