This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Problem with sd_ble_gatts_hvx without notifications enabled

Hi there!

I am trying to add custom UUID's for my BLE application. I have a custom service which has 2 RX and 3 TX characteristics.

I have a situation where the Android APP that I am using doesn't notify. Because of this I am not able to write my data into one of the TX characteristics to transmit data to the mobile.

This results in sd_ble_gatts_hvx() returning error code as 8 - INVALID STATE.

As a workaround I added the following:

    case BLE_GAP_EVT_CONNECTED:
    	gu16_connhandle = lsp_ble_evt->evt.gap_evt.conn_handle;
    	errcode = sd_ble_gatts_sys_attr_set(gu16_connhandle, NULL, 0, 0);

As this did not work, I tried doing the following too:

    	lu16ar_Buffer[0] = 16;      // cccd handle
    	lu16ar_Buffer[1] = 2;       // cccd attribute size = 2
    	lu16ar_Buffer[2] = 1;       // 1 = enable notifications
    	lu16ar_Buffer[3] = 0xCACD;  // CRC-CCITT (0xFFFF)
    	lu32_errcode = sd_ble_gatts_sys_attr_set(gu16_connhandle, (u8*)lu16ar_Buffer, 8, 0);

Inspite of doing the above, I did not have any luck transmitting the BLE data that I intend to.

Is there any way that I can transmit (write in the characteristics) without the notification being enabled from the Android APP?

I am using SDK 12.1

Thanks in advance!

Parents Reply
  • Yes true, I used sd_ble_gatts_value_set() to set the value directly as you mentioned. I did not get any error code, meaning return from this function was 0. I did try to explicitly read from the phone to fetch the value, but this was not successful. However I used another method. I manually enabled notification by using the function sd_ble_gatts_sys_attr_set(). I calculated the CRC (CRC-CCIT - 0xFFFF) and updated the same using this function. With the updated system attributes, I used sd_ble_gatts_hvx() to write the values. This seems to be working fine. Of course I have to explicitly read the value from the mobile.

Children
No Data
Related