跳过主要内容

在prox_reporter_ext中接收CUSTS1_VAL_IND_CFM而不是CUSTS1_VAL_NTF_CFM

DA14580

1年前

发布的tsgowtham80点 3回复
0的问题

你好,

我有一个prox_reporter_ext的修改版本,其中有3个特征,并为所有特征配置了通知。当我使用android的LightBlue应用程序订阅特定特征的通知时,我收到的是CUSTS1_VAL_IND_CFM (0xDC08),而不是CUSTS1_VAL_NTF_CFM。

下面是我尝试订阅的特性的配置:

static struct att_char128_desc custs1_cust_prf_char = {ATT_CHAR_PROP_RD | ATT_CHAR_PROP_NTF, {0,0}, DEF_CUST1_CUST_PRF_UUID_128};[CUST1_IDX_CUST_PRF_CHAR] = {(uint8_t *) &att_decl_char ATT_UUID_16_LEN,烫(RD,启用),sizeof (custs1_cust_prf_char), sizeof (custs1_cust_prf_char), (uint8_t *) &custs1_cust_prf_char}, [CUST1_IDX_CUST_PRF_VAL] = {CUST1_CUST_PRF_UUID_128 ATT_UUID_128_LEN,烫(RD,使)|烫(NTF,启用),DEF_CUST1_CUST_PRF_CHAR_LEN, 0,零},[CUST1_IDX_CUST_PRF_NTF_CFG] = {(uint8_t *) &att_decl_cfg ATT_UUID_16_LEN,烫(RD,使)|烫(WR,启用),sizeof (uint16_t), 0,零},[CUST1_IDX_CUST_PRF_USER_DESC] = {(uint8_t *) &att_decl_user_desc ATT_UUID_16_LEN,烫(RD,启用),sizeof (CUST1_CUST_PRF_USER_DESC) - 1, sizeof (CUST1_CUST_PRF_USER_DESC) - 1, CUST1_CUST_PRF_USER_DESC},

这是SDK的问题吗?

谢谢

1年前

PM_Dialog

嗨tsgowtham,

CUSTS1_VAL_NTF_CFM是来自BLE堆栈的确认,您已成功将CUSTS1_VAL_NTF_REQ消息推入BLE堆栈。这不是来自中央的数据已成功接收的确认。每当发送通知时,您将获得CUSTS1_VAL_NTF_CFM(用于自定义概要文件)。指示确认是一个GATTC_CMP_EVT,它触发CUSTS1_VAL_IND_CFM,并由user_catch_rest_hndl()函数处理。使用特定消息的函数,它们用于在客户端赋予特定特性其通知或指示属性。年代

我无法在SDK的ble_app_peripheral示例中复制它。

谢谢,PM_Dialog

1年前

tsgowtham 80点

嗨PM_Dialog,

只是确认一下,我假设当我从应用程序订阅特征的通知时,我将收到一个CUSTS1_VAL_NTF_CFM消息,对吗?

我只在prox_reporter_ext上注意到这个问题。当我使用相同的cust1配置文件运行ble_app_profile时,当我订阅通知(即订阅)时,我收到CUSTS1_VAL_NTF_CFM

  • ble_app_profile - > CUSTS1_VAL_NTF_CFM
  • proxr_reporter_ext - > CUSTS1_VAL_IND_CFM

我通过在ble_app_profile上的user_catch_rest_hndl和proxr_reporter_ext上的HandleBleMsg处放置断点来验证这一点

谢谢

1年前

PM_Dialog

嗨tsgowtham,

谢谢你的指点。我试着复制一下,然后再联系你。

谢谢,PM_Dialog