Yes, after the characteristic is enabled, you can assume it to be usable. Check the return value of the API to ensure that the attribute was indeed enabled.
In CySmart, if you "Discover All Attributes" after the attributes are enabled, then you should be able to see the new characteristics. I tested this with a simple project and it worked fine.
Thank you for the help. After enabling the characteristic "Discover All Attributes" does not show them. If, after enabling them, I write to the characteristic using CyBle_GattsWriteAttributeValue and then use "Discover All Attributes" they show up.
Does this make sense?
Does it do the same behavior for the disabling of the attribute as well?
Does reading the attribute after enabling/disabling it cause the same effect?
I can't find much useful documentation on the enable/disable attribute functions...
I will have to experiment with the disabling...
I have been fighting what I think is a Cypress bug. I have been changing the characteristics in my custom service and at some point, disabling the characteristics as I was, I was no longer to connect to the peripheral!
If I did not disable it connected fine.
After a lot of debugging I found that if you disable the last characteristic in the list (In the GUI) you cannot connect. Replacing the last characteristic in the list with one that I am not disabling fixed it.
Cypress, care to verify?
Are you sure you are using the latest version of BLE component, i.e v3.30? I have tested these APIs and not found any issue.
Would it possible for you to share your project so that we can test? Might be some corner case which we might have missed or an incorrect implementation.
Are you a Cypress employee? I would need a direct Cypress email and would have to verify that a non-disclosure is in place.