你好,
我对BLE特性的权限有一些疑问。
我们的客户想要我们的设备的一个特性同时支持通知和指示,所以我设置如下:
[customer_idx_control_point_val] = {customer_control_point_uuid_128, att_uuid_128_len, perm (wr, enable) | perm (write_req, enable) | perm (ind, enable) | perm (ntf, enable), def_cust1_indicateable_char_len, 0, null},
我只是想知道,我设置一个具有通知和指示权限的特征是合法的吗?这是正常情况吗?
我发现Dialog的SDK不能同时使用通知和指示。
如果我设置“PERM(IND, ENABLE) | PERM(NTF, ENABLE)”,只有通知工作。当主机发送"02 00"(启用指示)时,DA14585将返回PRF_ERR_INVALID_PARAM。
请检查代码"status = check_client_char_cfg(PERM_IS_SET(perm, NTF, ENABLE), param);" in "\sdk\ble_stack\profiles\custom\ custs1_task.c"?
非常感谢。
关键词:
设备:
嗨stanley_yeh,
我们不支持在同一特征中同时支持通知和指示,因为它没有意义。您将只收到一个指示或一个通知。你发布的代码,检查特性是可起诉的还是可通知的。
谢谢,PM_Dialog
嗨PM_Dialog,
我的意思是,该特性支持这两种权限,指示和通知,但一次只有一个权限将被启用。
我并不是说这两个权限是同时启用的。
如果主机发送01 00到我们设备的0x2902描述符,我们的设备将通知给主机的消息,
如果主机发送0200到我们设备的0x2902描述符,我们的设备将向主机指示消息。
你能告诉我为什么说不通吗?
非常感谢。:)
嗨stanley_yeh,
是的,这是预期的,只有一个权限将在一个时间启用。该特性在同一时间只能被起诉或只能被通知,这就是为什么我们不支持在同一特性中同时支持通知和指示的原因。
谢谢,PM_Dialog