跳到主要内容

DA1469x_Custom_BLE_Service示例中的属性权限混淆

DA1469x

6个月前

发布的prasanna0分 9回复
0的问题

你好,对话框,

我正在测试示例“BLE_Central”和“DA1469x_Custom_BLE_Service”,以实现GATT客户端和服务器之间的一些通信。在自定义服务示例中,在peripheral_task.c中,有两个服务分别定义了一个和三个特征。在这里,我为这两个服务的特性设置了一些随机权限。请找到下面附的日志文件。

ÿÿð@BLE中央应用程序启动BLE中央应用程序启动@BLE中央应用程序启动@ble中央应用程序启动@ble中央应用程序启动@ vt_gap_connected:conn_idx = 0000 supple_evt_gattc_discover_svc:conn_idx = 0000 uuid = 0x1800 start_h = 0001 end_h = 0007 handle_evt_gattc_discover_svc:conn_idx = 0000UUID = 0x1801 start_h = 0008 end_h = 0008 handle_evt_gattc_discover_svc:conn_idx = 0000 UUID = 11111111-0000-0000-0000-111111111111 start_h = 0009 end_h = 000D handle_evt_gattc_discover_svc:conn_idx = 0000 UUID = 22222222-0000-0000-0000-222222222222 start_h = 000Eend_h = 0016 handle_evt_gattc_discover_completed:conn_idx = 0000 type = 0 status = 0 shower_t_gattc_discover_char:conn_idx = 0000 uuid = 0x2a00句柄= 0002 value_handle = 0003属性= 02(-----)supple_evt_gattc_discover_char:conn_idx = 0000 uuid = 0x2a01句柄= 0004 value_handle = 0005属性= 02(-----)supple_evt_gattc_discover_char:conn_idx = 0000 uuid = 0x2a04句柄= 0006 value_handle = 0007属性= 02(-----)hange_evt_gattc_discover_completed:conn_idx = 0000类型= 2 status = 0 shower_evt_gattc_read_completed:conn_idx = 0000把手= 0003 status = 0 43 75 75 73 74 6f 6d 20 42 4c 45 20 53 6f 6d 20 42 4c 45 20 53 65 72 76 69定制ble servi 63 65 ce handle_evt_gattc_discover_completed:conn_idx = 0000type = 2 status = 0 shower_evt_gattc_discover_char:conn_idx = 0000 uuid = 11111111-0000-0000-0000-00000000/0000-0000-000000000001句柄= 000a value_handle = 000b属性= 22(-R --- i--)supple_evt_gattc_discover_completed:conn_idx = 0000类型= 2状态= 0 handle_evt_gattc_discover_desc:conn_idx = 0000 UUID = 0x2901手柄= 000C handle_evt_gattc_discover_desc:conn_idx = 0000 UUID = 0x2902手柄= 000D handle_evt_gattc_discover_completed:conn_idx = 0000类型= 3个状态= 0 handle_evt_gattc_discover_char:conn_idx = 0000 UUID = 22222222-0000-0000-0000-000000000001 handle=000f value_handle=0010 properties=0a (-R-W----) handle_evt_gattc_discover_char: conn_idx=0000 uuid=22222222-0000-0000-0000-000000000002 handle=0012 value_handle=0013 properties=02 (-R------) handle_evt_gattc_discover_char: conn_idx=0000 uuid=22222222-0000-0000-0000-000000000003 handle=0015 value_handle=0016 properties=02 (-R------) handle_evt_gattc_discover_completed: conn_idx=0000 type=2 status=0 handle_evt_gattc_discover_desc: conn_idx=0000 uuid=0x2901 handle=0011 handle_evt_gattc_discover_completed: conn_idx=0000 type=3 status=0 handle_evt_gattc_discover_desc: conn_idx=0000 uuid=0x2901 handle=0014 handle_evt_gattc_discover_completed: conn_idx=0000 type=3 status=0 handle_evt_gap_disconnected: conn_idx=0000 address=06:06:06:01:01:01 reason=8 handle_evt_gap_connected: conn_idx=0000 handle_evt_gattc_discover_svc: conn_idx=0000 uuid=0x1800 start_h=0001 end_h=0007 handle_evt_gattc_discover_svc: conn_idx=0000 uuid=0x1801 start_h=0008 end_h=0008 handle_evt_gattc_discover_svc: conn_idx=0000 uuid=11111111-0000-0000-0000-111111111111 start_h=0009 end_h=000d handle_evt_gattc_discover_svc: conn_idx=0000 uuid=22222222-0000-0000-0000-222222222222 start_h=000e end_h=0016 handle_evt_gattc_discover_completed: conn_idx=0000 type=0 status=0 handle_evt_gattc_discover_char: conn_idx=0000 uuid=0x2a00 handle=0002 value_handle=0003 properties=02 (-R------) handle_evt_gattc_discover_char: conn_idx=0000 uuid=0x2a01 handle=0004 value_handle=0005 properties=02 (-R------) handle_evt_gattc_discover_char: conn_idx=0000 uuid=0x2a04 handle=0006 value_handle=0007 properties=02 (-R------) handle_evt_gattc_discover_completed: conn_idx=0000 type=2 status=0 handle_evt_gattc_read_completed: conn_idx=0000 handle=0003 status=0 43 75 73 74 6f 6d 20 42 4c 45 20 53 65 72 76 69 Custom BLE Servi 63 65 ce handle_evt_gattc_discover_completed: conn_idx=0000 type=2 status=0 handle_evt_gattc_discover_char: conn_idx=0000 uuid=11111111-0000-0000-0000-000000000001 handle=000a value_handle=000b properties=22 (-R---I--) handle_evt_gattc_discover_completed: conn_idx=0000 type=2 status=0 handle_evt_gattc_discover_desc: conn_idx=0000 uuid=0x2901 handle=000c handle_evt_gattc_discover_desc: conn_idx=0000 uuid=0x2902 handle=000d handle_evt_gattc_discover_completed: conn_idx=0000 type=3 status=0 handle_evt_gattc_discover_char: conn_idx=0000 uuid=22222222-0000-0000-0000-000000000001 handle=000f value_handle=0010 properties=0a (-R-W----) handle_evt_gattc_discover_char: conn_idx=0000 uuid=22222222-0000-0000-0000-000000000002 handle=0012 value_handle=0013 properties=02 (-R------) handle_evt_gattc_discover_char: conn_idx=0000 uuid=22222222-0000-0000-0000-000000000003 handle=0015 value_handle=0016 properties=02 (-R------) handle_evt_gattc_discover_completed: conn_idx=0000 type=2 status=0 handle_evt_gattc_discover_desc: conn_idx=0000 uuid=0x2901 handle=0011 handle_evt_gattc_discover_completed: conn_idx=0000 type=3 status=0

