只允许配对请求与PIN码

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
16个员额/ 0个新员额
最后发表
apoudret
离线
最后看到:1年7个月前
加入:2017-09-22 08:33
只允许配对请求与PIN码

你好,

我有一个关于SDK中的结对的问题。
我们板上的软件正在等待配对请求。
一个智能手机应用程序连接到板子并开始配对请求。
对话板的IO能力被配置为“仅显示”。

因此,目前手机可以使用板子上显示的PIN码进行配对请求,而且工作正常。
但问题是,手机也可以在没有PIN码的情况下进行配对请求,而且它也能工作。
是否可以只接受PIN码配对请求而拒绝其他配对请求?

谢谢,
安迪

设备:
MT_dialog
离线
最后看到:3个月4个星期前
工作人员
加入:2015-06-08 34
嗨apoudret,

嗨apoudret,

你说手机不用pin码也能连接是什么意思?例如,如果设备问你要一个pin,而你只是从电话方面忽略它,设备仍然保持连接,直到你发出断开连接?或者设备会在几秒钟后断开?设备将接受连接,如果implemenation需要安全的安全请求连接时,会发生如果链接的安全需求不匹配,设备的需求,它就会断开,你可以作为一个例子的bms项目SDK,它需要通过关键,如果设备在30秒内没有收到配对响应,它就会断开连接。

由于MT_dialog

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

你好,

我的BLE服务中的特征是使用权限ATT_PERM_WRITE_ENCRYPT而不是ATT_PERM_WRITE_AUTH创建的。因此,一些设备不需要输入PIN码就可以配对(“正常”配对)。

然而,我还有另一个问题。有时我希望用户能够在没有配对的情况下编写这个特性,有时我希望他只有在配对的情况下才能这样做。
我尝试使用ble_gatts_set_charactertic_prop函数来更改特征的权限(在ATT_PERM_WRITE和ATT_PERM_WRITE_AUTH之间切换)。然而,当我这样做的时候,我的特性就失效了。例如,如果我使用nRF Connect进行检查,我可以看到特征UUID发生了变化。因此,智能手机再也找不到特征(因为它使用它的UUID来查找它)。
当使用ble_gatts_set_charactertic_prop时,我应该知道一些事情吗?初始UUID是一个128位的UUID,在调用这个函数之后,它变成了一个16位的UUID。

我正在寻找一个解决这个问题的方法:是否有可能摧毁我的服务并重新创建它?

MT_dialog
离线
最后看到:3个月4个星期前
工作人员
加入:2015-06-08 34
嗨apoudret,

嗨apoudret,

似乎有一些错误的功能ble_gatts_set_feattic_prop()和ble_gatts_get_feattic_prop()(在1.0.12 SDK上),我正在与SDK团队检查这一点,我将尽快让你知道我有更多的信息。就我所知,没有有效的API,将允许您轻松地销毁和重新创建数据库,这一次使用所需的权限运行时,我也检查这与团队。

由于MT_dialog

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

谢谢你的回答,如果你有更多关于这个问题的信息(或解决方案)给我回复,那将是非常好的。

MT_dialog
离线
最后看到:3个月4个星期前
工作人员
加入:2015-06-08 34
嗨apoudret,

嗨apoudret,

我已经发布了一个内部票据,我会尽快回复,因为我有一个答案从SDK团队。

由于MT_dialog

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

你好,

关于这个问题,你有什么最新消息吗?

谢谢

MT_dialog
离线
最后看到:3个月4个星期前
工作人员
加入:2015-06-08 34
嗨apoudret,

嗨apoudret,

没有,SDK团队还没有消息,这可能需要一段时间。

由于MT_dialog

MT_dialog
离线
最后看到:3个月4个星期前
工作人员
加入:2015-06-08 34
嗨apoudret,

嗨apoudret,

刚刚收到一些反馈,请对以下功能做如下修改:

  1. ble_mgr_gatts_service_characteristic_set_prop_cmd_handler ()
  2. ble_mgr_gatts_service_characteristic_get_prop_cmd_handler ()

在上面的函数中,你会发现下面这行代码:

Gcmd ->句柄= cmd->句柄+ 1;请用这个替换那条线gcmd - >处理= cmd - >处理;显然,该函数请求并设置了错误的句柄,这应该可以解决这个问题。

由于MT_dialog

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

你好MT_dialog,

在这种情况下,当我调用ble_gatts_set_charactertic_prop()函数时,我应该给出特征句柄还是属性值句柄?

我做了你对SDK的修改但我的问题依然存在。
-如果我给出特征句柄,什么也不会发生,权限不会改变
-如果我给属性值句柄,权限会改变,但特征UUID也会改变(它变成了一个16位UUID)

谢谢

MT_dialog
离线
最后看到:3个月4个星期前
工作人员
加入:2015-06-08 34
嗨apoudret,

嗨apoudret,

我没有测试这个中央一侧只有通过调试器在DK检查权限是否改变,测试在一个中央设备我可以复制你的问题,看看你提及,UUID的变化影响的特点,还检查解决方案。应该传递给函数的句柄是值的属性。

由于MT_Dialog

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

你好MT_dialog,

谢谢你的回答。
如果你有关于UUID问题的解决方案,我将很高兴给我回复。

谢谢

MT_dialog
离线
最后看到:3个月4个星期前
工作人员
加入:2015-06-08 34
嗨apoudret,

嗨apoudret,

仍然没有来自SDK团队的消息,这是一个适当的修复,但我相信,我们已经找到了一个工作周围,以能够改变的权限和属性的特征,而不干扰UUID,不要使用ble_gatts_set_charactertic_prop()函数,请检查下面3行代码以更改特性的权限和属性。

att_perm_type test_perm;
struct attm_elmt elmt;

test_perm = prop_to_rwperm(GATT_PROP_READ | GATT_PROP_WRITE | GATT_PROP_NOTIFY) | perm_to_rwperm(ATT_PERM_READ_AUTH|ATT_PERM_WRITE)| . test_perm = pro_to_rwperm (ATT_PERM_READ_AUTH|ATT_PERM_WRITE
perm_uuid_128 << perm_pos_uuid_len);//这将设置适当的属性和权限,稍后将被分配给属性。
状态= attmdb_get_attribute(mcs_glob->mc_var_value_h, &elmt);/ /获取属性
elmt.info.att - >烫= test_perm;//设置目标属性的新权限集。

我希望这对你有所帮助。

由于MT_dialog

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

谢谢MT_dialog,你的解决方法非常有效。
你知道在描述符上是否也能做同样的事情吗?

MT_dialog
离线
最后看到:3个月4个星期前
工作人员
加入:2015-06-08 34
嗨apoudret,

嗨apoudret,

几乎,我的描述符是这样的:

test_perm = perm_to_rwperm (ATT_PERM_READ_AUTH);
状态= attmdb_get_attribute(mcs_glob->mc_descriptor, &elmt);
elmt.info.att - >烫= test_perm;

由于MT_dialog

apoudret
离线
最后看到:1年7个月前
加入:2017-09-22 08:33
谢谢MT_dialog

谢谢MT_dialog,这是完美的工作。