SDK 5.0.4, Example ble_app_peripheral
This issue is based on the thread "https://support.dialog-semiconductor.com/cant-read-charateristic-value-i..."
I followed the recommendation:
"A task that requires this mechanism will typically register for ATTS_READ_REQ_IND messages at DB creation time using the dg_register_task_for_read_request() C API."
and confirmed that I can control the read function from Lightblue App. But then I can't see any characteristic descriptor in the Lightblue app.
See the attachment.
这哈ppens always after the registration mentioned above. Without the registration for ATTS_READ_REQ_IND message
then all characteristic descriptors appear as expected. I although tried to place the registration in different places in the DB creation function and user_app_connection(), the same results.
How can I get rid of this issue ? Thanks
嗨muxf,
I ve just tested the callback with the custom and the diss service and i was perfectly able to get the values of the characteristics and the descriptors as well, did you check if indeed the handler of the ATTS_READ_REQ_IND hits when reading the characteristic, and if it does, do you sent a dg_atts_read_cfm() from the callback ?
Thanks MT_dialog
Hi MT_Dialog,
you are right. The mistake I did is using the " struct gattc_read_com_ind const *param" as argument for the callback function atts_read_req_ind_handler(),
just deviated from the callback function gattc_write_cmd_ind_handler() in cust1_task.c. Replacing it with "struct atts_read_req_ind const *param" I can then receive characteristics and the descriptors as well. Thank you for the confirmation!
BR
muxf