我们正在尝试通过 nfc-p2p、android-beam 和 snep 将大文件从 android 手机发送到 mikroprocessor。
这就是我们迄今为止所拥有的。我可以将 pn532(目标)与电话(启动器)连接起来。我的 android 应用程序使用 setNdefPushMessage 通过 nfc 发送 NdefMessage。一旦我点击电话(Beam-UI),它就开始与我的 pn532 上的 SAP 4 连接,并且在读取命令(tgGetData)之后我收到以下信息:
00 FF 86 7A D5 87 00 13 20 00 10 02 00 00 03 BD C1 01 00 00 03 B6 54 30 68 61 6C 6C 6F 20 64 61 73 20 69 73 74 20 65 69 6E 20 74 65 73 74 31 68 61 6C 6C 6F 20 64 61 73 20 69 73 74 20 65 69 6E 20 74 65 73 74 32 68 61 6C 6C 6F 20 64 61 73 20 69 73 74 20 65 69 6E 20 74 65 73 74 33 68 61 6C 6C 6F 20 64 61 73 20 69 73 74 20 65 69 6E 20 74 65 73 74 34 68 61 6C 6C 6F 20 64 61 73 20 69 73 74 20 65 69 6E 20 74 65 73 74
清理它: PN532 标头:00 FF 86 7A D5 87 00
未设置 MI 位!
LLCP 标头:13 20 00
从 SAP 32 到 4 的 I-Package
SNEP 标头:10 02 00 00 03 BD
版本 10 请求 PUT len 0x3bd
NDEF 标头:C1 01 00 00 03 B6 54
c1: start+EndMessage
Message ... 其余
我使用 MUI 128 完成了连接。
我的问题:它说 SNEP packae 的长度为 0x3BD 字节,但我只收到了这个短部分。此消息中没有任何指示它是否是拆分消息。
我的其余数据在哪里?我试图从 pn532 读取更多包,但没有。
** 编辑:经过一夜的尝试,我终于到了某个地方。至少有时有效:(从PN532的角度来看)
接收:连接
发送:连接完成[MUI = 128]
接收:SYMM
发送:SYMM
接收:I first Fragmented Data(如上所示)
发送:RR
接收:SYMM
发送:I SNEP:响应 CONTINUE
接收:RR
发送:I SNEP:请求 CONTINUE
接收:I 第二个碎片数据
发送:RR
接收:RR
发送:I SNEP:请求继续
接收:I 第三个数据片段
就像我说的,这只在某些时候有效。大多数情况下,我的 PN532 只响应错误代码 0x29 -> 发起方断开连接。所以问题是它可能是一个时间问题,还是在发送其余数据之前导致连接被丢弃的其他原因。