From b65553e57f62d8ecd73e5a33e277258f48ca2582 Mon Sep 17 00:00:00 2001 From: Glenn Ruben Bakke Date: Sat, 11 Feb 2017 18:02:22 +0100 Subject: [PATCH] nrf5/sdk: Successful device name advertisment. Added flags to advertisment packet and enable device name byte copy into the advertisment data. --- nrf5/sdk/softdevice.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/nrf5/sdk/softdevice.c b/nrf5/sdk/softdevice.c index 36a3723704..2eb694e391 100644 --- a/nrf5/sdk/softdevice.c +++ b/nrf5/sdk/softdevice.c @@ -319,16 +319,27 @@ bool sd_advertise_data(ubluepy_advertise_data_t * p_adv_params) { "Can not apply device name in the stack.")); } + printf("Device name applied\n"); + adv_data[byte_pos] = (BLE_ADV_AD_TYPE_FIELD_SIZE + p_adv_params->device_name_len); byte_pos += BLE_ADV_AD_TYPE_FIELD_SIZE; adv_data[byte_pos] = BLE_GAP_AD_TYPE_COMPLETE_LOCAL_NAME; - // memcpy(&adv_data[byte_pos], p_adv_params->p_device_name, p_adv_params->device_name_len); + byte_pos += BLE_ADV_AD_TYPE_FIELD_SIZE; + memcpy(&adv_data[byte_pos], p_adv_params->p_device_name, p_adv_params->device_name_len); // increment position counter to see if it fits, and in case more content should // follow in this adv packet. - byte_pos += BLE_ADV_AD_TYPE_FIELD_SIZE; byte_pos += p_adv_params->device_name_len; } + // set flags, default to disc mode + adv_data[byte_pos] = (BLE_ADV_AD_TYPE_FIELD_SIZE + BLE_AD_TYPE_FLAGS_DATA_SIZE); + byte_pos += BLE_ADV_AD_TYPE_FIELD_SIZE; + adv_data[byte_pos] = BLE_GAP_AD_TYPE_FLAGS; + byte_pos += BLE_AD_TYPE_FLAGS_DATA_SIZE; + adv_data[byte_pos] = BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE; + byte_pos += 1; + + // scan response data not set if (sd_ble_gap_adv_data_set(adv_data, byte_pos, NULL, 0) != 0) { nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_OSError,