正在传输可发现的数据包

5个员额/0个新员额
最后一篇文章
威斯利卡
离线
最后一次见到:1年2个月前
加入:2015-03-17 08:16
正在传输可发现的数据包

嗨,对话,

我正在尝试修改ble_barebone项目以发送不可连接的数据包。为此,我从user_app_adv_start调用以下函数:

无效用户\应用\高级\启动(无效)
{

//cmd=app_easy_gap_undirected_adverting_get_active();
cmd=app_easy_gap_non_connectable_advertive_get_active();

//app_easy_gap_undirected_advertized_start();
app_easy_gap_non_connectable_Advertised_start();

}

我还在user_callback_config.h中定义app_on_adv_noncn_complete的回调函数:

.app_on_adv_nonn_complete=用户_app_nonn_complete,

该函数定义如下:
无效用户应用程序未完成(uint8状态)
{
//如果广告被取消,则更新广告数据并再次开始广告
如果(状态==间隙错误已取消)
{
用户_应用_adv_start();
}
}

在这种情况下,将面临以下问题:

1) 设备正在传输ADV_DISCOVER_IND数据包,而不是不可连接的数据包。
2) 当api cmd=app\u easy\u gap\u non\u connectable\u advertive\u get\u active()被注释时,设备正在传输ADV\u non\u CONN\u IND数据包,但执行停止,几秒钟后设备崩溃。

请提供同样的解决方案。
提前感谢,,

威斯利卡

设备:
MT_对话框
离线
最后一次见到:6个月3周前
工作人员
加入:2015-06-08 11:34
嗨,维西莉卡,

嗨,维西莉卡,

1) 我已经复制了代码,但我无法在嗅探器上看到您提到的ADV_DISCOVER_IND数据包,我也不知道这些数据包是什么,因为我无法在规范中跟踪此类数据包。在我的设置中,我可以始终将设备的数据包视为ADV_nonn___。你能在一个干净的项目上尝试修改吗。或者,如果意外更改了_get_active()函数中的任何配置,请选中该函数。

2) 事实上,当您删除“启动”并且设备停止运行时,这是因为代码使app_add_struct()中的memcpy函数失败,因为您试图修改堆栈中的指针,并且显然损坏了堆栈(如果不调用函数,_get_active()会为您声明的指针分配内存空间,更改指针指向的随机地址中的数据)。尝试按照示例使用_get_active()函数。

谢谢你的对话

威斯利卡
离线
最后一次见到:1年2个月前
加入:2015-03-17 08:16
嗨,对话小组,

嗨,对话小组,

谢谢你的答复。我们仍在处理这个问题。BLE规范已将ADV_DISCOVER_IND数据包重命名为ADV_SCAN_IND(可扫描的无向广告)。第2.3.14节对此进行了规定。

威斯利卡
离线
最后一次见到:1年2个月前
加入:2015-03-17 08:16
嗨,团队,

嗨,团队,
我还修改了USER_config.h中的USER_advision_数据,如下所示:
#定义用户数据(“\x1B\xFF\x00\x00\x01\x00\x01\x00\x01\x85\x00\x08\x00\x00\x00\x00\x00\x00\xFB\x1A\x84\x07\xA5\xB9\x00\x00\x00\x0A”)

MT_对话框
离线
最后一次见到:6个月3周前
工作人员
加入:2015-06-08 11:34
嗨,维西莉卡,

嗨,维西莉卡,

您的用户广告数据太长(28字节,包括您达到广告字符串31字节限制的强制标志),并且由于barebone项目的额外数据、额外计数器信息,设备发送的数据太长,无法适应广告字符串,因此,附加数据正在输入扫描响应数据。因此,由于无法连接扫描响应数据,SDK使用该PDU来响应扫描请求,但不会在连接请求中响应。

谢谢你的对话