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

  • 8,385 views
Uploaded on

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

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
8,385
On Slideshare
0
From Embeds
0
Number of Embeds
5

Actions

Shares
Downloads
56
Comments
0
Likes
7

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    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

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