跳到主要内容

scanner_address_type.

1个月前

scanner_address_type.

张贴了Aprocha46.85分 4回复
0旋转

各位,

有没有api可以得到这个scanner_address_type.来自Le Scan请求已收到事件如蓝牙规范中所述?

此致,

1个月前

PM_DIALOG.

嗨aprocha46,

谢谢你的问题在线。请结账DA14585 DA14586 DA14531扫描请求轨道SW示例。此示例演示了外围设备如何扫描外围设备可以跟踪,并且哪个中央设备执行扫描过程。中央设备需要在活动模式下扫描,因为外围设备将跟踪是否通过来自Central的扫描请求扫描它。

谢谢,PM_DIALOG.

1个月前

Aprocha46. 85分

这不是我的问题,你的榜样没有帮助。

我们已经使用了这个回调,但我们想知道扫描设备使用的地址类型。更准确地区分公共地址和随机地址。

在蓝牙协议中,我的问题中提到了一个字段来获取此信息:您是否有任何匹配的API以了解其值?

布尔

接受答案!

1个月前

PM_DIALOG.

嗨aprocha46,

为延迟表示歉意 - 请在下面找到我的评论,以便检查BD地址的类型是否是公共或静态的。

您在初始帖子中共享的事件参数(Scanner_Address_type)是在HCI模式下配置设备时,将获得HCI_LE_SCAN_REQUEST_RECERED事件。

根据BLE V5.1规范和第3.6.5节标识地址信息:

- 如果BD_ADDR是一个公共设备地址,则Addrtype应设置为0x00。

- 如果bd_addr是静态随机设备地址,则addrtype应设置为0x01。

A] DA14531用作间隙外围

在这种情况下,我们建议使用DA14585 DA14586 DA14531扫描请求轨道SW示例(如我以前的回复中的建议),具有一些修改(见下文),因为它演示了外围设备如何扫描外围设备可以跟踪,并且哪个中央设备执行扫描过程。应用程序代码在我们的网站上仅打印出user_scan_request_cb()回调函数中的中心的BD地址。

要检查中央BD地址是否是公共或静态的,应完成以下修改:

1.在user_config中包含llm_util.h.h如下:

#include“llm_util.h”

2.在User_config.h中修改scan_req_data_msg结构,如下所示:

struct scan_req_data_msg {uint8_t scn_bd_address [6];uint8_t scn_req_addr_type;};

3.修改user_config.h中的dlg_event_handler_enter()如下所示:

... struct scan_req_data_msg * ind = ke_msg_alloc(scan_req_data_msg,task_app,task_app,scan_req_data_msg);IND-> scn_req_addr_type = llm_util_rxtxadd_getf(rxdesc);memcpy(ind-> scn_bd_address,(uint8_t *)(_ ble_base +(uint8_t *)rxdesc-> rxdataptr),6);ke_msg_send(ind);......

每次外设获取扫描请求时都会触发此回调。

4.在Scan_Request_track.c中修改user_scan_request_cb()如下面打印出BD地址类型。

ARCH_PRINTF(“扫描请求:”);ARCH_PRINTF(“%02x:%02x:%02x:%02x:%02x:%02x”,param-> scn_bd_address [4],param-> scn_bd_address [3],param-> scn_bd_address[2],param-> scn_bd_address [1],param-> scn_bd_address [0]);ARCH_PRINTF(“类型:”);ARCH_PRINTF(“%02x \ n \ r”,param-> scn_req_addr_type);

笔记:中央设备需要扫描活动模式由于外围设备将跟踪通过从中央的扫描请求扫描它

我通过使用了这一点DA14585 / DA14586 / DA14531中央实施配置两(2)作为间隙中心。

- Central_1正在使用公共BD地址,因此User_CFG_ADDRESS_MODE设置为APP_CFG_ADDR_PUB(串行终端中的类型:00)

- Central_2使用了静态BD地址,因此User_CFG_Address_Mode设置为App_cfg_addr_static(串行终端中的类型:01)

B] DA14531充当间隙中央

在这种情况下请查看SmartBond™ - 在命令中无附带和user_on_adv_report_ind()回调函数。可以从此下载源代码:DA14585-DA14531无附带条件

param-> eport.addr_type检查BD地址是否是公共或静态的。另请参见“用户指南”/第3.4.1节。广告/扫描

http://lpccs-docs.dialog-semicondiond.com/um-140-da145x-codeless/demo.html#examples-Remote-board.bod.

DA14531应配置为间隙中央,并根据注意事项:“R表示随机地址。*”

谢谢,PM_DIALOG.

1个月前

Aprocha46. 85分

非常感谢您的支持:这正是我需要的

快乐的时光 !