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:在 cc2650中启用指示

Guru**** 2564260 points
Other Parts Discussed in Thread: BLE-STACK, CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/566045/rtos-enable-indications-in-cc2650

Thread 中讨论的其他器件:BLE-STACKCC2650

工具/软件:TI-RTOS

您好!

我已成功启用使用多角色项目的通知。

使用的配置文件:串行端口配置文件

设置:多角色充当客户端、而简单的 BLE 服务器充当外设

遵循的步骤

1) 通过遍历属性表来发现句柄0x2902

2) 将0x0001写入此句柄

我能够从客户端的服务器接收通知

现在、为了启用指示、我遵循以下步骤

1) 修改了以下行以包含指示属性

静态 uint8串行端口服务 DataProps = GATT_PROP_WRITE_NO_RSP | GATT_PROP_NOTIFY | GATT_PROP_READ | GATT_PROP_Indicate;

2) 将0x0002写入 CCCFG 句柄、并通过提供过滤器接收指示消息 GATT MSG

  ATT_Handle_Value_IND

3) 但我没有收到任何消息

此外,在服务器端,我对 SerialPortService_WriteAttrCB 函数进行了以下更改

 否则(pAttr->type.len == ATT_BT_UUUART_SIZE)

 {

  // 16位 UUID

  uint16 uuid = build_uint16 (pAttr->type.uuuuid[0]、pAttr->type.uuuid[1]);

  交换机(uuid)

  {

  案例 GATT_CLIENT_CHAR_CFG_UUID:

   状态= GATTServApp_ProcessCCCWriteReq (connHandle、pAttr、pValue、len、

                        offset、GATT_CLIENT_CFG_Indicate);

   中断;

  默认值:

    状态= ATT_ERR_ATTR_NOT _找到;

    中断;

  }

 }

是否有人能告诉我启用指示的正确过程?

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

    您好!

    我已成功启用使用多角色项目的通知。

    使用的配置文件:串行端口配置文件

    设置:多角色充当客户端、而简单的 BLE 服务器充当外设

    遵循的步骤

    1) 通过遍历属性表来发现句柄0x2902

    2) 将0x0001写入此句柄

    我能够从客户端的服务器接收通知

    现在、为了启用指示、我遵循以下步骤

    1) 修改了以下行以包含指示属性

    静态 uint8串行端口服务 DataProps = GATT_PROP_WRITE_NO_RSP | GATT_PROP_NOTIFY | GATT_PROP_READ | GATT_PROP_Indicate;

    2) 将0x0002写入 CCCFG 句柄、并通过提供过滤器接收指示消息 GATT MSG

      ATT_Handle_Value_IND

    3) 但我没有收到任何消息

    此外,在服务器端,我对 SerialPortService_WriteAttrCB 函数进行了以下更改

     否则(pAttr->type.len == ATT_BT_UUUART_SIZE)

     {

      // 16位 UUID

      uint16 uuid = build_uint16 (pAttr->type.uuuuid[0]、pAttr->type.uuuid[1]);

      交换机(uuid)

      {

      案例 GATT_CLIENT_CHAR_CFG_UUID:

       状态= GATTServApp_ProcessCCCWriteReq (connHandle、pAttr、pValue、len、

                            offset、GATT_CLIENT_CFG_Indicate);

       中断;

      默认值:

        状态= ATT_ERR_ATTR_NOT _找到;

        中断;

      }

     }

    是否有人能告诉我启用指示的正确过程?

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

    您使用的是哪个版本的 TI BLE-Stack? 您提到了使用多角色项目和串行端口配置文件。 您是否从 TI BLE Github 页面的多角色项目开始?

    两款器件都是 CC2650吗? 如果您看一下监听器捕获、指示是发送但未正确处理还是根本未发送?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    IAM 使用2.2.1堆栈
    是的、我从 git hub 的多角色项目开始
    是的、两个都是 cc2650

    很遗憾、我没有软件狗。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外、当我写入0x0002时、外设设备也会断开连接。

    您能告诉我在客户端和服务器端实施指示时需要做的更改吗
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们没有显示如何使用指示的"开箱即用"示例。 指示并不总是首选、因为它们较慢(由于确认)、并且将禁止任何其他 GATT 过程发生、直到对等节点应答。 这可能需要很长时间、因为这需要转到对等器件的主机堆栈进行处理。 如果您对确认有严格的要求、那么指示可能就是您需要的、但我们通常会看到通知(您可以查看 simple_peripheral 示例)通常就足够了。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Kavan、

    您可以查看血压样本应用程序、了解如何在该应用程序中使用指示。