嗨,对话框的团队,
我使用的是SPS示例(DA1458x_DSPS_v_5.150.2)。
在sps主机示例中,我想列出可用的设备及其名称和BD地址。
它正确地列出了BD地址,但没有列出它的名称(给出了一些垃圾值)。即它提供USER_ADVERTISE_DATA“\x11\x07\xb7\x5c\x49\xd2\x04\xa3\x40\x71\xa0\xb5\x35\x85\x3e\xb0\x83\x07”。
为了得到以上我已经使用了广告报告结构
我已经使用uint8_t data[ADV_DATA_LEN];获得名称的上述结构的成员,因为Windows版本的接近监视器应用程序只使用它来获得名称。
/ / /广告报告结构
struct adv_report
{
/ / /事件类型:
/// - ADV_CONN_UNDIR:可连接的无向广告
/// - ADV_CONN_DIR:可连接定向广告
/// - ADV_DISC_UNDIR:可发现的无定向广告
/// - ADV_NONCONN_UNDIR:不可连接的无向广告
uint8_t evt_type;
///发布地址类型:public/random
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;
};
这是对还是错?或者请让我知道正确的结构读取设备名称。
我附上了一张图片供参考。
设备:
嗨RatheeshT,
设备的名称默认情况下不在广告字符串中,我的意思是设备的名称可能是公共的也可能不是,你在终端上得到的是代表UUID值的字符,您跟踪的设备不会在广告字符串中公开名称,而是在扫描响应数据中(只要您执行被动扫描,也可以在相同的回调app_on_adv_undirect_complete中捕获),也意识到设备的名称字符串或广告的广告数据标记“0 x09完整的本地名称”,通过规范为了找到如果一个名称位于广告字符串必须跟踪如果有0 x09标签在适当的字节顺序。
由于MT_dialog
嗨,对话框中,
当设备名称大小为8或以下时,我可以在UART中通过下面的步骤列出设备的名称和它的地址,一旦设备的名称增加到8以上,它在UART中显示地址,但不是设备名称。
如果我增加了设备名长度,我可以在我的Android手机中看到该设备名,但不能在DA14580设备上,这是作为主机- ble。
你能给我一些建议吗?
嗨RatheeshT,
我不确定我得到这个问题,这与实现,你还要在打印设备的名称,如果设备的名称位于广告的字符串,你已经实现了UART打印8个字符,然后UART只会打印8个字符。
由于MT_dialog
我也试图获得BLE设备名我的外设使用上面的例子,但无法。
作为一个中心,我正在扫描BLE外围设备。
我得到了周边的扫描响应。App_on_adv_report_ind回调事件处理程序。
通过将广告UUID匹配到已知的外设,我可以从这个回调成功地连接到外设。
但是,我想知道如何知道外围设备的名称。这将是0x09扫描响应(GAP_AD_TYPE_COMPLETE_NAME)。
suggeststions吗?
我的user_config.h是附加的。
谢谢