我已将NDEF文本记录“ poo”(只是测试)写到了NFC论坛2类标签上,我需要一些帮助来理解确切写的内容和格式。 发送到标记的命令包含四个数组:
new Uint8Array([162, 4, 3, 10, 209, 1]).buffer
new Uint8Array([162, 5, 6, 84, 2, 101]).buffer
new Uint8Array([162, 6, 110, 112, 111, 111]).buffer <-- 112, 111, 111 is ASCII for "poo"
new Uint8Array([162, 7, 254, 0, 0, 48]).buffer
我知道每个数组(162)的第一个字节是“写入”命令。每个数组的第二个字节(4、5、6、7)是整个标签数据中的索引,用于放置后面的字节。它从4开始,因为前16个字节已被写入,并且包含有关该标记的元数据。 我也知道112、111、111是我存储的文本。
所以我的问题是:前两个数组和最后一个数组的目的是什么?
我不明白它们包含哪些数据。这是我的NFC标签的最终内容(我从结尾处将所有零都截断了)
new Uint8Array([95, 222, 208, 217, 54, 218, 237, 38, 39, 3, 0, 0, 225, 17, 96, 0, 3, 10, 209, 1, 6, 84, 2, 101, 110, 112, 111, 111, 254, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...])
您可以看到前16个字节是在创建时写入的;定义标签。接下来是上面的4个数组。我目前的理解来自here,它解释说有效载荷带有元数据来解释它是什么数据类型等,但是有效载荷之前有两个数组,而我不理解有一个数组。>
答案 0 :(得分:2)
答案 1 :(得分:0)
在脑海中猛击一段时间后,我发现它是我所怀疑的 元数据,但是其顺序与通常记录的顺序不同。可以在here中找到有关以下内容的更多详细信息。
new Uint8Array([162, 4, 3, 10, 209, 1]).buffer
3: "Type length"
10: "Record length"
209: "NDEF record header"
1: "Type Name Field"
new Uint8Array([162, 5, 6, 84, 2, 101]).buffer
6: "Payload Length"
84: "Well known record"
2: "Well known record type" (in this case - the encoding for this text (UTF))
101: "e"
new Uint8Array([162, 6, 110, 112, 111, 111]).buffer
110: "n" - ("en" is locale)
112: "p"
111: "o"
111: "o"
new Uint8Array([162, 7, 254, 0, 0, 48]).buffer
254: Marks the end of the payload