This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to change 16 bit uuid to 128 bit uuid

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

Related