验证扫描仪的身份

⚠️
您好,谢谢您来到论坛。令人兴奋的消息!我们正在迁移到新的论坛平台,该平台将提供更好的功能,并包含在主对话网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量-请在//www.xmece.com/support.我们将在未来几天内修复bug/优化搜索和标记。
9个员额/ 0个新员额
最后一篇文章
哈米德霍塞尼
离线
最后看到:10个月3周前
加入:2020-05-12上午
验证扫描仪的身份

你好,

是否有方法检测以前配对的设备?

我用的是扫描请求跟踪器示例和ble_app_security我就能打印出发出扫描请求的设备的地址。然而,我想检查这个地址,并知道何时一个设备已经配对和断开,发送扫描请求。

是否有方法验证设备之前是否已与配对?

问候,

哈米德

设备:
PM_Dialog
离线
最后看到:6天6小时前
工作人员
加入:2018-02-08 11:03
哈米德你好,

哈米德你好,

请检查SDK的ble_app_安全示例。该示例使用SPI闪存或EEPROM存储绑定数据。设备配对后,所有配对/绑定信息都存储在非易失性内存中,因此您可以在其中检查设备之前是否已配对。

谢谢,PM_Dialog

哈米德霍塞尼
离线
最后看到:10个月3周前
加入:2020-05-12上午
是的,我看到了

是的,我可以看到示例中存储了之前配对设备的数据。但是,我的问题是,如果我们只有扫描仪的地址,如何在扫描请求中检查这些数据?

PM_Dialog
离线
最后看到:6天6小时前
工作人员
加入:2018-02-08 11:03
哈米德你好,

哈米德你好,

一旦您获得对等设备的BD地址,您应该检查存储在非易失性存储器中的配对信息。您能告诉我您的要求吗?您需要阻止未配对设备的扫描吗?

谢谢,PM_Dialog

哈米德霍塞尼
离线
最后看到:10个月3周前
加入:2020-05-12上午
你好,

你好,

为了提高服务质量,我们希望在配对用户发送扫描请求后触发一个事件。换句话说,我们不希望阻止来自其他设备的扫描,我们只需要在配对设备发送扫描请求后收到通知。
下面的代码就是我用于此目的的代码,但我不确定这是否是正确的方法。(特别是对于遗留配对)

bool user_check_bonding(struct bd_addr peer_addr,uint8_t addr_type){const struct app_sec_bond_data_env标签*pbd=NULL;uint8_t bdaddr_type;//检查对等方的bd地址是公共的还是随机静态的bdaddr_type=app_get_地址类型(addr_type,peer_addr);if((bdaddr_type==app_public_addr_addr类型==app|公共地址类型)(bdr|静态随机添加)| |(bdaddr|u type==APP_ID_ADDR_type)){if(bdaddr_type==APP_ID_ADDR_type){//Search DB by peer的BD address pbd=APP_easy_security_bdb_Search_entry(Search_by_ID_type,(void*)peer_ADDR.ADDR,BD ADDR,BD ADDR_LEN)}否则{//Search DB by peer的BD Search by peer地址pbd=APP easy_security_Search_Search(Search)peer_addr.addr,BD_addr_LEN);}//如果在DB If(pbd){//将设备绑定数据存储到安全环境//接受加密返回true;}//如果在DB else中未找到peer{//拒绝加密,断开连接返回false;}//检查peer的BD地址是否为可解析的私有地址else If(bdaddr_type==APP_RANDOM_PRIVATE_RESOLV_ADDR_type){//如果(!user_APP_easy_security_resolve_bdaddr(peer_ADDR)){返回false;}返回true;}//检查对等方的BD地址是否是不可解析的私有地址,否则{//拒绝加密,断开连接返回false;}

您是否认为这将涵盖所有配对的情况(我们可能必须更改配对方法和安全级别,因此我希望这个函数更通用)?

问候,

哈米德

哈米德霍塞尼
离线
最后看到:10个月3周前
加入:2020-05-12上午
好的,现在我可以搜索了

好的,现在我可以搜索设备了,但我有一个新问题。我如何识别扫描仪的地址类型?

PM_Dialog
离线
最后看到:6天6小时前
工作人员
加入:2018-02-08 11:03
哈米德你好,

哈米德你好,

您的意思是如何获取对端设备的BD地址?请参阅app_get_address_type() API,因为它返回BD地址的类型。

谢谢,PM_Dialog

哈米德霍塞尼
离线
最后看到:10个月3周前
加入:2020-05-12上午
是的,我想知道

是的,我想知道扫描仪的地址类型。正如我们前面讨论的,我们可以在扫描请求跟踪中获得扫描仪的地址。但是,我应该如何确定地址类型。

实际上,我已经尝试过使用这个API,但是我一直使用app_get_address_type()的输入参数,因为我应该向这个函数传递一个地址类型。

这类(UIT8)是一个地址类型,结构的bd是一个地址地址地址。这类(UIT8)是一个地址类型,结构的bd是一个地址地址。这类){{typedededededededede类型(app)是一个类型(app)是一个地址类型(app)是一个地址类型,类型类型(这类(UIT8)是一个地址地址地址地址是地址是地址是地址是地址是地址是地址是地址是地址是地址是地址的类型,地址是地址是地址是地址是地址是地址是地址是地址的类型,地址是地址是地址是地址的类型,地址是地址是地址是地址是地址的类型,地址是地址的类型,地址是地址是地址是地址的类型,地址是地址是地址的类型,地址是地址是地址的类型,地址是地址是地址是地址是地址的类型,地址是地址是地址的类型,地址是地址是地址是地址是地址的类型的类型。类型(类型)类型((app_get_address_type_ROM);返回f(addr_type,addr);}

当我想知道地址时,我应该为这个地址类型写什么?

PM_Dialog
离线
最后看到:6天6小时前
工作人员
加入:2018-02-08 11:03
哈米德你好,

哈米德你好,

很抱歉延迟。中央使用哪种BD地址?这取决于中央BD地址。

谢谢,PM_Dialog