nfc-p2p-增加LLCP的MIU,用于NDEF连接到android



通过LLCP传输数据时,如何将MIU从默认的128增加到255?我使用一台带有CyanogenMod12的Galaxy S4 Mini作为我的测试手机,并使用一台连接到PN532的微控制器。当我从PN532向Android发送NdefMessage时,我可以在一帧内发送多达255字节的消息,但当我从Android向PN532发送消息时,它只能发送132字节。我认为这与军情五处有关。由于我没有找到任何关于如何在Android上设置MIU的信息,我为我的微控制器的PDU CC和PDU CONNECT设置了它。像这样:

llcpp->ssap = getDSAP(llcpp->headerBuf);
llcpp->dsap = getSSAP(llcpp->headerBuf);
/* Put a ConnectionComplete (CC) PDU to respond on the Connect PDU */
llcpp->headerBuf[0] = (llcpp->dsap << 2) + ((PDU_CC >> 2) & 0x3);
llcpp->headerBuf[1] = ((PDU_CC & 0x3) << 6) + llcpp->ssap;
// MIUX in TVL format.
llcpp->headerBuf[2] = MIUX_TYPE; // Type: 0x02
llcpp->headerBuf[3] = MIUX_LENGTH; // Length: 0x02
llcpp->headerBuf[4] = 0x07; // 5Bits 0, first 3Bits of MIUX 1.
llcpp->headerBuf[5] = MIUX_256; // MIUX: 0xff
llcpp->headerBuf[6] = RW_TYPE;
llcpp->headerBuf[7] = RW_LENGTH;
llcpp->headerBuf[8] = RW_2;
if(!macLinkWrite(llcpp->link, llcpp->headerBuf, 9))
  return -2;

但Android仍然使用128作为MIU。我是否也必须在Android上设置它,和/或是否有人有LLCP的经验?

最好,Steve

MIU是一个接收方承诺。发送方将只使用它自己的发送功能,或者一些发送缓冲区大小,或者懒惰的程序员的#define。没有办法强迫不情愿的发送者使用更多。

请注意,当使用SNEP(又名Android Beam)时,应该可以获得几乎任何大小的NDEF消息,但受所需时间的限制。SNEP协议的实现将分片为适当的min段(发送缓冲区、recv缓冲区)。

最新更新