动态数据进阶|扫描

9帖/ 0新
最后一篇
Wisilica.
离线
最后一次露面:1年2个月前
加入:2015-03-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.BLE规范中提到,不可连接的非直接类型的最小广告间隔不能小于100ms,每个广告间隔发送3条广告消息,每个广告通道分别发送37、38和39条广告消息。非可连接过程不会超时,因此直到您显式地取消该过程,它将继续发送广告消息。

由于MT_dialog

Wisilica.
离线
最后一次露面:1年2个月前
加入:2015-03-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.
离线
最后一次露面:1年2个月前
加入:2015-03-17 08:16
谢谢你!我怎么分配

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

Wisilica.
离线
最后一次露面:1年2个月前
加入:2015-03-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.
离线
最后一次露面:1年2个月前
加入:2015-03-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)循环或一般在任何断言你可以为了我报告有解释flau作为可能的。

以防你不明白任何断言或任何设备卡和设备继续运行而不做任何操作,这意味着你已经改变了角色但是你没有指示你的设备做任何事情,例如切换广播的角色之后,你指导设备做广告,因为如果你不,该设备将会休眠,如果没有任何安排,只有外部唤醒将能够唤醒你。

由于MT_dialog