在广播参数设置中,有一个option是选择使用Identity的地址。所谓Identity的地址,指的是static random的地址,或者是public的地址。这个的使用方法是跟privacy相关的。或者是RPA的地址。
1,如果在autoconfig.h文件中,使能了,#define CONFIG_BT_PRIVACY 1。那么,广播的地址是一个RPA的地址,也就是可以可解析的随机地址。是用bt_dev.irk[]中的IRK,根据bt_dev.id_addr[],产生的,变化间隔是,#define CONFIG_BT_RPA_TIMEOUT 10,根据这个设置的,单位是秒,一般设置成900s,即15分钟,但是也可以设置成几秒,都OK 。
2,如果是打开这个宏定义。BT_LE_ADV_OPT_USE_IDENTITY,则等效于关闭privacy的功能,还是用static random或者public的地址。
struct bt_le_adv_param *adv_param =
BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONNECTABLE |
BT_LE_ADV_OPT_USE_IDENTITY,
BT_GAP_ADV_FAST_INT_MIN_2,
BT_GAP_ADV_FAST_INT_MAX_2,
NULL);
err = bt_le_adv_start(adv_param, ad, ARRAY_SIZE(ad),
sd, ARRAY_SIZE(sd));