diff --git a/src/ble/ble_service.c b/src/ble/ble_service.c index b8195da..22499b8 100644 --- a/src/ble/ble_service.c +++ b/src/ble/ble_service.c @@ -358,11 +358,6 @@ static void conn_param_update_handler(struct k_work *work) /*============================================================================== * Advertising data *============================================================================*/ -static const struct bt_data ad[] = -{ - BT_DATA_BYTES(BT_DATA_FLAGS, (BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR)), - BT_DATA(BT_DATA_NAME_COMPLETE, SERIAL_NUMBER, sizeof(SERIAL_NUMBER) - 1), -}; static const struct bt_data sd[] = { @@ -616,6 +611,12 @@ int ble_advertising_start(void) int err; const struct bt_data *scan_data = dfu_advertising_mode ? sd_dfu : sd; size_t scan_data_count = dfu_advertising_mode ? ARRAY_SIZE(sd_dfu) : ARRAY_SIZE(sd); + size_t serial_name_len = strnlen(SERIAL_NO, SERIAL_NO_LENGTH); + const struct bt_data ad[] = + { + BT_DATA_BYTES(BT_DATA_FLAGS, (BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR)), + BT_DATA(BT_DATA_NAME_COMPLETE, SERIAL_NO, serial_name_len), + }; struct bt_le_adv_param adv_param = BT_LE_ADV_PARAM_INIT( BT_LE_ADV_OPT_CONN, @@ -624,6 +625,13 @@ int ble_advertising_start(void) NULL /* undirected */ ); + err = bt_set_name(SERIAL_NO); + if (err) + { + DBG_ERR("[BLE] Name set failed (err %d)\r\n", err); + return err; + } + err = bt_le_adv_start(&adv_param, ad, ARRAY_SIZE(ad), scan_data, scan_data_count); if (err) {