Skip to main content

Receiving CUSTS1_VAL_IND_CFM instead of CUSTS1_VAL_NTF_CFM in prox_reporter_ext

DA14580

1 year ago

Posted by tsgowtham 80 points 3 replies
0 upvotes

Hi,

I have a modified version of prox_reporter_ext where I have 3 characteristics with notification configured for all. When I use the LightBlue app for android to subscribe to notifications of a specific characteristic, I received CUSTS1_VAL_IND_CFM (0xDC08) instead of CUSTS1_VAL_NTF_CFM .

 

Below is the configuration of the characteristic to which I tried to subscribe:

		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, PERM(RD, ENABLE),
                                            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, PERM(RD, ENABLE) | PERM(NTF, ENABLE),
                                            DEF_CUST1_CUST_PRF_CHAR_LEN, 0, NULL},

        [CUST1_IDX_CUST_PRF_NTF_CFG]       = {(uint8_t*)&att_decl_cfg, ATT_UUID_16_LEN, PERM(RD, ENABLE) | PERM(WR, ENABLE),
                                            sizeof(uint16_t), 0, NULL},

        [CUST1_IDX_CUST_PRF_USER_DESC]     	= {(uint8_t*)&att_decl_user_desc, ATT_UUID_16_LEN, PERM(RD, ENABLE),
                                            sizeof(CUST1_CUST_PRF_USER_DESC) - 1, sizeof(CUST1_CUST_PRF_USER_DESC) - 1, CUST1_CUST_PRF_USER_DESC},

Is this an issue with the SDK?

Thanks

1 year ago

PM_Dialog

Hi tsgowtham,

The CUSTS1_VAL_NTF_CFM is a confirmation from the BLE stack that you pushed successfully a CUSTS1_VAL_NTF_REQ message toward the BLE stack. It is not a confirmation from the central that the data have successfully been received. Whenever you send a notification you will get a CUSTS1_VAL_NTF_CFM (for the custom profile). The indication confirmation is a GATTC_CMP_EVT which triggers the CUSTS1_VAL_IND_CFM and is handled by the user_catch_rest_hndl() function. The functions that use the specific message they are used in order to give the specific characteristic its notification or indication property on client. s

FYI – I am not able to replicate it in the ble_app_peripheral example of the SDK.

Thanks, PM_Dialog

1 year ago

tsgowtham 80 points

Hi PM_Dialog,

Just to confirm, am I ccorrect in assuming that when I subscribe to the characteristic's notification from the app, I will receive a CUSTS1_VAL_NTF_CFM message?

 

And I noticed this issue only on prox_reporter_ext. When I ran ble_app_profile with the same cust1 profile, I received CUSTS1_VAL_NTF_CFM when I subscribed to the notification i.e. On subscription

  • ble_app_profile -> CUSTS1_VAL_NTF_CFM
  • proxr_reporter_ext -> CUSTS1_VAL_IND_CFM

I had verified this by placing a breakpoint at user_catch_rest_hndl on ble_app_profile and HandleBleMsg on proxr_reporter_ext

 

Thanks

1 year ago

PM_Dialog

Hi tsgowtham,

Thanks for your indication. I’ll try to replicate it and I’ll get back to you.

Thanks, PM_Dialog