TLV - OTH-AW/isac-oth-aw GitHub Wiki

TLV

Damit nun auch die meisten Smartphones ohne zusätzliche Applikationen unsere Tags lesen können, müssen wir unsere NDEF Message noch in einen TLV-Block "verpacken". TLV besteht aus drei verschiedenen Bereichen: T für Tag Field, L für Length Field und V für Value Field.

Tag Field

Block Type Wert Beschreibung
NULL 0x00 Blocks sollten ignoriert werden
NDEF Message 0x03 Block beinhaltet eine NDEF Message
Proprietary 0xFD Block beinhaltet proprietäre Informationen
Terminator 0xFE Letzter TLV Block

Hier sind für uns nur die Typen NDEF Message und Terminator relevant. 0x03 wird immer das erste Byte sein und 0xFE immer das letzte Byte.

Length Field

Dieser Bereich gibt an, wie groß unser Value Field ist (in Bytes). Das Length Field kann bis zu drei Byte groß sein.

1-Byte-Format: Wert von 0x00 bis 0xFE

3-Byte-Format:

  • Byte 0: 0xFF um zu signalisieren, dass das 3-Byte-Format genutzt wird
  • Byte 1 und 2: Wert von 0x00FF bis 0xFFFE

Value Field

Dieser Bereich beinhaltet unsere NDEF Message.

Beispiel

NDEF Message mit TLV:

03 0F D1 01
0B 54 02 65
6E 4E 44 45
46 54 65 73
74 FE 00 00

Tag Field: 03 (NDEF Message)

Length Field: 0F (also 15 Byte NDEF Message, 1-Byte-Format reicht aus)

NDEF Message: D1 01 0B 54 02 65 6E 4E 44 45 46 54 65 73 74

Tag Field: FE (Terminator)

⚠️ **GitHub.com Fallback** ⚠️