这些是我设置的特性权限。

const mcs_characteristic_config_t custom_service_1 [] {/ *初始化特征属性* / characture_declaration(11111111-000000000001,charperting_attr_value_max_bytes,char_write_prop_dis,char_read_prop_dis,char_notif_indic_en,初始化的特征,null,null,event_sent_cb),};常量mcs_characteristic_config_t custom_service_2 [] = {CHARACTERISTIC_DECLARATION(22222222-0000-0000-0000-000000000001,CHARACTERISTIC_ATTR_VALUE_MAX_BYTES,CHAR_WRITE_PROP_EN,CHAR_READ_PROP_DIS,CHAR_NOTIF_NONE,世界你好,NULL,set_var_value_cb,NULL),CHARACTERISTIC_DECLARATION(22222222-0000-0000-0000-000000000002,CHARACTERISTIC_ATTR_VALUE_MAX_BYTES,char_write_prop_dis,char_read_prop_en,char_notif_none,hello对话框,get_var_value_cb,null,null),compyristic_declaration(22222222-0000-0000-0000-000000000003,0,char_write_prop_dis,char_read_prop_dis,char_notif_none,null,null,null,null),};

请比较所附的输出日志的权限。您可以看到服务1的惟一特性的属性被打印为(-R——I——),尽管我已经禁用了Read属性。

接下来是第二个服务特征,它们分别打印为(-R- w ----)、(-R------)和(-R------),这三个特征与我实际给出的权限形成了对比。

根据我给出的内容,只有第二个服务的第二个特征权限被正确打印。

我要求您调查为什么会发生这种情况,并建议我可以做些什么来避免这种情况。这对我的应用非常重要,因为我必须在GATT客户端和服务器之间交换数据。

提前谢谢。

问候,

Prasanna

6个月前

PM_Dialog

嗨Prasanna,

让我查一下,然后给你答复。

谢谢,PM_Dialog

6个月前

prasanna 0分

你好pm_dialog,

有关此问题是否有任何更新。我已经检查了两个可读取的两个特征,其中读取禁用,另一个写入禁用。写属性正常工作,我发现有读取权限有问题。你找到了同样的吗?

2.而且,我有时得到的地位是不确定的。例如,当我试图读取一个特征值时,我得到的输出是“handle_evt_gattc_read_completed: conn_idx=0000 handle=000a status=67”。这里你可以看到状态为67。这个行为意味着什么,因为在ble_att.h文件的枚举att_error_t中没有为值67声明错误值。

问候,

Prasanna

6个月前

PM_Dialog

嗨Prasanna,

因此,如果我理解正确的话,问题只是在自定义服务1中,错误的属性似乎没有正确地出现。

请尝试使用通用BLE移动应用程序连接并检查权限吗?

另外,能否分享一下,除了特征数据库之外,你在示例中还做了哪些修改?您是否使用了dialog提供的示例,或者您做了任何更改?

谢谢,PM_Dialog

6个月前

prasanna 0分

你好pm_dialog,

我已经检查了nrf连接应用程序以及。即使我禁用了read特性,我也可以在应用程序中看到read属性。Read属性似乎有问题。尽管它的读取被禁用或启用,我们还是可以读取。

在自定义服务示例中,除了更改权限外,我没有对代码进行太多修改。

6个月前

PM_Dialog

H Prasanna,

我们正在编写本教程,并有望在本周末发布更新版本。一旦有新版本可供下载,我会告诉你的。

谢谢,PM_Dialog

6个月前

prasanna 0分

你好PM_dialog,

谢谢你的最新消息。

问候,

Prasanna

6个月前

prasanna 0分

你好,对话框,

新版本什么时候可用,有什么更新吗?

问候,

Prasanna

6个月前

PM_Dialog

嗨,大家好,

我将在内部再次检查状态,并很快回复给你。

谢谢,PM_Dialog

5个月前

PM_Dialog

嗨Prasanna,

如以下论坛票证所示,该示例未更新:

https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-software/gatt-connection-timeout

谢谢,PM_Dialog