首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓波束和SNEP到pn532

安卓波束和SNEP到pn532
EN

Stack Overflow用户
提问于 2015-02-25 19:57:29
回答 1查看 1.2K关注 0票数 1

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

这就是我们到目前为止所拥有的。我可以将pn532(目标)与电话(发起方)连接起来。我的安卓应用程序使用setNdefPushMessage通过近场通信发送NdefMessage。我一点击手机(Beam-UI),它就开始与我的pn532上的SAP4连接,在读取命令(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 I-Package from SAP32 to 4

SNEP报头:10 02 00 00 03 BD版本10请求放入len 0x3bd

NDEF报头:C1 01 00 00 03 B6 54 c1: start+EndMessage

消息...剩下的

我用MUI 128完成了连接。

我的问题:它说SNEP包是0x3BD字节长,但我只收到了这个短的部分。此消息中没有任何指示它是否是拆分消息。

我的其他数据在哪里?我试着阅读更多来自pn532的包,但是一个都没有。

**编辑:经过一夜的尝试,我终于找到了一个地方。(从PN532的角度来看)

接收:连接

发送:连接completeMUI=128

接收: SYMM

发送: SYMM

接收:第一个分段的数据(如上所示)

发送: RR

接收: SYMM

发送:I SNEP:响应继续

接收: RR

发送:I SNEP:请求继续

接收:I秒碎片数据

发送: RR

接收: RR

发送:I SNEP:请求继续

接收:i第三个数据片段

就像我说的,这只在某些情况下有效。大多数情况下,我的PN532只是响应一个错误代码0x29,->启动器丢弃了连接。因此,问题是,这是否可能是时间问题,或者是什么原因导致连接在发送其余数据之前断开。

EN

回答 1

Stack Overflow用户

发布于 2015-02-26 20:19:02

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28718434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档