我有ntag213。我试图了解工作块是如何工作的,以及标签的存储部分。我找到了项目https://github.com/lepunk/react-native-nfc-demo/blob/master/RNNFCDemo/App.js但无法理解什么是收发方法的缺点:
let text = this.state.text;
let fullLength = text.length + 7;
let payloadLength = text.length + 3;
let cmd = Platform.OS === 'ios' ? NfcManager.sendMifareCommandIOS : NfcManager.transceive;
resp = await cmd([0xA2, 0x04, 0x03, fullLength, 0xD1, 0x01]); // 0x0C is the length of the entry with all the fluff (bytes + 7)
resp = await cmd([0xA2, 0x05, payloadLength, 0x54, 0x02, 0x65]); // 0x54 = T = Text block, 0x08 = length of string in bytes + 3
每个cmd中的参数是什么?
您需要阅读该卡数据表的第10节,例如https://www.nxp.com/docs/en/data-sheet/NTAG213_215_216.pdf
基本上是使用写命令(数组的第一个字节0xA2
),然后需要给它块地址,在第一个命令中是块4,然后是块5(注意,块4是第一个可以写入),然后读取接下来的4个字节的数据(因为您一次只能写入一个4字节的块)。
所以基本上命令是
[Write Command, Block Address, Data1 Byte, Data2 Byte, Data3 Byte, Data4 Byte]
因此,总体而言,该代码以自定义格式将某些文本编码到卡上。块4和5是自定义格式的标头块,然后它将4字节卡盘中的文本写入块6以后的所有块中,而不检查每次写入是否成功(除了记录响应之外)]