只允许配对请求与PIN码

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

你好,

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

所以目前手机可以做配对请求使用PIN码显示的板,它工作正确。
但问题是,手机也可以做配对请求没有PIN码,它也工作。
是否可能只接受带PIN码的配对请求而拒绝其他配对请求?

谢谢,
安迪

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

嗨apoudret,

你说手机不用针就能连接是什么意思?例如,如果设备要求你提供一个大头针,而你只是从手机端忽略它,那么设备仍然保持连接,直到你发出断开连接?或者设备会在几秒钟后断开?设备将接受连接,如果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
离线
最后看到:三个月三个星期前
工作人员
加入:2015-06-08 34
嗨apoudret,

嗨apoudret,

似乎有一些错误的函数ble_gatts_set_characteristic_prop()和ble_gatts_get_characteristic_prop()(在1.0.12 SDK上),我正在与SDK团队检查这个,我会让你知道,一旦我得到了更多的信息。据我所知,没有有效的API,将允许您轻松地破坏和重新创建数据库这一次使用所需的权限在运行时,我也检查这与团队。

由于MT_dialog

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

谢谢你的回答,如果你有更多关于这个问题(或解决方法)的信息时能给我回复就太好了。

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

嗨apoudret,

关于这个我已经开了一个内部ticket,我得到SDK团队的答复后会尽快回复。

由于MT_dialog

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

你好,

你能否介绍有关情况?

谢谢

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

嗨apoudret,

没有,仍然没有来自SDK团队的消息,这可能需要一段时间。

由于MT_dialog

MT_dialog
离线
最后看到:三个月三个星期前
工作人员
加入: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
离线
最后看到:三个月三个星期前
工作人员
加入: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
离线
最后看到:三个月三个星期前
工作人员
加入: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)|
(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
离线
最后看到:三个月三个星期前
工作人员
加入: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,这是完美的工作。