DSPS广告名称更改

6个职位/ 0个新职位
最后发表
joanquark
离线
最后看到:4年9个月前
加入:2015-06-01 08:59
DSPS广告名称更改


我试图从缓冲区中的数据中改变广告名称,这个缓冲区在启动时是init hello,我可以看到这个设备名称,
一旦启动了这个缓冲区从uart更新,这工作正常,一旦收到消息(所以我可以检查新的名称是存在缓冲区),我尝试重新启动广告,通过调用:
app_easy_gap_undirected_advertise_start ();

但是设备名称根本没有改变,我继续在DSPS app上看到“你好”,我错过了什么?

问候

设备:
joanquark
离线
最后看到:4年9个月前
加入:2015-06-01 08:59
大家好

大家好

我已经解决了这个问题,我需要停止然后开始广告,但重启必须计时,真的我不知道为什么,但1秒后它工作。

MT_dialog
离线
最后看到:1个月2天前
工作人员
加入:2015-06-08 34
嗨joanquark,

嗨joanquark,

为了改变广告数据,你必须停止广告,改变数据并再次开始广告。你说重启必须计时是什么意思?如果您的意思是需要一个计时器来触发数据更改,那么是的,内核计时器可以是触发广告数据的一种方式。如果您需要更多关于如何更改广告字符串的示例,请查看app_ble_barebone示例。

由于MT_dialog

joanquark
离线
最后看到:4年9个月前
加入:2015-06-01 08:59
嗨,首先我做了:

嗨,首先我做了:
app_easy_gap_advertise_stop ();
app_easy_gap_undirected_advertise_start ();

但是这样的广告就卡住了。
最后,它只是通过app_easy_timer延迟1秒重启

app_easy_gap_advertise_stop ();
/ / app_easy_gap_undirected_advertise_start ();
app_easy_timer(100, adv_data_update_timer_cb);// 100x10ms = 1000ms

静态孔隙adv_data_update_timer_cb ()

app_adv_data_update_timer_used = 0 xffff;

app_easy_gap_undirected_advertise_start ();

问候

MT_dialog
离线
最后看到:1个月2天前
工作人员
加入:2015-06-08 34
嗨joanquark,

嗨joanquark,

您不能只是启动和停止广告,您正在调用的函数正在将消息推入BLE堆栈。正确的方法是停止发布并获取发布的完成事件(在user_app_adv_undirect_complete()处理程序中),之后在完成处理程序中,您应该启动一个新的发布命令。

由于MT_dialog

joanquark
离线
最后看到:4年9个月前
加入:2015-06-01 08:59
我试过了,结果成功了

好吧,我试过了

无效default_app_on_adv_undirect_complete(const uint8_t status)

int状态= ke_state_get (TASK_APP);
if (state == APP_CONNECTABLE){
app_easy_gap_undirected_advertise_start ();

返回;

主题锁定