Android Beam和SNEP到pn532

问题描述 投票:1回答:1

我们正在尝试通过nfc-p2p,android-beam和snep将大文件从android手机发送到mikroprocessor。

这是我们到目前为止所拥有的。我可以将pn532(目标)与电话(启动器)连接。我的Android应用程序使用setNdefPushMessage通过nfc发送NdefMessage。一旦我点击电话(Beam-UI),它就开始与pn532上的SAP 4连接,并且在执行readcommand(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标题:从SAP 32到4的13 20 00 I-PackageSNEP标头:10 02 00 00 03 BD版本10请求PUT len 0x3bdNDEF标头:C1 01 00 00 03 B6 54 c1:start + EndMessage消息...其余]]

我通过MUI 128完成了连接。

我的问题:它说SNEP packae长0x3BD字节,但我只收到了这短部分。该消息中没有任何迹象表明它是否是拆分消息。

我的其余数据在哪里?我试图从pn532中读取更多软件包,但没有。

**编辑:经过一个晚上的尝试,我终于到达了某个地方。至少有时有效的方法:(全部从PN532的角度来看)接收:连接发送:连接完成[MUI = 128]收到:SYMM发送:SYMM收到:我先是碎片数据(如上所示)发送:RR收到:SYMM发送:我SNEP:回复CONTINUE收到:RR发送:我SNEP:请求继续收到:我第二个碎片数据发送:RR收到:RR发送:我SNEP:请求继续接收:我的第三个数据片段

就像我说的那样,这仅适用于某些时候。在大多数情况下,我的PN532只是以错误代码0x29进行响应->启动器断开了连接。因此,问题是时间问题还是其他原因导致在发送其余数据之前断开连接。

我们正在尝试通过nfc-p2p,android-beam和snep将大文件从android手机发送到mikroprocessor。到目前为止,这就是我们所拥有的。我可以将pn532(目标)与电话(启动器)连接。 ...

android nfc nfc-p2p android-beam
1个回答
1
投票

SNEP被设计为在LLCP数据链路连接(通过CONNECT建立的一对源SAP和目标SAP)之上运行的简单请求/响应协议。客户端请求服务器执行一个操作,服务器返回响应。通过PUT操作,客户端会将数据附加到请求。如果请求超过了LLCP信息PDU的最大信息单元大小,则客户端将以适当的片段发送请求。第一个片段通知服务器应准备从客户端接收的八位字节数。如果服务器能够接收到数据,它将以“继续”响应来回答第一个片段,如果数据大小超出服务器的能力,它将以“拒绝”响应来停止交换。客户端收到继续响应后,它将发送所有剩余的片段,而不会期望中间响应。如长度值所示,服务器在收到所有请求数据后最终发送成功响应。相同的原则适用于大型SNEP响应,只有继续或拒绝才是请求消息(因为它们是由客户端发送的)。

© www.soinside.com 2019 - 2024. All rights reserved.