我使用的是最新物联网版本附带的SDK,并使用了beacon_suota_button作为基础。
我想将GAPM_STATIC_ADDR改为GAPM_GEN_RSLV_ADDR。
#undef CFGèU APPèU SECURITY/***********************************************************************本地设备的隐私功能和地址配置:-APPèU CFGèU地址发布无隐私,公共BDA*-APPèCFGèU地址静态无隐私,随机静态BDA*-APPèCFGèU主机隐私,RPA,公共身份*-应用程序CFG主机隐私,NRPA(仅不可连接)*-应用程序CFG主机隐私,RPA或PUB,公共身份*-应用程序CFG主机隐私,NRPA主机隐私,NRPA控制器隐私,RPA,公共身份**仅选择一个选项进行隐私/寻址配置。**********************************************************************************************************************************************************************************************************************************************/#定义用户\u CFG\u地址\u模式应用\u CFG\u地址\u静态常量结构播发\u配置用户\u adv\u conf={/***设备的自有BD地址源:*-GAPM\u STATIC\u ADDR:根据设备地址配置的公共或私有静态地址*-GAPM\u GEN\u RSLV\u ADDR:生成的可解析私有随机地址*-GAPM\u GEN\u NON\u RSLV\u ADDR:生成的不可解析私有随机地址*/.ADDR\u src=GAPM\u GEN\u RSLV\u ADDR,///adv的最小间隔ertising.intv_min=MS_至BLESLOTS(信标广告间隔),//687.5ms///广告的最大间隔。intv_max=MS_至BLESLOTS(信标广告间隔),//687.5ms/***广告频道地图:*-ADV_CHNL_37_EN:频道37的广告频道地图。*-ADV_CHNL_38_EN:频道38的广告频道地图。*-ADV_CHNL_39_EN:频道39的广告频道地图。*-ADV_ALL_CHNLS_EN:频道37、38和39的广告频道地图。*/-channel/**************************广告信息*****************************///主机信息广告数据(GAPM_ADV_NON_CONN和GAPM_ADV_indirect)///广告模式://-GAP\u不可发现:不可发现模式//-GAP\u GEN\u可发现:一般可发现模式//-GAP\u LIM\u可发现:有限可发现模式//-GAP\u广播模式:广播模式。模式=GAP\u GEN\u可发现,///主机信息广告数据(GAPM\u ADV\u NON\u CONN和GAPM\u ADV\u Undirective)//-ADV\u-ALLOW\u-SCAN\u-ANY\u-CON\u-ANY:允许来自任何人的扫描和连接请求//-ADV\u-ALLOW\u-SCAN\u-CON\u-ANY:仅允许来自白名单设备的扫描请求和来自任何人的连接请求//-ADV\u-ALLOW\u-SCAN\u-ANY\u-CON\u-WLST:允许来自任何人的扫描请求和来自白名单设备的连接请求//-ADV\u-ALLOW\u-SCAN\u-WLST_CON_WLST:Allow scan and connection requests from White List///仅限设备。adv_filt_policy=adv_Allow_scan_ANY_CON_ANY,///直接地址信息(GAPM_adv_Direct/GAPM_adv_Direct_LDC)//(仅在未设置重新连接地址或禁用隐私时使用)///设备的BD地址。对等地址={0x1、0x2、0x3、0x4、0x5、0x6},///直接地址信息(GAPM\u ADV\u Direct/GAPM\u ADV\u Direct\u LDC)//(仅在未设置重新连接地址或禁用隐私时使用)///设备的地址类型0=public/1=private random.peer\u addr\u type=0,};静态常量结构GAPM\u配置用户\u GAPM\u conf={///设备角色:中央、外围、观察者、广播者或所有角色。(@请参阅enum gap_角色).role=GAP\u role\u PERIPHERAL,///Maximal MTU.max\u MTU=247,///Device Address Type//-GAPM\u CFG\u ADDR\u PUBLIC:Device Address是公共静态地址///GAPM\u CFG\u ADDR\u PRIVACY:设备地址是私有静态地址//-GAPM\u CFG\u ADDR\u PRIVACY:使用隐私功能生成的设备地址。ADDR\u Type=GAPM\u CFG\u ADDR\u PRIVACY/************************隐私配置**************************///私有静态地址//注意:地址应符合以下要求://-地址的两个最高有效位应等于1,//-地址的所有剩余位不应等于1,//-地址的所有剩余位应为不等于0//如果使用{0x00,0x00,0x00,0x00,0x00,0x00}空地址,将自动生成//随机静态地址..addr={0x00,0x00,0x00,0x00,0x00},///启用隐私时重新生成设备地址之前的持续时间..续订_dur=50000,///用于可解析随机BD地址生成的设备IRK(LSB优先)。IRK={0x00、0x01、0x02、0x03、0x04、0x05、0x06、0x07、0x08、0x09、0x0a、0x0b、0x0c、0x0d、0x0e、0x0f}******************************************************************************************************************************************************************************************************************************************************************************************************************************/////******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************----+//-位[0-1]:对等设备的设备名称写入权限要求(@see gapm_write_att_perm)////-Bit[2-3]:对等设备的设备外观写入权限要求(@see gapm_write_att_perm)///-Bit[4]:存在从属首选连接参数//-Bit[5]:服务change feature present in GATT attribute database. /// - Bit [6] : Reserved /// - Bit [7] : Enable Debug Mode .att_cfg = GAPM_MASK_ATT_SVC_CHG_EN, /// GAP service start handle .gap_start_hdl = 0, /// GATT service start handle .gatt_start_hdl = 0, /************************************************** * Data packet length extension configuration (4.2) ************************************************** */ /// Maximal MPS .max_mps = 0, /// Maximal Tx octets .max_txoctets = 251, /// Maximal Tx time .max_txtime = 2120, };
不管我在renew_dur中设置的数字是多少,我都可以看到每隔2-3分钟地址就会发生变化。我的配置有问题吗?(还有,renew_dur的时间单位是什么?女士吗?
我试过
#定义CFG_应用程序_安全性
并设置
#定义用户\u CFG\u地址\u模式应用\u CFG\u CNTL\u PRV\u RPA\u RAND
当调试器连接时,它似乎运行正常,但当通过SmartSnippets工具箱加载时,它将运行最初~5秒,然后从扫描程序中消失。
是否还有其他需要更改/启用的定义?
谢谢你!
设备:
嗨dlo,
谢谢你的问题。让我检查一下。
您是否尝试设置其他的renew_dur?另外,您是否对我们的任何SDK示例(例如ble_app_security)进行了同样的操作?
谢谢,PM_Dialog
感谢您建议查看BLE_APP_SECURITY示例。我还没有找到解决这个问题的方法,但我会继续调查。
谢谢你的帮助。
这似乎解决了这个问题:
#定义USER_CFG_ADDRESS_MODE APP_CFG_HOST_PRIV_RPA
嗨dlo,
谢谢你的评论,并接受你的工作答案。你通过定义这个宏来解决你的问题了吗?
谢谢,PM_Dialog
多亏了您关于查看ble_安全示例的建议,我能够看到它使用了一个宏,根据该宏,我发现它只能具有某个值,基于此,我缩小了该定义应设置的范围。
嗨dlo,
谢谢你让我们知道!如果您有任何其他问题,请创建一个新的论坛线程。
谢谢,PM_Dialog