Hello, I am using nrf52 and sdk 12. I compiled the code bootloader_secure from the examples in sdk. Now I want to change the 16 bit uuid to 128 bit uuid in the code. The code chunk of 16 bit uuid is
uint32_t err_code;
uint16_t len_advdata = 9;
uint16_t max_device_name_length = MAX_ADV_DATA_LENGTH - len_advdata;
uint16_t actual_device_name_length = max_device_name_length;
uint8_t p_encoded_advdata[MAX_ADV_DATA_LENGTH];
// Encode flags.
p_encoded_advdata[0] = 0x2;
p_encoded_advdata[1] = BLE_GAP_AD_TYPE_FLAGS;
p_encoded_advdata[2] = adv_flags;
// Encode 'more available' uuid list.
p_encoded_advdata[3] = 0x3;
p_encoded_advdata[4] = BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_MORE_AVAILABLE ;
p_encoded_advdata[5] = LSB_16(BLE_DFU_SERVICE_UUID);
p_encoded_advdata[6] = MSB_16(BLE_DFU_SERVICE_UUID);
// Get GAP device name and length
err_code = sd_ble_gap_device_name_get(&p_encoded_advdata[9], &actual_device_name_length);
if (err_code != NRF_SUCCESS)
{
return err_code;
}
// Set GAP device in advertising data.
if (actual_device_name_length <= max_device_name_length)
{
p_encoded_advdata[7] = actual_device_name_length + 1; // (actual_length + ADV_AD_TYPE_FIELD_SIZE(1))
p_encoded_advdata[8] = BLE_GAP_AD_TYPE_COMPLETE_LOCAL_NAME;
len_advdata += actual_device_name_length;
}
else
{
// Must use a shorter advertising name than the actual name of the device
p_encoded_advdata[7] = max_device_name_length + 1; // (length + ADV_AD_TYPE_FIELD_SIZE(1))
p_encoded_advdata[8] = BLE_GAP_AD_TYPE_SHORT_LOCAL_NAME;
len_advdata = MAX_ADV_DATA_LENGTH;
}
return sd_ble_gap_adv_data_set(p_encoded_advdata, len_advdata, NULL, 0);
What changes should I make to make it 128 bit uuid. Thanks