2个帖子/ 0个新
最后发表
亚伦李
离线
最后看到:3个月2天前
加入:2016-09-12 20分
DA14580广播间隔修改

我用的是DA14580、SDK5.0.3 ble_app_profile项目。

1.如果要修改广播间隔是否只需修改下面intv的值即可吗?是否还有广播间隔的最大值和最小值需要调整?如果有的话在哪里修改?

2.有时用lightblue连接时会失败,提示询问超时。请问如何进一步改进呢?

静态const struct advertise_configuration user_undirected_advertise_conf ={
///发布操作类型。
.advertise_operation = ADV_UNDIRECT,
///设备自身的BD地址源:
.address_src = GAPM_PUBLIC_ADDR,
/ / /广告间隔
.intv = 160, // 100毫秒(160*0.625毫秒)
/ /地图/广告通道
.channel_map = 0 x7,
};

谢谢支持!

设备:
CYibin
离线
最后看到:7个月1周前
工作人员
加入:2017-12-14 02:48
你好,

你好,

请看下面回答:

1.如果要修改广播间隔是否只需修改下面intv的值即可吗?是否还有广播间隔的最大值和最小值需要调整?如果有的话在哪里修改?

建议以SDK5.0.4作为基础进行开发,广播相关的参数修改(包括intv_min和intv_max),只需在以下结构体中修改即可:

static const struct advertise_configuration user_adv_conf ={///设备自身的BD地址源:/// - GAPM_PUBLIC_ADDR: Public address /// - GAPM_PROVIDED_RND_ADDR: Provided random address /// - GAPM_GEN_STATIC_RND_ADDR: Generated static random address /// - GAPM_GEN_RSLV_ADDR:GAPM_GEN_NON_RSLV_ADDR: Generated non-resolvable private random address /// - GAPM_PROVIDED_RECON_ADDR:Reconnection address (only for GAPM_ADV_DIRECT) .addr_src = GAPM_PUBLIC_ADDR, ///可解析地址重新生成前的持续时间.renew_dur = 0, ///发布最小间隔时间.intv_min = 160, // 100ms (160*0.625ms) ///发布最大间隔时间.intv_max = 160,/ / 100 ms (160 * 0.625 ms) / / /广告通道映射.channel_map = 0 x7 , /************************* * 广告信息  ************************* */ /// 主机信息广告数据(GAPM_ADV_NON_CONN和GAPM_ADV_UNDIRECT)广告模式:/ / / / / / - GAP_NON_DISCOVERABLE:非发现模式/ / / - GAP_GEN_DISCOVERABLE:一般发现模式/// - GAP_LIM_DISCOVERABLE:有限发现模式/// - gap_broadcast_mode:广播模式。mode = GAP_GEN_DISCOVERABLE, ///主机信息发布数据(GAPM_ADV_NON_CONN和GAPM_ADV_UNDIRECT) ///发布过滤策略:/// - ADV_ALLOW_SCAN_ANY_CON_ANY:允许扫描和连接请求任何人/ / / - ADV_ALLOW_SCAN_WLST_CON_ANY:只允许扫描从白名单点播设备和/ / /连接请求任何人/ / / - ADV_ALLOW_SCAN_ANY_CON_WLST:允许任何人的扫描要求和连接请求从白名单设备/ / / / / / - ADV_ALLOW_SCAN_WLST_CON_WLST:允许扫描和连接请求从白名单/ / /设备只有.adv_filt_policy = ADV_ALLOW_SCAN_ANY_CON_ANY直接地址信息(GAPM_ADV_DIRECT) / / / / / /(只用如果重新连接地址不是设置或隐私禁用)/ / / BD地址的设备.peer_addr = {0 0 x1, x2, x3, 0 x4, 0 x5, 0 x6},///直接地址信息(GAPM_ADV_DIRECT) ///(仅在重连接地址没有设置或禁用隐私时使用)///设备的地址类型0=public/1=private random .peer_addr_type = 0,};

2.有时用lightblue连接时会失败,提示询问超时。请问如何进一步改进呢?

连接失败,需要你提供更多信息才能进一步分析,如测试的软、硬件环境,测试的步骤,问题发生的概率等。

关于iOS和设备的连接,苹果官网有一份指导文档,里面有一些祝福连接参数的建议,文档如下:

https://developer.apple.com/accessories/Accessory-Design-Guidelines.pdf