大家好,
我使用了BLE外围设备作为参考,其中我已经添加了一个特征,其中我想要交换大约180个字节的数据。
我能够向移动应用程序发送180字节的数据(在Andriod的iOS和NRF连接的BLE扫描仪上测试),
但是,当我想使用应用程序通知相同的数据时,我无法在一次拍摄中获得正确的数据,
这是固件我做了一个规定,当我收到来自BLE应用程序的某个命令时,固件应该回复这些180个字节的数据,
但是当我在应用程序中检查它时,我只获得一半的数据,然后当我重新调整数据时正确。
所以请帮助我SOO,我可以在一次拍摄中正确而完整地获得这种数据,
我有附加图像参考下面
请尽早帮助。
谢谢并恭祝安康
utkarash.
设备:
嗨utkarash,
如果您从附加文件(“半数据接收”)检查第2页,您将看到您获得预期的20个字节。关于通知,设备可以通过MTU(最大传输单元)发送设备的字节数由MTU(最大传输单元)有限制,默认情况下,MTU是限制在包括ATT层开销的23个字节中,因此通知的有效载荷是20个字节。通过增加MTU大小意味着您可以在一个通知上发送更多字节,因此在您的情况下,最大传输单元应为您想要发送+ 3额外字节的字节数。您应该更改user_config.h头文件的user_gapm_conf结构的.max_mtu。在此之后,为了执行与中央的交换,您应该在具有连接时发送GattC_EXC_MTU_CMD(在USER_ON_CONNECTIONCE)中,580将执行交换。没有API实现了这一点,但您可以使用以下代码段:
静态void user_gattc_exc_mtu_cmd(uint8_t conidx)
{
struct gattc_exc_mtu_cmd * cmd = ke_msg_alloc(gattc_exc_mtu_cmd,
ke_build_id(task_gattc,conidx),task_app,
gattc_exc_mtu_cmd);
cmd-> req_type = gattc_mtu_exch;
ke_msg_send(cmd);
}
谢谢,PM_DIALOG.
谢谢你的回复,
我会根据您的建议尝试更改。
谢谢并恭祝安康
utkarash.