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

6 posts / 0 new
Last post
chenpenglai
Offline
Last seen:2 weeks 8 hours ago
加入:2018-12-24 02:24
如何在运行时更改现有服务uuid和属性uuid?动态修改

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

我想在运行时更改现有服务uuid和属性uuid,因为属性uuid由客户在运行时通过串行端口配置

我正在开发一个AT指令蓝牙模块

我这样修改:

uint8_t new_uuid_arr[16]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}; //a new 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

Device:
CYibin
Offline
Last seen:3 months 3 weeks ago
年代taff
加入:2017-12-14 02:48
你好, 我会验证后给你答复

你好,

我会验证后给你答复

chenpenglai
Offline
Last seen:2 weeks 8 hours ago
加入:2018-12-24 02:24
好的 非常感谢

好的 非常感谢

CYibin
Offline
Last seen:3 months 3 weeks ago
年代taff
加入:2017-12-14 02:48
你好,

你好,

可尝试修改 uuid 数组后,

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

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

chenpenglai
Offline
Last seen:2 weeks 8 hours ago
加入:2018-12-24 02:24
你好 我尝试执行以后刚好符合我的预期,非常感谢你!!

你好

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

CYibin
Offline
Last seen:3 months 3 weeks ago
年代taff
加入:2017-12-14 02:48
不客气~对有帮助的回答,可将其设置为接受

不客气~

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