如何在运行时更改现有服务uuid和属性uuid吗?动态修改

6个职位/ 0个新职位
最后发表
chenpenglai
离线
最后看到:3个月3天前
加入:2018-12-24 02:24
如何在运行时更改现有服务uuid和属性uuid吗?动态修改

我基于SDK 5.0.4的ble_examples \ ble_app_peripheral工程修改

我想在运行时更改现有服务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

还有其他改变属性uuid的方法吗?

在另一个论坛非常感谢TM_Dialog给我提供的帮助,我尝试过,但手机连接上去查看uuid并没有修改成功,应该是我漏了什么关键的步骤:

https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-software/unable-change-attribute-uuid-running

设备:
CYibin
离线
最后看到:8个月3天前
工作人员
加入:2017-12-14 02:48
你好, 我会验证后给你答复

你好,

我会验证后给你答复

chenpenglai
离线
最后看到:3个月3天前
加入:2018-12-24 02:24
好的 非常感谢

好的 非常感谢

CYibin
离线
最后看到:8个月3天前
工作人员
加入:2017-12-14 02:48
你好,

你好,

可尝试修改uuid数组后,

调用app_gapm_reset_op ();接口,复位一下协议栈;

之后协议栈会重新运行一系列初始化流程。

chenpenglai
离线
最后看到:3个月3天前
加入:2018-12-24 02:24
你好 我尝试执行以后刚好符合我的预期,非常感谢你!!

你好

我尝试执行以后刚好符合我的预期,非常感谢你!!

CYibin
离线
最后看到:8个月3天前
工作人员
加入:2017-12-14 02:48
不客气~对有帮助的回答,可将其设置为接受

不客气~

对有帮助的回答,可将其设置为接受