app_advertise_stop_op()返回GAP_ERR_ADV_DATA_INVALID

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
3个帖子/ 0个新帖子
最后发表
塞巴斯蒂安·埃德曼
离线
最后看到:3年7个月前
加入:2017-05-29 12:02
app_advertise_stop_op()返回GAP_ERR_ADV_DATA_INVALID

你好,

我们尝试发送两个广告,因为我们需要传输比一个广告所能容纳的更多的数据。我们用下面的方法来做。

1.由外部中断触发,收集数据。
2.当完成时,使用app_advertise_start_msg_send()发送消息;
3.在.app_on_ble_powered callback中,我们启动一个计时器30毫秒。
4.在执行计时器时,调用app_advertise_stop_op();
5.然后我们得到一个.app_on_adv_nonconn_complete回调函数,其状态为GAP_ERR_ADV_DATA_INVALID,为什么是这样,什么是无效的?

传输(上面的2号)看起来是这样的:

struct gapm_start_advertise_cmd * cmd;
cmd = app_advertise_start_msg_create ();
cmd - > op。代码= GAPM_ADV_NON_CONN;
cmd - > op。addr_src = GAPM_PUBLIC_ADDR;
cmd - > op。renew_dur = 0;
cmd - > intv_min = LLM_ADV_INTERVAL_MIN_NONCON_DISC;/ / 160
cmd - > intv_max = LLM_ADV_INTERVAL_MIN_NONCON_DISC;/ / 160
cmd - > channel_map = 1;
cmd - > info.host。模式= GAP_BROADCASTER_MODE;
cmd - > info.host。adv_filt_policy = ADV_ALLOW_SCAN_ANY_CON_ANY;

//adv_msg = 0201041b00ac00023b120000f0000000f1000010f00100f00f1f10f1f11a (in hex) //adv_msg = 0201041b00ac00023b120000f0000000f1000010f00100f00f1f10f1f11a (in hex)
memcpy (cmd - > info.host。adv_data [0], &adv_msg sizeof (adv_msg));
cmd - > info.host。adv_data_len = sizeof (adv_msg);/ / 28

app_advertise_start_msg_send (cmd);

和4。只需调用函数app_advertise_stop_op();(没有修改命令)。

什么是无效的,停止命令,还是广告命令?

问候
塞巴斯蒂安。

设备:
STS_Dialog(未验证)
嗨,塞巴斯蒂安,

嗨,塞巴斯蒂安,

抱歉耽搁了,我需要更多的信息。请告诉我:

你用于你的计划的项目是什么?

2)你如何意识到你的设备在做广告?使用下面的代码,设备将以不可连接方式发布。我不太明白你说的第二个问题是什么意思。函数app_easy_gap_advertise_stop()它在计时器的回调中,并停止了广告,请使用它。

3)您使用的SDK版本是什么?

空白user_app_adv_start(空白)

//安排下一个广告数据更新

app_adv_data_update_timer_used = app_easy_timer(APP_ADV_DATA_UPDATE_TO, adv_data_update_timer_cb);

struct gapm_start_advertise_cmd * cmd;

cmd = app_easy_gap_non_connectable_advertise_get_active ();

//动态添加特定制造商的数据

mnf_data_update ();

App_add_ad_struct (cmd, &mnf_data, sizeof(struct mnf_specific_data_ad_structure));

//在广告期间设置深度睡眠

app_easy_gap_non_connectable_advertise_start ();

开始一个非连接广告

BR,

STS_Dialog。

塞巴斯蒂安·埃德曼
离线
最后看到:3年7个月前
加入:2017-05-29 12:02
嗨STS_Dialog,

嗨STS_Dialog,

我们在这里发现了问题,问题是我们错误地解释了调试输出。调试输出由输出管脚上的若干脉冲组成。但是由于有一个0x40的偏移量,我们减去0x39以获得第一个错误消息的一个脉冲,以此类推。也许你已经看到我们的问题了。然而,这使我们的调试引脚碰撞11次,这表明GAP_ERR_ADV_DATA_INVALID,但它实际上是一个GAP_ERR_CANCELED。所以没有错误。

问候
塞巴斯蒂安。