移除蓝牙GATT服务

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
20个帖子/ 0个新帖子
最后发表
apoudret
离线
最后看到:一年6个月前
加入:2017-09-22 08:33
移除蓝牙GATT服务

你好,

我的软件创建和注册一个GATT服务,使用ble_gatts_add_service()和ble_gatts_register_service()。在执行的某个时候,我希望永久删除这个服务。

我知道函数ble_gatts_disable_service(),但是这只是禁用了服务,并没有从属性数据库中删除它。

是否有办法从数据库中永久删除服务?

最好的问候,
安迪Poudret

设备:
PM_Dialog
离线
最后看到:1天7小时前
工作人员
加入:2018-02-08 11:03
嗨apoudret,

嗨apoudret,

在调用ble_gatts_disable_service()之后,可以从ble_service.h头文件中使用ble_service_remove()函数吗?该函数从内部数据库中删除一个服务。请试试,然后告诉我。

谢谢,PM_Dialog

apoudret
离线
最后看到:一年6个月前
加入:2017-09-22 08:33
你好PM_Dialog,

你好PM_Dialog,

如我所说,我想从属性数据库。

通过查看ble_service_remove()的文档,它说:
这个函数不会从属性数据库中删除服务。

因此,ble_service_remove()从服务列表中删除服务,而不是从属性数据库中删除服务。
是否有办法从属性数据库中永久删除服务?

最好的问候,
安迪Poudret

PM_Dialog
离线
最后看到:1天7小时前
工作人员
加入:2018-02-08 11:03
嗨apoudret。

嗨apoudret。

不,有一种方法可以永久地从属性数据库中删除服务。我认为唯一的方法是重置数据库,但不建议这样做。你能解释一下你的问题是什么吗?您想要释放内存空间吗?

谢谢,PM_Dialog

apoudret
离线
最后看到:一年6个月前
加入:2017-09-22 08:33
你好PM_Dialog,

你好PM_Dialog,

我正在开发一个简单的演示。使用输入,用户可以创建BLE服务,添加特征和描述符等。
用户可以删除已经创建的服务,然后创建其他服务。
如果服务从未真正从数据库中删除,我认为我正在丢失内存空间。

最好的问候,
安迪

chenpenglai
离线
最后看到:2个月1周前
加入:2018-12-24 02:24
你好Apoudret

你好Apoudret

你能告诉我如何创建BLE服务并添加特征吗?

PM_Dialog
离线
最后看到:1天7小时前
工作人员
加入:2018-02-08 11:03
嗨apoudret,

嗨apoudret,

正如我在前面的评论中已经提到的,没有任何可用的API可以永久地从属性数据库中删除服务。如果你检查SDK中可用服务的初始化,你会看到它们在初始化时分配内存(OS_MALLOC),所以由你来释放服务的内存(OS_FREE)。如果您正在使用自定义服务,您不应该在服务初始化时动态分配内存

谢谢,PM_Dialog

apoudret
离线
最后看到:一年6个月前
加入:2017-09-22 08:33
你好PM_Dialog,

你好PM_Dialog,

我没有在我的服务初始化中动态分配任何内存。

正如我在之前的评论中提到的,我正在失去的和我想要找回的记忆空间是属性数据库(它曾用于我的服务的属性,但我不再使用)。

最好的问候,
安迪

PM_Dialog
离线
最后看到:1天7小时前
工作人员
加入:2018-02-08 11:03
嗨apoudret,

嗨apoudret,

如果这是一个自定义的概要文件,我强烈建议你遵循我们的服务在SDK中的实现,所以你应该动态分配内存,然后释放内存。

谢谢,PM_Dialog

apoudret
离线
最后看到:一年6个月前
加入:2017-09-22 08:33
你好,

你好,

我认为你是错误的,因为我将有相同的问题,由您的SDK提供的服务。

例如,如果我创建和添加服务CTS:
-我可以禁用服务(与ble_gatts_disable_service)
我可以删除与设备关联的存储(ble_service_cleanup)
我可以从服务列表中删除服务(ble_service_remove)
但是我想做的是把服务从属性数据库.即恢复ble_gatts_add_service()调用所使用的内存。

如果这在您的SDK中不可能,请这样说。

最好的问候,
安迪

PM_Dialog
离线
最后看到:1天7小时前
工作人员
加入:2018-02-08 11:03
嗨apoudret,

嗨apoudret,

are没有任何API可用来从属性数据库中删除服务。尽管,我将再次检查它,我会让你知道如果你找到任何工作围绕这一点。

谢谢,PM_Dialog

apoudret
离线
最后看到:一年6个月前
加入:2017-09-22 08:33
你好PM_Dialog,

你好PM_Dialog,

你能否介绍有关情况?

最好的问候,
安迪

PM_Dialog
离线
最后看到:1天7小时前
工作人员
加入:2018-02-08 11:03
嗨apoudret,

嗨apoudret,

没有任何更新。您只能在调用ble_gatts_disable_service()之后,在ble_service.h头文件中使用ble_service_remove()函数。

谢谢,PM_Dialog

chenpenglai
离线
最后看到:2个月1周前
加入:2018-12-24 02:24
嗨PM_Dialog

嗨PM_Dialog

我正在尝试为ble添加一个新的服务

我发送了GATTM_ADD_SVC_REQ消息到GATT任务,但它似乎没有工作

你有什么想法吗?

如何在运行时更改存在的uuid(不重启)?

PM_Dialog
离线
最后看到:1天7小时前
工作人员
加入:2018-02-08 11:03
嗨chenpenglai,

嗨chenpenglai,

您是说定制服务吗?如果是,请从我们的支持网站查看以下文件:

举例:DA1468x BLE客户服务

自定义蓝牙低能量配置文件

你能分享更多关于你实现的细节吗?

谢谢,PM_Dialog

chenpenglai
离线
最后看到:2个月1周前
加入:2018-12-24 02:24
请帮助我

嗨PM_Dialog

请帮我

chenpenglai
离线
最后看到:2个月1周前
加入:2018-12-24 02:24
请给我一个联系人

请给我一个联系人

chenpenglai
离线
最后看到:2个月1周前
加入:2018-12-24 02:24
我在sdk 5。4中工作

嗨PM_dialog

我在sdk 5。4中工作

现在我想在运行时更改存在的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在代码执行后改变^_^

我需要你的帮助,项目非常紧急

我找不到ble_gatts_add_service()和ble_gatts_register_service()函数在sdk 5.0.4

chenpenglai
离线
最后看到:2个月1周前
加入:2018-12-24 02:24
嗨PM_dialog

嗨PM_dialog

我真的需要你的帮助!!

PM_Dialog
离线
最后看到:1天7小时前
工作人员
加入:2018-02-08 11:03
嗨chenpenglai,

嗨chenpenglai,

请尽量不要重复论坛上的问题。这个线程与DA1468x产品家族和SDK1相关。我在下面回复了你:

https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-42-%E2%80%93-software/can-arbitrary-uuid-set-after

谢谢,PM_Dialog