diff --git a/ble/gap_le.h b/ble/gap_le.h index d16a211f3..15dfea07b 100644 --- a/ble/gap_le.h +++ b/ble/gap_le.h @@ -70,6 +70,13 @@ gap_random_address_type_t gap_random_address_get_mode(void); */ void gap_random_address_set_update_period(int period_ms); +/** + * @brief Sets a fixed random address for advertising + * @param addr + * @note Sets random address mode to type off + */ +void gap_random_address_set(bd_addr_t addr); + /** * @brief Updates the connection parameters for a given LE connection * @param handle diff --git a/ble/sm.c b/ble/sm.c index a17cf4f8e..a793ba9ab 100644 --- a/ble/sm.c +++ b/ble/sm.c @@ -2506,6 +2506,13 @@ void gap_random_address_set_update_period(int period_ms){ gap_random_address_update_start(); } +void gap_random_address_set(bd_addr_t addr){ + gap_random_address_set_mode(GAP_RANDOM_ADDRESS_TYPE_OFF); + memcpy(sm_random_address, addr, 6); + rau_state = RAU_SET_ADDRESS; + sm_run(); +} + /* * @brief Set Advertisement Paramters * @param adv_int_min