删除蓝牙GATT服务

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

你好,

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

我知道函数ble_gatts_disable_service(),但这只会禁用该服务,并且不会从属性数据库中删除它。

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

此致,
安迪·普罗丁

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

嗨apoudret,

在调用BLE_GATTS_DISABLE_SERVICE()之后,请从BLE_SERVICE.H标题文件中使用BLE_SERVICE_REMOVE()函数使用BLE_SERVICE.H头文件?该函数从内部数据库中删除服务。请尝试一下,让我知道。

谢谢,PM_Dialog

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

你好PM_Dialog,

就像我说的,我想从属性数据库。

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

因此,ble_service_remove()似乎从服务列表中删除了服务,但没有从属性数据库中删除服务。
有没有方法可以永久地从属性数据库中删除服务?

此致,
安迪·普罗丁

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

嗨apoudret。

不,有一种方法可以从属性数据库中永久删除服务。我想这是唯一的方法是重置数据库,但没有推荐。你能解释你的问题吗?你想制作免费的记忆空间吗?

谢谢,PM_Dialog

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

你好PM_Dialog,

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

此致,
安迪

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

你好Apoudret

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

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

嗨apoudret,

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

谢谢,PM_Dialog

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

你好PM_Dialog,

我不会在服务初始化时动态分配内存。

正如我之前的评论中已经提到的那样,我失去的内存空间,我想回来的是内存空间属性数据库(用于我服务的属性,但我不再使用)。

此致,
安迪

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

嗨apoudret,

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

谢谢,PM_Dialog

apoudret
离线
最后看到:1年5个月前
加入: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天5小时前
工作人员
加入:2018-02-08 11:03
嗨apoudret,

嗨apoudret,

NIS不是可用于从属性数据库中删除服务的API。虽然,我会再次检查一下,如果您发现此目的,我会通知您。

谢谢,PM_Dialog

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

你好PM_Dialog,

关于这个问题,你有什么最新消息吗?

此致,
安迪

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

嗨apoudret,

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

谢谢,PM_Dialog

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

嗨PM_Dialog

我想为ble增加一项新服务

我向GATTM_ADD_SVC_REQ发送了消息给GATT Task,但它似乎不起作用

你知道吗?

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

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

嗨chenpenglai,

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

示例:DA1468X BLE客户服务

自定义蓝牙低能曲线

您能否分享有关您实施的更多细节?

谢谢,PM_Dialog

chenpenglai
离线
最后看到:1个月1个星期前
加入:2018-12-24 02:24
请帮我一下

嗨PM_DIALOG.

请帮我

chenpenglai
离线
最后看到:1个月1个星期前
加入:2018-12-24 02:24
请给我一个联系方式

请给我一个联系方式

chenpenglai
离线
最后看到:1个月1个星期前
加入:2018-12-24 02:24
我工作在sdk 5.0.4

嗨PM_dialog

我工作在sdk 5.0.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在代码执行后改变^_^

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

我无法在SDK 5.0.4中找到ble_gatts_add_service()和ble_gatts_register_service()函数

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

嗨PM_dialog

我真的需要你的帮助!!

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

嗨chenpenglai,

请尽量不要重复论坛上的问题。此线程与DA1468x产品家族和SDK1有关。我已经在下面的帖子中回复了你:

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

谢谢,PM_Dialog