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

SCCD not visible in nrfToolbox

I am trying to implement SCCD on S130 v2 sdk11 but this is not in the scope of the tutorial. I have populated the structure just the same as for CCCD, but I can't have the descriptor shown in nRF toolbox or in my own android app when using getDescriptors (developer.android.com/.../BluetoothGattCharacteristic.html. I have tried to un-re-bond device but it does not help. do I have to use add_descriptor function, ? it is not used for cccd, so I don't use it for sccd. If it is needed, please provide an example as the doc does not really help. I want to use this descriptor in order to activate some hardware peripheral on my device independantly from notifications, as the peripheral is HW ressource, hence unique for all clients.

here is my code (sorry for formatting but I am a newbie on this forum)

ble_gatts_attr_md_t sccd_md;
memset(&sccd_md, 0, sizeof(sccd_md));
BLE_GAP_CONN_SEC_MODE_SET_OPEN(&sccd_md.read_perm);
BLE_GAP_CONN_SEC_MODE_SET_OPEN(&sccd_md.write_perm);
    sccd_md.vloc                = BLE_GATTS_VLOC_STACK; 
    sccd_md.rd_auth = 0;
    sccd_md.wr_auth = 0;
    char_md.p_sccd_md           = &sccd_md;  				
    
err_code =  sd_ble_gatts_characteristic_add(p_dss->service_handle,
                                       &char_md,
                                       &attr_char_value,
                                       &p_dss->accelerometer_handles);
Parents
  • I don't think there is an option to add custom proprietary descriptor with BLE. You would need to describe a new characteristic for your use. You can, for example add the Characteristic User Description, but the use of it is to define in text (UTF-8) information about the characteristic. Not for other purpose.

    sd_ble_gatts_sys_attr_get() is only for the CCCD not all the descriptor. You should use sd_ble_gatts_value_get() to read the descriptor value, like any attribute /characteristic value.

    I would suggest to add a characteristic to the same service to handle the hardware. Or you can add one extra byte in the current characteristic to handle that, it's up to your design.

Reply
  • I don't think there is an option to add custom proprietary descriptor with BLE. You would need to describe a new characteristic for your use. You can, for example add the Characteristic User Description, but the use of it is to define in text (UTF-8) information about the characteristic. Not for other purpose.

    sd_ble_gatts_sys_attr_get() is only for the CCCD not all the descriptor. You should use sd_ble_gatts_value_get() to read the descriptor value, like any attribute /characteristic value.

    I would suggest to add a characteristic to the same service to handle the hardware. Or you can add one extra byte in the current characteristic to handle that, it's up to your design.

Children
Related