llcp-dep p2p发现和连接

时间:2014-01-16 22:55:44

标签: nfc-p2p

我正在开展一个学校项目,将 pn532 与nfc手机连接起来。我正在使用seeedstudio nfc控制器和他们拥有的库,以及我正在添加的一些代码。我的问题与协议的连接和发现阶段有关。

问题1:当启动器将 CONNECT命令发送到DSAP = 1 “发现服务”时,响应的内容。贝娄我解释了协议的结果。

用于测试的电话是(gs4,注2):

情况1:

  • 手机发给我 05 20 06 这是接收设备中SAP = 1的CONNECT命令,然后我用CC命令 81 84 2 2 0 78
  • 然后他们发送了一个IPDU,其中包含应用程序的URI在前台,我继续按照nfc论坛中的llcp-snep协议发送命令,一切都很酷。 *问题是我不希望应用程序的URI在前台,我想要该应用程序的 NDEF消息 数据。*

情况2:

  • 手机发送到pn532 11 20 ,这是接收器设备中SAP = 4的CONNECT命令,然后我用命令 CC 81 84 2 2 0 78 < / strong>即可。
  • 在此之后,手机会发送NDEF数据,假设是。

    现在我的问题是:

为什么电话有时会将CONNECT命令发送给SAP = 1,有时会发送给SAP = 4?

我必须对 05 20 06 做出什么命令?

2 个答案:

答案 0 :(得分:2)

当向SAP 1发送CONNECT命令时,表示发件人想要在一个步骤中执行服务发现和连接设置。在这种情况下,CONNECT命令中的必需信息是服务名称。如果该服务存在且可连接,则响应将是到达SAP CONN的CC(连接完成)PDU,并且来自 命名服务绑定的SAP。如果不存在具有所请求名称的服务,则答案必须是具有适当原因代码的断开模式(DM)PDU。

遗憾的是,您没有提供有关SAP 1上收到的CONNECT命令的完整信息,至少缺少服务名称长度字节和名称本身。如上所述,CONNECT PDU只是无效,不应该被确认。

答案 1 :(得分:1)

正如预期的那样,整个问题都解决了。在请求连接不需要的服务之后,我向DM发送了原因02命令,一切正常。我花了一些时间让图书馆与所有手机一起工作,但最后我修复了它。感谢所有反馈