当通过LLCP传输数据时,如何将MIU从默认值128增加到255? 我使用带有CyanogenMod12的Galaxy S4 Mini作为我的测试手机和连接到PN532的微控制器。 当我从PN532向Android发送NdefMessage时,我可以在一帧中发送最多255Bytes的消息,但是当我从Android向PN532发送消息时,它只能发送132Bytes。 我认为这与MIU有关。 由于我没有找到任何有关如何在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经验?
最好的, 史蒂夫
答案 0 :(得分:1)
MIU是接收者的承诺。发送方只会利用它自己的发送功能,无论是发送缓冲区大小还是懒惰程序员的#define。没有办法强迫不情愿的发件人使用更多。
请注意,当使用SNEP(又名Android Beam)时,应该可以获得几乎任何大小的NDEF消息,受限于所需的时间。 SNEP协议实现将分段为min的适当段(send-buffer,recv-buffer)。