嗨对话框,
我在扩展睡眠模式下使用583个模块,使用BLE_BAREBONE示例实现了外部唤醒中断,使用正常和它通过以下配置进行广告:
///宣传操作类型。
.Advertise_operation = ADV_UNDIRECT,
///自己的BD地址源:
.address_src = gapm_public_addr,
///宣传间隔
.intv = 64,// 50ms(80 * 0.625ms)
///广告频道地图
.channel_map = 0x7,
我现在希望它与随机BLE地址进行广告,所以我做了以下更改:
.address_src = gapm_gen_static_rnd_addr,
所以我能够在每台连接上生成随机地址,但设备无法睡觉,我需要睡眠且随机地址的睡眠和宣传哪些其他更改?
设备:
嗨Dhirajp15,
我不知道如何使用随机地址的广告选择是如何与设备未睡眠的事实有关,还有其他问题。如果您在该配置中来回切换,您是否可以看到设备不睡觉和睡眠,以及您究竟检查设备是否睡觉?智能片段?您通过DMM测量功耗?我的设置上没有看到类似的东西。
谢谢mt_dialog.
嗨mt_dialog,
我已经在其中设置了一个计时器,在其中我写的回调
ARCH_BLE_SET_EXT_SLEEP():
ARCH_BLE_EXT_WAKEUP_ON():
这通常会将Proccessor延长睡眠,直到我按下唤醒按钮,如果我在用户配置中使用公共地址,则睡眠期间的处理器没有通告,但即使在调用睡眠指令之后也保持随机地址。
谢谢,
Dhiraj.
嗨Dhirajp15,
从您的描述中缺少一些东西,据我所知,您在广告模式下设置了设备,并且您正在通过内核计时器计算广告时间,并且当您从计时器回调调用这两个功能时,您可以通过核心调用这两个功能,并且设备停止广告?为了停止广告,无论您使用的地址(公共或私人,静态或随机),您应该停止广告的代码中的某个位置。如果您不发送GAPM_CANCEL_CMD命令您的设备将永远继续广告,只需调用ARCH_BLE_EXT_WAKEUP_ON()即可停止您的设备进行广告。这样做的推荐方案是在广告时调用计时器,并且从定时器回调发送GAPM_CANCEL_CMD时,当广告停止时,您将调用唤醒过程的所有NESSECARY函数。所以检查你在哪里停止广告。
谢谢mt_dialog.
嗨mt_dialog,
谢谢您的帮助!
在呼叫睡眠状态之前,我使用app_easy_gap_advertise_stop()函数!
所以在BLE_BAREBONE示例583默认启动广告时,如果我调用app_easy_gap_advertise_stop()内部user_app_init(),它不会停止广告我该怎么办我应该在开始时停止广告,我的目标是将设备唤醒在外部中断并使它宣传,我不希望它在开始时宣传
谢谢Dhiraj.
嗨Dhirajp15,
如果从app_init()发送消息,则从app_init()后,内核的消息队列恢复(gapm_reset)之后,消息将永远不会自动执行。我不明白的是为什么你想在它开始之前取消广告?为什么当您无法启动广告时,为什么会调用广告_stop?如果您不想在设备启动后立即宣传您可以创建自定义函数并替换Default_App_On_set_dev_config_complete()或default_app_on_db_init_complete()取消根据您在设备上创建数据库。例如,arablebone从default_app_on_db_init_complete()开始广告,因为它实现了播放服务。如果设备的配置结束时没有服务实现,则设备将从default_app_on_set_dev_config_complete()开始广告。
谢谢mt_dialog.
嗨mt_dialog,
我能够成功实现随机的BLE地址。
谢谢您的帮助。
问候,
Dhiraj.
嗨Dhirajp15,
很高兴您可以使其工作,如果上述任何帖子有帮助,请将其标记为已接受。
谢谢mt_dialog.