app_advertise_stop_op()返回gap_err_adv_data_invalid

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
3个帖子/ 0新
最后一篇
塞巴斯蒂安埃德曼
离线
最后一次露面:3年6个月前
加入: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回调中,我们开始计时器30ms。
4.执行定时器时,我们调用app_advertise_stop_op();
5.然后我们得到.app_on_adv_nonconn_complete回调与status gap_err_add_data_invalid,为什么是无效的?

发送(上面的第2号)看起来像这样:

struct gapm_start_advertise_cmd * cmd;
cmd = app_advertise_start_msg_create();
cmd-> op.code = 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.mode = gap_broadcaster_mode;
cmd-> info.host.adv_filt_policy = adv_allow_scan_any_con_any;

// ADV_MSG = 0201041B00AC00023B120000F0000000F1000010F00100F00F1F10F1F1F11A(在十六进制中)
memcpy(&cmd-> info.host.adv_data [0],&avd_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();(命令没有修改)。

什么是无效的,stop命令或广告命令?

问候
塞巴斯蒂安

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

嗨塞巴斯蒂安,

对不起,我需要更多信息。请告诉我 :

1)您为计划使用的项目是什么。

2)您如何意识到您的设备广告?使用以下代码设备在不可连接的模式下广告。我真的没有抓住你的意思是问题2.函数app_easy_gap_advertise_stop()它在定时器的回调中并停止广告,请使用它。

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

void user_app_adv_start(void)

{

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

app_add_data_update_timer_used = app_easy_timer(app_add_data_update_to,avd_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();

}

启动非可连接广告

布罗尔,

sts_dialog。

塞巴斯蒂安埃德曼
离线
最后一次露面:3年6个月前
加入:2017-05-29 12:02
嗨sts_dialog,

嗨sts_dialog,

我们发现了这个问题,问题是我们解释了调试输出错误。调试输出由输出引脚上的许多脉冲组成。但由于0x40的偏移量,我们减去了0x39,以便获得第一个错误消息的一个脉冲等。也许你已经看到了我们的问题。但是,这使我们的调试引脚Bump 11次指示GAP_ERR_ADV_DATA_INVALID,但实际上是GAP_ERR_CANCELED。所以没有错误。

问候
塞巴斯蒂安