可发现数据包传输

5个帖子/ 0新
最后一篇
Wisilica.
离线
最后一次露面:2个月前1年
加入:2015年3月17日08:16
可发现数据包传输

嗨对话框,

我想修改ble_barebone项目发送非_connectable包。对于这一点,我打电话从user_app_adv_start以下功能:

void user_app_adv_start(void)
{

// CMD = app_easy_gap_undirected_advertise_get_active();
CMD = app_easy_gap_non_connectable_advertise_get_active();

// app_easy_gap_undirected_advertise_start();
app_easy_gap_non_connectable_advertise_start();

}

我还限定user_callback_config.h app_on_adv_nonconn_complete的回调函数:

.app_on_adv_nonconn_complete = user_app_nonconn_complete,

功能定义如下:
无效user_app_nonconn_complete(uint8_t状态)
{
//如果广告被取消,则更新广告数据并再次启动广告
if(status == gap_err_canceled)
{
user_app_adv_start();
}
}

下面的问题正在面临着这样的场景:

1)代替非连接分组,器件发送ADV_DISCOVER_IND分组。
2)当API,CMD = app_easy_gap_non_connectable_advertise_get_active()被注释,设备被发送ADV_NON_CONN_IND报文,但执行停止和几秒钟之后的器件崩溃。

请提供相同的解决方案。
提前致谢,

Wisilica

设备:
mt_dialog.
离线
最后一次露面:6个月2周前
职员
加入:2015-06-08 11:34
嗨wisilica,

嗨wisilica,

1)我已经复制的代码,我不能够看到ADV_DISCOVER_IND包,嗅探器,你都在提,也我不知道什么样的数据包,因为我不能够在规范这种跟踪包。在我的设置,我可以在任何时候都看到该设备作为ADV_NONCONN_IND的数据包。能否请您尽量在干净的项目的修改。或仄_get_active()函数,如果你不小心在功能改变任何配置。

2)的事实,当你删除_get_active和设备档,是因为代码在app_add_struct(失败memcpy函数),因为你正在试图在堆栈修改指针,显然您正在破坏叠层(该_get_active()如果你不调用该函数已经声明为指针分配内存空间,改变随机地址的数据指针指向)。试着效仿,并使用_get_active()函数。

谢谢mt_dialog.

Wisilica.
离线
最后一次露面:2个月前1年
加入:2015年3月17日08:16
嗨对话小组,

嗨对话小组,

Thanku的答复。我们仍然得到这个问题。BLE规范已更名为ADV_DISCOVER_IND包作为ADV_SCAN_IND(可扫描的非定向广告)。它是在2.3.15节规定。

Wisilica.
离线
最后一次露面:2个月前1年
加入:2015年3月17日08:16
大家好,

大家好,
我也改变了USER_ADVERTISE_DATA在user_config.h如下:
的#define USER_ADVERTISE_DATA(“\ X1B \ XFF \ X00 \ X00 \ X01 \ X01 \ X00 \ X01 \ X85 \ X00 \ X08 \ X00 \ X00 \ X00 \ X00 \ X00 \ XFB \ X1A \ X84 \ X07 \ xA5 \ xB9 \X00 \ X00 \ X00 \ X00 \ X00 \ X0A“)

mt_dialog.
离线
最后一次露面:6个月2周前
职员
加入:2015-06-08 11:34
嗨wisilica,

嗨wisilica,

你USER_ADVERTISE_DATA太长(28个字节,包括您达到广告串限31个字节的强制性标志),并与准系统项目的额外数据,额外的计数器信息,数据的设备发送太长以适合广告字符串,因此附加数据在进入扫描响应数据。如此以来,你是不可连接的有扫描响应数据,该SDK将使用PDU在为了响应扫描请求,但它不会在连接请求做出响应。

谢谢mt_dialog.