BLE_EVT_GAP_CONNECTED事件中解析前的设备地址

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
9个帖子/ 0个新
最后发表
apoudret
离线
最后看到:1年7个月前
加入:2017-09-22 08:33
BLE_EVT_GAP_CONNECTED事件中解析前的设备地址

你好,

当连接到我们绑定的设备时,设备的实际地址将自动解析(使用LTK)。

目前,当我连接到一个特定地址的设备(解析前的地址),我得到一个连接事件,它持有一个其他地址(解析后的地址)。
这意味着我不能将事件的地址与我试图连接的地址进行比较。

连接的事件是否可能同时保存已解析的地址和解析前的地址?这样我们就可以使用连接的事件来识别设备,并且仍然知道设备的实际解析地址是什么。

最好的问候,
安迪

设备:
PM_Dialog
离线
最后看到:4天7小时前
工作人员
加入:2018-02-08 11:03
嗨apoudret,

嗨apoudret,

让我检查一下连接的事件是否可以同时保留已解决的地址和解决前的地址,我会尽快让你知道。说明一下,DA14680是作为外围设备还是作为中心设备?

谢谢,PM_Dialog

apoudret
离线
最后看到:1年7个月前
加入:2017-09-22 08:33
谢谢你的回答。

谢谢你的回答。

在我的例子中,DA14681充当了一个中心设备:
我扫描附近的设备
2)我连接到一个特定的设备(我已经绑定)
3)我得到关联事件

最好的问候,
安迪

PM_Dialog
离线
最后看到:4天7小时前
工作人员
加入:2018-02-08 11:03
嗨apoudret,

嗨apoudret,

谢谢你提供的信息。我们正在处理你的问题,我们会尽快回复你。

谢谢,PM_Dialog

PM_Dialog
离线
最后看到:4天7小时前
工作人员
加入:2018-02-08 11:03
嗨apoudret,

嗨apoudret,

当一个随机地址被解析时,你会得到一个BLE_EVT_GAP_ADDRESS_RESOLVED和真主安拉,在ble_evt_gap_address_resolved_t上保留解析之前和之后的BD地址的可用信息。请查看ble_gap.h头文件。因此,您必须在应用程序级别处理BLE_EVT_GAP_ADDRESS_RESOLVED。例如,在sdk的pxp_reporter示例中,我建议检查pxp_reporter_task()函数,以及应用程序将如何尝试使用BLE服务框架处理每个事件。因此,在这种情况下,您应该添加以下代码片段:

案例BLE_EVT_GAP_ADDRESS_RESOLVED:

Handle_evt_gap_address_resolution ((ble_evt_gap_address_resolved_t *) hdr);

打破;

因此,通过这种方式,你将拥有自己的函数,当你得到一个BLE_EVT_GAP_ADDRESS_RESOLVED事件时,它将被调用。每当handle_evt_gap_address_resolution()被触发时,您应该读取ble_evt_gap_address_resolved_t结构的resolved_address和地址项。

谢谢,PM_Dialog

apoudret
离线
最后看到:1年7个月前
加入:2017-09-22 08:33
你好PM_Dialog,

你好PM_Dialog,
谢谢你的回答。

我已经使用了您的示例,但是根据我的经验,调用ble_gap_connect()不会生成BLE_EVT_GAP_ADDRESS_RESOLVED事件。
我得到BLE_EVT_GAP_CONNECTED事件,但不是BLE_EVT_GAP_ADDRESS_RESOLVED一个。
在我看来,这个事件只有在调用ble_gap_address_resolve()之后才会生成。

我错了吗?
安迪

PM_Dialog
离线
最后看到:4天7小时前
工作人员
加入:2018-02-08 11:03
嗨apoudret,

嗨apoudret,

你是正确的。当ble_gap_connect()被触发时,你会得到一个BLE_EVT_GAP_CONNECTED,当ble_gap_address_resolve()被调用时,你会得到BLE_EVT_GAP_ADDRESS_RESOLVED。

谢谢,PM_Dialog

apoudret
离线
最后看到:1年7个月前
加入:2017-09-22 08:33
你好PM_Dialog,

你好PM_Dialog,

我想要的是,当我连接到一个设备时,得到解析的地址和解析前的地址。

因为我正在连接到设备,所以我没有得到BLE_EVT_GAP_ADDRESS_RESOLVED事件,即使该地址在连接时被自动解析。

安迪

PM_Dialog
离线
最后看到:4天7小时前
工作人员
加入:2018-02-08 11:03
嗨apoudret,

嗨apoudret,

很抱歉耽搁了。您的意思是当BD地址被解析时,您无法获得BLE_EVT_GAP_ADDRESS_RESOLVED ?请确保handle_evt_gap_address_resolution在连接之前被触发?

谢谢,PM_Dialog