未收到交换MTU响应时无指示

了解更多常见问题教程

8个职位/0个新职位
最后一篇文章
帕金森
离线
最后一次见到:1周3天前
已加入:2017-10-03 18:23
未收到交换MTU响应时无指示

在我们使用DA14581的BLE外设中,在连接时,外设发送Exchange MTU请求并通常接收Exchange MTU响应。我们在iOS设备上运行过,在DA14581发送Exchange MTU请求之后,iOS设备发送Exchange MTU请求,DA14581发送Exchange MTU响应。此时,iOS设备向DA14581特征发送一个写请求。DA14581发送一个写响应,然后通常会发送一个指示。在如上所述发生交换MTU序列的情况下,即使双方已成功地协商MTU,也从未发送任何指示。

在这种情况下,由于没有收到Exchange MTU响应,DA14581是否处于不执行指示的状态?

谢谢你的帮助。

关键词:
设备:
PM\U对话框
离线
最后一次见到:2天15小时前
工作人员
已加入:2018-02-08 11:03
你好,帕金森,

你好,帕金森,

谢谢你的在线提问。有没有可能共享一个嗅探器日志,这样我就可以通过它了解空中发生了什么?这种行为只发生在iOS上吗?

谢谢,下午好

帕金森
离线
最后一次见到:1周3天前
已加入:2017-10-03 18:23
当然,我会装一个嗅探器

当然,我会附上一个嗅探器文件。这只在iOS中观察到。我们已经广泛使用了Android,从来没有见过这个问题。

根据sniffer文件,这个有问题的MTU交换发生在第1169250、169448和169460帧。第一个写入请求在第169758帧到达DA14581,并有一个写入响应。我们的系统总是会发送一个指示,但是在这种情况下它不会。

附件:
PM\U对话框
离线
最后一次见到:2天15小时前
工作人员
已加入:2018-02-08 11:03
你好,帕金森,

你好,帕金森,

谢谢分享嗅探器日志-我会好好想想的。你能同时更新SDK版本吗?是SDK5.0.4吗?

谢谢,下午好

帕金森
离线
最后一次见到:1周3天前
已加入:2017-10-03 18:23
是的,我们使用的是SDK 5.0.4

是的,我们使用的是SDK 5.0.4

PM\U对话框
离线
最后一次见到:2天15小时前
工作人员
已加入:2018-02-08 11:03
你好,帕金森,

你好,帕金森,

谢谢你的指示。我已经在内部升级了,所以我会在收到团队反馈后尽快回复你。

谢谢,下午好

PM\U对话框
离线
最后一次见到:2天15小时前
工作人员
已加入:2018-02-08 11:03
你好,帕金森,

你好,帕金森,

根据Bluetooth le4.0规范,DA14580已经发送了MTU\u交换请求并等待MTU交换响应。如果这个响应不是来自iPhone(客户端),那么发送安全请求就不是一个好方法。

我们假设您需要将MTU交换请求和安全请求调用机制解耦,以便首先进行MTU交换,然后从DA14580发送安全请求。

当MTU交换请求的响应挂起时,设备无法发送指示或通知。显然,由于可能与正在进行的安全进程冲突,iOS堆栈错误地丢弃了请求。为了不混淆iOS堆栈,建议先发出MTU请求,然后在完成安全请求后,将Exchange MTU请求与安全请求分离。

谢谢,下午好

帕金森
离线
最后一次见到:1周3天前
已加入:2017-10-03 18:23
嗨,我们已经更新了

嗨,我们已经更新了我们的外围设备,它使用对话框14581按照您的建议运行,将MTU交换请求和安全请求调用机制解耦,以便首先进行MTU交换,然后从DA14580发送安全请求。“不幸的是,此更改对连接到某些iOS设备时遇到的问题没有影响。我的具体问题是:在这个有问题的iOS案例中,Dialog发送Exchange MTU请求之后,iOS发送Exchange MTU请求,Dialog发送Exchange MTU响应。虽然这不是规范所涵盖的序列,但MTU已经成功协商,应该足以允许Dialog开始发送指示。这样的对话框内的设计更新是否可以处理这种情况?

谢谢你的关心。