Your SlideShare is downloading. ×
0
避けては通れないバイナリ地獄
- NDEFってなんだろう 山下智樹 / tomorrowkey

12年11月29日木曜日
もくじ

•
•
•
•
•
•
•
12年11月29日木曜日

自己紹介
NDEFって何?
なぜNDEFが重要になる?
もっとNDEFを知ろう
ちょっとRTD
NDEF完成
さらなるNDEFの世界へ…
自己紹介
12年11月29日木曜日
自己紹介

• NFCラボ運営委員
• 山下智樹 / @tomorrowkey
• 株式会社ブリリアントサービス
• バイナリ楽しい!
12年11月29日木曜日
NDEFって何?
12年11月29日木曜日
NDEFとは

• NFC Data Exchange Format
• NFCの通信で使用されるデータ・フォ
ーマット

12年11月29日木曜日
なぜNDEFが重要になる?
12年11月29日木曜日
NFCのモード

• Reader/Writer Mode
• P2P Mode
• Card Emulation Mode

12年11月29日木曜日
どんなモードでも
NDEFは避けて通れない

12年11月29日木曜日
でも、バイナリまで
知ってる必要あるの?

12年11月29日木曜日
各プラットフォームのNDEFについて

• Android SDK API Level 16
•
•
•

一部サポート
PAYLOADについては自作する必要あり
作成はRTD-URIのみサポート、パースはURIに関連するものをサ
ポート

•...
探せばそのへんに
ライブラリ落ちてます

12年11月29日木曜日
避けて通れます

12年11月29日木曜日
趣味です

12年11月29日木曜日
もっとNDEFを知ろう
12年11月29日木曜日
NDEF Message

• NDEFには一つのNDEF Messageが含
まれる

• NDEF Messageには1つ以上の
NDEF Recordが含まれる

構成

12年11月29日木曜日
NDEF Record

構成

12年11月29日木曜日
FLAGS
•

MB(Message Begin)

•

•

ME(Message End)

•

•

255Byte以下のレコードを意味する
PAYLOAD LENGTHが1Byteになる

IL(ID Length)

•

12...
TNF (Type Name Format)
•
•

TYPEフィールドの種類を表す
3bitの値を設定する

•
•
•
•
•
•
•
•

12年11月29日木曜日

0x00 Empty
0x01 NFC Forum well-kno...
TYPE LENGTH

•
•

12年11月29日木曜日

符号なし8bit整数
TYPEフィールドの長さを指定する
PAYLOAD LENGTH

•
•
•

12年11月29日木曜日

SRの値によって長さが変化する
符号なしビックエンディアン
PAYLOADの長さを指定する
ID LENGTH

•
•
•

12年11月29日木曜日

ILの値によって無い場合がある
符号なし8bit整数
IDの長さを指定する
TYPE
•
•
•

TYPE LENGTHによって長さが変わる
TNFの値によって設定値が変わる
0x01 well-known typesだった場合

•
•

U ... URI Record

•

Sp ... Smart Post...
ID

•
•
•

12年11月29日木曜日

ILの値によって無い場合がある
ID LENGTHによって長さが変わる
IDを設定することができる
PAYLOAD

•
•
•

12年11月29日木曜日

PAYLOAD LENGTHの値によって長さが
変化する
TNFとTYPEの値によって内容が変わる
well-known typesの仕様書はNFC
Forumに定義されています
ちょっとRTD
12年11月29日木曜日
RTD

• Record Type Definition
• Typeでwell-known-type(0x01)を指定
した場合に使用されるフォーマット

• NFC Forumで仕様書を見ることができ
ます。
•

12年11月29日木曜日...
RTDの種類

• Text
• URI
• SmartPoster
• Generic Control
• Handover Request / Select / Carrier
• Signature
12年11月29日木曜日
Textだけ紹介

構成

12年11月29日木曜日
Encode

• テキストの文字コードを表す
• 0 ... UTF-8
• 1 ... UTF-16
12年11月29日木曜日
RFU

• Reserved For Future Use

12年11月29日木曜日
Language Code Length

• 言語コードの長さを指定する

12年11月29日木曜日
Language Code

•
•
•

言語コードを表す
Language Code Lengthによって長さが変わる
ISO/IANA

•
•
•

12年11月29日木曜日

en ... English
en-us ... Engl...
Actual Text

•
•
•

12年11月29日木曜日

実際のテキスト
PAYLOADの残り部分
Encodeで指定されたエンコードを使用する
NDEF完成!
12年11月29日木曜日
Hello, World.と書かれたNDEF
•

D1
02
65
2C
72

01
65
6C
20
6C

10
6E
6C
57
64

54
48
6F
6F
2E

FLAGS

•
•
•
•
•

•
•
•
•
•

Mes...
さらなるNDEFの世界へ
12年11月29日木曜日
まだ始まったばかり

• 紹介したフォーマットはごく一部
• well-known-typeだけでも知っておく
べき

12年11月29日木曜日
おわり

12年11月29日木曜日
Upcoming SlideShare
Loading in...5
×

Ndefってなんだろう

770

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
770
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "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日木曜日
  1. A particular slide catching your eye?

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

×