动态数据进阶|扫描

9个帖子/ 0新
最后一篇
wisilica
离线
最后一次露面:2个月前1年
加入:2015年3月17日08:16
动态数据进阶|扫描

嗨对话框,
我有以下疑问:
1.我需要动态地改变每个非可连接广告中的值。自定义adv数据的唯一方法是#define user_advertise_data,但由于我必须更改每个数据包的值,我认为不太适合。有没有其他方式?我正在使用app_peripheral项目。
2.我正在研究一个示例项目来重新宣传我在被动扫描期间收到的任何不可连接的广告。这可能吗?
3.可以为非可连接广告设置的最小广告间隔是多少,以及在此间隔期间将发送多少广告?
提前致谢。

设备:
mt_dialog.
离线
最后一次露面:6个月1个星期前
职员
加入:2015-06-08 11:34
嗨wisilica,

嗨wisilica,

1.你可以看看准系统例如,在广告串通过计数器动态变化的,事情是,你必须停止广告程序,更新的字符串,然后再开始投放广告。

2.为了做到这一点,你将有(580不支持多角色,你将不得不是外设或中央)角色之间切换。为了做到这一点,你必须将数据从广告串,你已经找到复制,以重新设置堆栈和重新配置设备发出gapm复位命令作为peirpheral在外设广告应用找到的广告串串并启动广告程序。

3.在每个广告间隔3上,不能小于100ms的不可连接的未连接类型的最小广告间隔的BLE规范提及,在每个广告通道37,38和39上发送一个广告消息。非可连接过程“T超时,在您默认取消该过程之前,它将继续进行授权广告消息。

谢谢mt_dialog.

wisilica
离线
最后一次露面:2个月前1年
加入:2015年3月17日08:16
感谢您的及时

感谢你们的及时答复。关于第二点,可能GAPM角色的动态切换在14583?

mt_dialog.
离线
最后一次露面:6个月1个星期前
职员
加入:2015-06-08 11:34
嗨wisilica,

嗨wisilica,

是的,583实质上是一个带有闪光灯,并因为闪光灯的没有深度睡眠功能的580,所以是你可以在583的角色转换与GAPM_RESET_CMD。

谢谢mt_dialog.

wisilica
离线
最后一次露面:2个月前1年
加入:2015年3月17日08:16
谢谢你。如何分配

谢谢你。在发出GAPM_RESET_CMD后如何分配新角色?

wisilica
离线
最后一次露面:2个月前1年
加入:2015年3月17日08:16
嗨对话团队,

嗨对话团队,

我的目的是宣传BLE包固定的时间,然后开始扫描。
对于这一点,我在user_config.h初始化结构user_gapm_conf如下:
静态结构gapm_configuration user_gapm_conf = {
///设备角色:中央,周围,观察或广播
。角色= GAP_PERIPHERAL_SLV,
..
}

很少的广告后,我需要来扫描该角色必须切换BLE包。对于这一点,我跟着你建议什么。也就是说,我已经设置user_gapm_conf.role = GAP_OBSERVER_SCA,然后让通过调用API app_gapm_reset_op发出GAPM_RESET_CMD()。但是,没有数据包收到。另外,流量控制在进入功能user_app_scanning_completed,定义如下。
.app_on_scanning_completed = user_app_scanning_completed,

提前致谢
Wisilica

mt_dialog.
离线
最后一次露面:6个月1个星期前
职员
加入:2015-06-08 11:34
嗨wisilica,

嗨wisilica,

该SDK支持好好尝试一下这种配置的默认,所以你将不得不在此改变一些functionallities,外围和中心之间不断变化的流程是这样的:

  • 当装置启动时一个GAPM_CMP_EVT被触发,指示该堆栈的复位被完成,即复位由gapm_cmp_evt_handler()和app_easy_gap_dev_configure()被调用来处理。
  • 所述app_easy_gap_dev_configure()被使用,以便将设备设置一个角色从user_gapm_conf结构的配置。
  • 所以,你必须创建你将在设备配置无论是中央或外围accoring到以前的状态,或者你想的条件下,自己app_easy_gap_dev_configure()函数。

通过只是调用app_gapm_reset_op()你只是正在重置与相同的结构之前,我认为是外围堆栈。

关于扫描和扫描完成时,扫描过程有一个超时,这意味着approximatelly在8秒之后该过程将与状态参数作为GAP_ERR_TIMEOUT在user_app_scanning_completed的值完成。

谢谢mt_dialog.

wisilica
离线
最后一次露面:2个月前1年
加入:2015年3月17日08:16
嗨对话团队,

嗨对话团队,

我按照您的指示,我能够从外围切换装置作用于观察者。此外,我能够在扫描receieve BLE包。但在我的申请,我需要一些这样的开关。即,我需要观察者和广播模式之间切换的次数。作为我这样做,我的设备执行突然停止。

例如,最初设备的作用是GAP_PERIPHERAL_SLV。该设备是用于在特定的持续时间广告模式。后来,我重新堆栈,并设置为GAP_OBSERVER_SCA设备的作用。然后,对于一个特定的持续时间,所述设备处于扫描模式。并且该装置捕获BLE分组为好。现在,这个扫描周期之后,我希望设备返回到广告模式,为此我又重新堆栈和改变作用GAP_BROADCASTER_ADV。但在此之后,该设备执行突然停止。能否请你说明为什么这种情况发生的可能原因。是否有对角色切换次数的任何限制可能吗?

提前致谢,

Wisilica

mt_dialog.
离线
最后一次露面:6个月1个星期前
职员
加入:2015-06-08 11:34
嗨wicilica,

嗨wicilica,

如果设备在某些时候可以在两种模式下切换,则无限度地没有限制,可以在某个地方停下来,因此您必须报到设备摊位的究竟在哪里,以便我能够检查。如果您使用的是5.0.4 SDK,您可以继续调试和睡眠,如果您使用的是较旧的SDK,则必须禁用休眠并捕获设备的状态,因此如果设备堆栈在一段时间内(1)循环或一般来说,在任何断言中,您可以报告它,以便让我有一些东西来解释可能的武力。

在您没有看到任何断言或设备所卡住的任何断言和设备的任何位置,而无需执行任何操作,这意味着您已更改的角色,但您尚未指示设备执行任何操作,例如在您之后转回广播公司的角色,你指示设备宣传,自从你没有,设备会睡觉,如果没有任何东西安排了外部唤醒就可以唤醒你。

谢谢mt_dialog.