如何获取设备 - BLE名称

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
5个帖子/ 0新
最后一篇
Ratheesht.
离线
最后一次露面:2年2天前
加入:2017-01-02 11:08
如何获取设备 - BLE名称

嗨对话小组,
我正在使用SPS示例(da1458x_dsps_v_5.150.2)。
在SPS主机示例中,我想列出具有其名称和BD地址的可用BLE设备。
它正确地列出了BD地址,但不是它的名称(给出一些垃圾值)。即,它提供USER_ADVERTISE_DATA “\ X11 \ X07 \ XB7 \ x5c \ X49 \ XD2 \ X04 \ XA3 \ X40 \ X71 \ XA0 \ XB5 \ X35 \ X85 \ x3e \ XB0 \ X83 \ X07”。

要获得上面,我使用了广告报告结构
我使用了UINT8_T数据[ADV_DATA_LEN];用于获取名称的上述结构的成员,因为可以使用适用于Windows版本的邻近监视器应用程序仅使用它仅用于获取名称。
///广告报告结构
struct avd_report.
{
///事件类型:
/// - adv_conn_undir:可连接的无向广告
/// - adv_conn_dir:可连接的指示广告
/// - adv_disc_undir:可发现的无向广告
/// - adv_nonconn_undir:不可连接的无向广告
uint8_t evt_type;
///广告地址类型:公共/随机
UINT8_T ADV_ADDR_TYPE;
///广告地址值
struct bd_addr adv_addr;
///广告数据包中的数据长度
uint8_t data_len;
///广告数据包的数据
UINT8_T数据[ADV_DATA_LEN];
/// rssi用于广告数据包的值
uint8_t rssi;

// Unit8_t BDADRSS;
};

是否正确或不正确?或者请让我知道正确的结构来阅读设备BLE名称..
我已经附加了一个图片以供参考。

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

嗨Ratheesht,

默认情况下,设备的名称不在广告字符串中找到,我的意思是设备可能或可能不会在广告字符串中公开名称,您在终端上获取的是表示UUID值的字符,该设备您跟踪的您跟踪不会在广告字符串中公开名称,但在扫描响应数据中(只要执行被动扫描,也可以在同一回调App_Ond_Undirect_Complete中捕获),也请注意设备中的名称广告字符串或广告数据被标记为“0x09完成本地名称”,所以通过规范,以查找名称是否位于广告字符串中,您将不得不跟踪适当的字节顺序中有0x09标记。

谢谢mt_dialog.

Ratheesht.
离线
最后一次露面:2年2天前
加入:2017-01-02 11:08
嗨对话框,

嗨对话框,
当设备名称大小为8及更低时,我可以在UART中列出UART中的设备名称及其地址,一旦设备的名称增加了超过8,它就会在UART中显示地址,但不是设备名称。
如果我增加了设备名称长度。,我可以在我的Android手机中看到该设备名称,但不是在DA14580设备上充当Host-Ble。

你能为我提供你的建议吗?

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

嗨Ratheesht,

我不确定我得到了这个问题,这与你在打印设备的名字中的实现,如果设备的名字位于广告字符串中,你已经实现了UART打印8个字符,然后UART将仅打印8个字符。

谢谢mt_dialog.

ojazdowski.
离线
最后一次露面:1年11个月前
加入:2019-04-24 08:27
我也试图得到这个

我也试图使用上面的示例来获取我的外设的BLE设备名称,但无法使用。

作为一个中央,我正在扫描BLE外围设备。

我正在“.app_on_adv_report_ind”回调事件处理程序中的外围设备扫描响应。

通过将广告UUID与我已知的外围设备匹配,我可以从此回调中成功连接到我的外围设备。

但是,我想知道我是如何获得外围名称的。这将是0x09扫描响应(GAP_AD_TYPE_COMPLETE_NAME)。

任何建议吗?

我的user_config.h附上。

谢谢