This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2340R5:Gatt_Change 快速写入时缺少数据

Guru**** 2321620 points
Other Parts Discussed in Thread: CC2541
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1517162/cc2340r5-cc2340-mvgatt_changecb-missing-data-on-fast-writes

器件型号:CC2340R5
主题:CC2541中讨论的其他器件

工具/软件:

我在使用 BLE 栈时遇到问题、因为我们在 IOS/Android 设备上有一个应用程序正在向设备发送快速写入数据。

使用发送写入(不带 RSP)、 可以将写入块有效地发送到 CC2340外设器件、我们用于数据传输。
对于旧版 CC2541、这种方法对我们来说确实是一种影响深远的解决方案。  

然而,在 CC2340上使用新的堆栈时,我可以按顺序在无线电上看到数据包,但它看起来像是在回调- MvGatt_changeCB ()被处理数据的时候
因为特性中的数据在我们能够使用 MvGattProfile_getParameter()读取之前已被覆盖。

如果只是堆栈本身的速度、或者如果这些回调实际上在 RTOS 控制下运行、任务上下文切换速度不够快、我就无法确定。

尽可能为您提供帮助的 TI 专家。

此致


Rob

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Rob、

    感谢您的联系。

    您使用的是哪个 SDK 版本? 您是否正在缓冲您的配置文件特征数据?

    您发送了多少数据以及发送速度有多快?

    BR、

    David。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、David:

    SDK 为 F3 8_10_01_02

    现在、我设法解决了这个问题、并弄清楚了使用一些 IO 引脚收集时序数据的情况。

    我们发送的数据块为16个字节。 使用 SendWrite 方法时、一个连接间隔内通常会出现3到5个块之间的情况。

    示例栈中使用的方法似乎相当缓慢。 执行回调 xxx_writeAttrBC ()以接收特征数据,然后将 notifyApp 返回应用以使用数据的技术非常缓慢。 我修改了这一点,以利用安全的 ringbuffer 方法来防止数据丢失。

    在执行处理收到的数据通知的应用程序方法之前、配置文件特性数据占位符中的数据将被回调覆盖。

    当您浏览所有代码路径函数调用/堆栈开销/ Mallocs/Free 时,它是非常坚果,当它真的是快,从一开始就以安全的方式处理16字节的数据。 我个人更希望所有的处理器执行周期都能免费用于处理活动。

    BR

    Rob