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.

[参考译文] LP-CC2652RB:尝试使用简单中央示例启用通知时返回失败

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1317842/lp-cc2652rb-return-failure-when-try-to-enable-the-notification-using-simple-central-example

器件型号:LP-CC2652RB
主题中讨论的其他器件:CC2652RB

大家好、

我使用 simplelink_cc13xx_cc26xx_sdk_7_10_01_24 SDK、这是 CC2652RB 的 simple_central 示例

e2e.ti.com/.../2860.simple_5F00_central_5F00_LP_5F00_CC2652RB_5F00_tirtos7_5F00_ticlang.zip

在服务器端、我每100ms 通知一次 I byte 数据、我可以在手机上接收该数据。 我希望使用我们的 LP cc2652rb EVM 板和使用简单的中央示例接收该通知。  我从 该线程迁移代码。 我将服务器端的服务和特征 uuid 设置为与启用 simple_central 相同。 以下是示例中添加的2个主要 fxn、您是否需要指导我如何接收通知? 我的代码中遗漏了什么?

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
bool SimpleCentral_enableNotif(uint8_t index) {
// Process message.
attWriteReq_t req;
bStatus_t retVal = FAILURE;
uint8 configData[2] = { 0x01, 0x00 };
req.pValue = GATT_bm_alloc(scConnHandle, ATT_WRITE_REQ, 2, NULL);
uint8_t connIndex = SimpleCentral_getConnIndex(scConnHandle);
SIMPLECENTRAL_ASSERT(connIndex < MAX_NUM_BLE_CONNS);
// Enable notify for outgoing data Notification
if ((req.pValue != NULL) && streamServiceHandle.chars[0].cccdHandle) {
req.handle = streamServiceHandle.chars[0].cccdHandle;
req.len = 2;
memcpy(req.pValue, configData, 2);
req.cmd = TRUE;
req.sig = FALSE;
retVal = GATT_WriteNoRsp(scConnHandle, &req);
Display_printf(dispHandle, SC_ROW_NON_CONN, 0, "gatt read 0x%02x",
retVal);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

马修

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

    Matthew、您好!

    感谢您与我们联系。 我们将对此进行研究、并尽快与您联系。

    此致、

    1月

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

    Matthew、您好!

    您能帮助我了解您目前获得的结果是什么吗? 您是否已成功启用通知? 您是否收到某些错误代码?

    此致、

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

    您好、Clement、

    目前、在我连接服务器之后、 我选择 enableNotification 调用 SimpleCentral_enableNotif 函数、如下所示。  

     menu_item_action (scMenuPerConn、2、"Enable Notif"、SimpleCentral_enableNotif    )----- >调用  SimpleCentral_enableNotif

    在我选择 菜单中的"Enable Notif"后、没有发生任何情况、也没有显示任何信息

     当我在第22行创建一个断点时,我发布的代码。 它显示 RetVal 为0x01、这表示失败。 在我建立连接后、req.pvalue 仍然等于 NULL。 在我的连接后、未存储相应句柄的原因。

    Matthew。  

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

    您好、Clement、  

    当我尝试启用通知时、程序在下面停止、函数无法获取 connhandle。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    if (Error_policy_D == Error_SPIN) {
    for(;;) {
    }
    }
    else if (((eb == &defErr) && (Error_policy_D == Error_UNWIND)) || (Error_policy_D == Error_TERMINATE)) {
    System_abort("ti_sysbios_runtime_Error_raise: terminating execution\n");
    }
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    Matthew、您好!

    您似乎在取得一些进展。

    如前所述、函数 menu_item_action 无法传递连接句柄、因此、您必须为此使用一个替代方法。

    通常、"req.pvalue"应该是使用 GATT_BM_alloc ()动态分配的。 此外、确保 ocode 参数(第二个参数)设置为要分配缓冲区的消息操作码。

    此致、

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

    尊敬的 Clemet:

    感谢您的答复。

    我参考 simple_serial_socket_client_app_CC26X2R1_LAUNCHXL_tirtos_ccs 示例来启用通知。 我构建一个计时器来发布 EVT 并启用通知、当尝试传递 connhandle 并且程序在以下位置停止时、问题仍然会发生。

    e2e.ti.com/.../8015.simple_5F00_central_5F00_LP_5F00_CC2652RB_5F00_tirtos7_5F00_ticlang.zip

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    if (Error_policy_D == Error_SPIN) {
    for(;;) {
    }
    }
    else if (((eb == &defErr) && (Error_policy_D == Error_UNWIND)) || (Error_policy_D == Error_TERMINATE)) {
    System_abort("ti_sysbios_runtime_Error_raise: terminating execution\n");
    }
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    对此、您有何建议?

    马修

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

    Matthew、您好!

    您共享的代码是错误的结果-它不是导致错误的代码。

    我建议您尝试确定导致此错误的是哪一行。 为此、您可以使用一些断点来确定执行停止的位置。

    我希望这将有所帮助、

    此致、

x 出现错误。请重试或与管理员联系。