你好,
当连接到我们绑定的设备时,设备的实际地址会自动解析(使用LTK)。
目前,当我用一个特定地址(解析前的地址)连接到一个设备时,我会得到一个包含另一个地址(解析后的地址)的已连接事件。这意味着我无法将事件的地址与我尝试连接的地址进行比较。
关联事件是否可能同时保留已解析的地址和解析前的地址?这样我们就可以使用连接的事件来识别设备,并且仍然知道设备的实际解析地址是什么。
顺致敬意,安迪
嗨,阿普杜雷特,
让我检查是否有可能为连接的事件保留已解决的地址和解决前的地址,我会让你尽快知道。只是澄清一下,DA14680是作为外围设备还是作为中央设备?
谢谢,下午好
谢谢你的回答。
在我的例子中,DA14681充当中央设备:1) 我扫描附近的设备2) 我连接到一个特定的设备(我已经绑定了)3) 我得到了相关的事件
谢谢你的消息。我们正在处理你的问题,我们会尽快回复你。
当一个随机地址被解析时,你会得到一个BLE泷EVT泷GAP泷address泷resolved泷和所有关于BD地址的可用信息,在BLE泷EVT泷GAP泷address泷resolved泷上保持解析。请查看ble\u gap.h头文件。所以,你要做的是处理BLE\u EVT\u GAP\u ADDRESS\u在应用程序级别解析。例如,在sdk的pxp_reporter示例中,我建议检查pxp_reporter_task()函数,以及应用程序将如何尝试使用BLE服务框架处理每个事件。因此,您应该添加以下代码段:
解决了以下情况:
handle\u evt\u gap\u address\u resolution((ble\u evt\u gap\u address\u resoluted\u t*)hdr);
中断;
因此,通过这种方式,您将拥有自己的函数,当您获得一个BLE\u EVT\u GAP\u ADDRESS\u RESOLVED事件时,该函数将被调用。每次触发handle\u evt\u gap\u address\u resolution()时,您都应该读取ble\u evt\u gap\u address\u resolved\t结构的已解析\u地址和地址项。
你好,PM\U对话,谢谢你的回答。
我用过你的例子,但是根据我的经验,调用ble\u gap\u connect()不会生成ble\u EVT\u gap\u ADDRESS\u RESOLVED事件。我得到BLE\u EVT\u GAP\u CONNECTED事件,但没有得到BLE\u EVT\u GAP\u ADDRESS\u解析的事件。在我看来,这个事件只有在调用ble\u gap\u address\u resolve()之后才会生成。
我弄错了吗?安迪
你说得对。当触发ble\u gap\u connect()时,您将获得ble\u EVT\u gap\u CONNECTED;当调用ble\u gap\u address\u resolve()时,您将获得ble\u EVT\u gap\u address\u resolve。
你好,PM\U对话,
我希望在连接到设备时同时获得解析地址和解析前的地址。
因为我正在连接到设备,所以我没有得到BLE\u EVT\u GAP\u ADDRESS\u RESOLVED事件,即使连接时地址会自动解析。
安迪
抱歉耽搁了。你的意思是当BD地址被解析时你不能解析BLE\ EVT\ GAP\地址吗?请确保在连接之前触发了handle\u evt\u gap\u address\u解析,好吗?
嗨,阿普杜雷特,
让我检查是否有可能为连接的事件保留已解决的地址和解决前的地址,我会让你尽快知道。只是澄清一下,DA14680是作为外围设备还是作为中央设备?
谢谢,下午好
谢谢你的回答。
在我的例子中,DA14681充当中央设备:
1) 我扫描附近的设备
2) 我连接到一个特定的设备(我已经绑定了)
3) 我得到了相关的事件
顺致敬意,
安迪
嗨,阿普杜雷特,
谢谢你的消息。我们正在处理你的问题,我们会尽快回复你。
谢谢,下午好
嗨,阿普杜雷特,
当一个随机地址被解析时,你会得到一个BLE泷EVT泷GAP泷address泷resolved泷和所有关于BD地址的可用信息,在BLE泷EVT泷GAP泷address泷resolved泷上保持解析。请查看ble\u gap.h头文件。所以,你要做的是处理BLE\u EVT\u GAP\u ADDRESS\u在应用程序级别解析。例如,在sdk的pxp_reporter示例中,我建议检查pxp_reporter_task()函数,以及应用程序将如何尝试使用BLE服务框架处理每个事件。因此,您应该添加以下代码段:
解决了以下情况:
handle\u evt\u gap\u address\u resolution((ble\u evt\u gap\u address\u resoluted\u t*)hdr);
中断;
因此,通过这种方式,您将拥有自己的函数,当您获得一个BLE\u EVT\u GAP\u ADDRESS\u RESOLVED事件时,该函数将被调用。每次触发handle\u evt\u gap\u address\u resolution()时,您都应该读取ble\u evt\u gap\u address\u resolved\t结构的已解析\u地址和地址项。
谢谢,下午好
你好,PM\U对话,
谢谢你的回答。
我用过你的例子,但是根据我的经验,调用ble\u gap\u connect()不会生成ble\u EVT\u gap\u ADDRESS\u RESOLVED事件。
我得到BLE\u EVT\u GAP\u CONNECTED事件,但没有得到BLE\u EVT\u GAP\u ADDRESS\u解析的事件。
在我看来,这个事件只有在调用ble\u gap\u address\u resolve()之后才会生成。
我弄错了吗?
安迪
嗨,阿普杜雷特,
你说得对。当触发ble\u gap\u connect()时,您将获得ble\u EVT\u gap\u CONNECTED;当调用ble\u gap\u address\u resolve()时,您将获得ble\u EVT\u gap\u address\u resolve。
谢谢,下午好
你好,PM\U对话,
我希望在连接到设备时同时获得解析地址和解析前的地址。
因为我正在连接到设备,所以我没有得到BLE\u EVT\u GAP\u ADDRESS\u RESOLVED事件,即使连接时地址会自动解析。
安迪
嗨,阿普杜雷特,
抱歉耽搁了。你的意思是当BD地址被解析时你不能解析BLE\ EVT\ GAP\地址吗?请确保在连接之前触发了handle\u evt\u gap\u address\u解析,好吗?
谢谢,下午好