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.

[参考译文] RTOS/CC2640R2F:特征值长度#39;t 是否可以大于 MTU / MAX_PDU_SIZE?

Guru**** 2577385 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/590726/rtos-cc2640r2f-characteristics-value-length-can-t-be-larger-than-mtu-max_pdu_size

器件型号:CC2640R2F

工具/软件:TI-RTOS

您好!

基于 multi_role 示例、SimpleLink v 1.30.00.25。

如果 SIMPLEPROFILE_CHAR5_LEN 大于 MAX_PDU_SIZE (减去某个值)、则在超时后使用 Android 手机读取特征将失败、并使用

-错误133 (0x85):GATT 错误

-错误22 (0x16):GATT CONN 终止本地主机

堆、C-Stack、任务堆栈看起来正常。

无法增加 MAX_PDU_SIZE、因为剩余的 RAM 不足...

我还尝试更新 以下内容、但未成功:

simpleProfile_ReadAttrCB() 

删除  

返回(ATT_ERR_ATTR_NOT _long); 

变化

void memcpy (pValue、pAttr->pValue、min (maxLen、SIMPLEPROFILE_CHAR5_LEN)); 

Thx、

Jerome

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

    如果您需要读取大于 ATT_MTU 大小的特征、则需要使用真正的长过程、例如 GATT_ReadLongCharValue

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

    这不适用于作为客户端读取的情况吗? 在这里、multi_role 用作服务器、客户端(Android)正在读取表单芯片的"大型特征"。

    此致、
    Jerome
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    答案可在此处找到:
    e2e.ti.com/.../221165