无法更改属性在的uuid运行

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
7个帖子/ 0新
最后一篇
陈鹏莱
离线
最后一次露面:5个月2周前
加入:2018-12-24 02:24
无法更改属性在的uuid运行

我在SDK 5.0.4工作

我想在运行时更改存在的Service UUID和属性UUID,因为客户通过串行端口运行时由客户配置了属性UUID

我正在开发在教学蓝牙模块

我做了以下

uint8_t new_uuid_arr [16] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};//一个新的uuid struct att_char128_desc * p1 =(struct att_char128_desc *)cust_prf_funcs-> att_db [cust1_idx_server_tx_char] .value;memcpy(p1-> attr_type,new_uuid_arr,16);

我的期望是在上面的代码执行后uuid更改

但它不起作用

请告诉我,我怎么运行后更改存在服务uuid​​和属性UUID由功能

是否有任何其他的方法来改变属性的UUID?

设备:
PM_DIALOG.
离线
最后一次露面:1天11小时前
职员
加入:2018-02-08 11:03
嗨Chenpenglai,

嗨Chenpenglai,

您是否尝试过以下步骤在app_custs1_create_db()函数中?还是如果是,在SDK的哪个例子中?你想如何改变UUI?

uint8_t array_test_svc [] = {0x03,0x03,0.x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x0x03,0x03};uint8_t array_test_long_char [] = {0x04,0x04,0x0x04,0x04,0x0x04,0x04,0x04,0x04,0x0x04,0x04,0x04,0x04,0x04,0x04,0x0x04,0x04};memcpy(cust_prf_funcs [i] .att_db [cust1_idx_svc] .value,array_test_svc,16);//这将对服务的变化进行更改

更改特征值,您必须在两个地方应用更改:

的memcpy(cust_prf_funcs [I] .att_db [CUST1_IDX_SVC]。价值+(16 * 7),array_test_long_char,16);//更改应用于的服务的特性包括该阵列

现在将改变应用于特征本身:

memcpy(cust_prf_funcs [i] .att_db [cust1_idx_long_value_char] .value + 3,array_test_long_char,16);

谢谢,PM_DIALOG.

陈鹏莱
离线
最后一次露面:5个月2周前
加入:2018-12-24 02:24
我试图在上面执行

我试图在app_custs1_create_db()函数来执行上面的代码,如下

void app_custs1_create_db(void){struct custs1_create_db_req * req * req = ke_msg_alloc(custs1_create_db_req,task_custs1,task_app,custs1_create_db_req);uint8_t i = 0;/ ******************添加********************* / uint8_t array_test_svc [] = {0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x0x03};uint8_t array_test_long_char [] = {0x04,0x04,0x0x04,0x04,0x0x04,0x04,0x04,0x04,0x0x04,0x04,0x04,0x04,0x04,0x04,0x0x04,0x04};memcpy(cust_prf_funcs [0] .att_db [cust1_idx_svc] .value,array_test_svc,16);memcpy(cust_prf_funcs [0] .att_db [cust1_idx_svc] .value +(16 * 7),array_test_long_char,16);memcpy(cust_prf_funcs [0] .att_db [cust1_idx_server_tx_char] .value + 3,array_test_long_char,16);/ ******************添加了********************* / whis(cust_prf_funcs [i] .task_id!= task_none){if(cust_prf_funcs [i] .task_id == task_custs1){req-> max_nb_att = cust_prf_funcs [i] .max_nb_att;休息; } else i++; } // Attribute table. In case the handle offset needs to be saved req->att_tbl = NULL; req->cfg_flag = 0; req->features = 0; // Send the message ke_msg_send(req); }

但App_custs1_create_db()函数只能在设备启动时更改服务UUID

我想在运行时改变它,不重新启动

我试图改变array_test_svc []值,并呼吁app_custs1_create_db()函数装置启动后,但我不能更改服务UUID

陈鹏莱
离线
最后一次露面:5个月2周前
加入:2018-12-24 02:24
你好PM_DIALOG.

你好PM_DIALOG.

我需要你的帮助

PM_DIALOG.
离线
最后一次露面:1天11小时前
职员
加入:2018-02-08 11:03
嗨Chenpenglai,

嗨Chenpenglai,

我为延迟道歉。我正在努力,我会尽快回复你。您使用的是哪个SDK示例?

谢谢,PM_DIALOG.

陈鹏莱
离线
最后一次露面:5个月2周前
加入:2018-12-24 02:24
我在ble_app工作

我在ble_app_peripheral工作

PM_DIALOG.
离线
最后一次露面:1天11小时前
职员
加入:2018-02-08 11:03
嗨Chenpenglai,

嗨Chenpenglai,

我使用了以下代码片段,我无法复制您的问题。我使用了SDK5.0.4的BLE_APP_PHERICALLAL示例。唯一的变化是cust1_idx_long_value_char而不是cust1_idx_server_tx_char。我假设您已创建“服务器TX”特征。

#包括“user_custs1_def.h”
void app_custs1_create_db(void){struct custs1_create_db_req * req * req = ke_msg_alloc(custs1_create_db_req,task_custs1,task_app,custs1_create_db_req);uint8_t i = 0;/ ******************添加********************* / uint8_t array_test_svc [] = {0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x0x03};uint8_t array_test_long_char [] = {0x04,0x04,0x0x04,0x04,0x0x04,0x04,0x04,0x04,0x0x04,0x04,0x04,0x04,0x04,0x04,0x0x04,0x04};memcpy(cust_prf_funcs [0] .att_db [cust1_idx_svc] .value,array_test_svc,16);memcpy(cust_prf_funcs [0] .att_db [cust1_idx_svc] .value +(16 * 7),array_test_long_char,16);的memcpy(cust_prf_funcs [0] .att_db [CUST1_IDX_LONG_VALUE_CHAR]。价值+ 3,array_test_long_char,16);/ ******************添加了********************* / whis(cust_prf_funcs [i] .task_id!= task_none){if(cust_prf_funcs [i] .task_id == task_custs1){req-> max_nb_att = cust_prf_funcs [i] .max_nb_att;休息; } else i++; } // Attribute table. In case the handle offset needs to be saved req->att_tbl = NULL; req->cfg_flag = 0; req->features = 0; // Send the message ke_msg_send(req); }

因为,我不能够复制的问题,请尝试调试代码。另外,你是什么意思不工作?是设备的广告?您可以连接了?你在调试模式下运行呢?

谢谢,PM_DIALOG.