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

Where is the function which sets the cccd?

Hello, I'm using an android device to set cccd, it worked when I was running the project on nrf514xx @s110, it no longer does on nrf52840 S140, so now I wanna make sure the program actually dont skip the part that sets the cccd.

So where in the library API can I find it? Which switch case? Which API function? I imagine it is a part of a gatt call back somewhere, but I can't quite tell where.

I hope it's not deeply hidden in the SD and it's impossible to locate.

Also, the other question I asked here can provide some more background:

devzone.nordicsemi.com/.../

Parents
  • Hi Mitch, how you describe it this seems to be more Android problem. What radio sniffer trace says? Is android phone really writing proper 16-bit value to CCCD handle? Is it using Write Request not Write Command (which seems to be forbidden by BT SIG spec for writing to CCCD and so Nordic enforces it in their latest soft devices (see this Q&A thread for more))?

    Otherwise when it comes to S140 API you should wait for BLE_GATTS_EVT_WRITE and filter it by target handle and value and act accordingly.

  • Hello endnode, thank you so much for you reply! :)

    What radio sniffer trace says? Is android phone really writing proper 16-bit value to CCCD handle?

    I haven't sniffed it yet, I'm lazy, but it worked perfectly on nrf51422 S110, so I believe there is sufficient reason to believe that yes, it does, unless of course the 16-bit value also changed in the latest specs.

    Is it using Write Request not Write Command

    That, to be honest, I'm completely not sure. I haven't even heard of that switch-case before. Can you tell me what are "BLE_GATT_OP_WRITE_REQ" and "BLE_GATT_OP_WRITE_CMD"? Are they branches inside a event handler callback of some sort? And I must enter the right branch to call the right function in order enable CCCD? That would be really odd! Because I remembered quite clearly that in S110, you don't have to call a function to enable cccd, the SD handles everything?

Reply
  • Hello endnode, thank you so much for you reply! :)

    What radio sniffer trace says? Is android phone really writing proper 16-bit value to CCCD handle?

    I haven't sniffed it yet, I'm lazy, but it worked perfectly on nrf51422 S110, so I believe there is sufficient reason to believe that yes, it does, unless of course the 16-bit value also changed in the latest specs.

    Is it using Write Request not Write Command

    That, to be honest, I'm completely not sure. I haven't even heard of that switch-case before. Can you tell me what are "BLE_GATT_OP_WRITE_REQ" and "BLE_GATT_OP_WRITE_CMD"? Are they branches inside a event handler callback of some sort? And I must enter the right branch to call the right function in order enable CCCD? That would be really odd! Because I remembered quite clearly that in S110, you don't have to call a function to enable cccd, the SD handles everything?

Children
No Data
Related