I'm running advertising with a uint16_t service data associated with a 16-bit service UUID.
I would like to update the service data regularly without the need to update the whole advertising package.
Is there a way to do this similarly to the flags_set() function in the BLE Advertising Module? When I try to accomplish it by recurring to "uint8_t * p_service_data = ble_advdata_parse(p_advertising->adv_data.adv_data.p_data, p_advertising->adv_data.adv_data.len, BLE_GAP_AD_TYPE_SERVICE_DATA)" I can never return the correct offset in the advertising data related to the Service Data field - it always returns 0 offset - and therefore can't access the actual Service Data to update it. Any suggestions to accomplish this?
Thank you for your reply.
I'm totally sure the advertising packet contains the ServiceData and it is working as expected. I'm updating the whole advertising data everytime I need to update the ServiceData and it works perfectly.
Any queues what might be wrong?
Not sure what it can be. Do you mind sharing your code? We can make the case private if you prefer confidentiality.