你好,
我的软件创建和注册一个GATT服务,使用ble_gatts_add_service()和ble_gatts_register_service()。在执行的某个时候,我希望永久删除这个服务。
我知道函数ble_gatts_disable_service(),但这只会禁用该服务,并且不会从属性数据库中删除它。
是否有办法从数据库中永久删除服务?
此致,安迪·普罗丁
嗨apoudret,
在调用BLE_GATTS_DISABLE_SERVICE()之后,请从BLE_SERVICE.H标题文件中使用BLE_SERVICE_REMOVE()函数使用BLE_SERVICE.H头文件?该函数从内部数据库中删除服务。请尝试一下,让我知道。
谢谢,PM_Dialog
你好PM_Dialog,
如我所说,我想从属性数据库。
通过查看ble_service_remove()的文档,它说:这个函数不会从属性数据库中删除服务。
因此,ble_service_remove()从服务列表中删除服务,而不是从属性数据库中删除服务。有没有方法可以永久地从属性数据库中删除服务?
嗨apoudret。
不,有一种方法可以从属性数据库中永久删除服务。我想这是唯一的方法是重置数据库,但没有推荐。你能解释你的问题吗?你想制作免费的记忆空间吗?
我正在开发一个简单的演示。使用输入,用户可以创建BLE服务,添加特征和描述符等。然后用户可以删除他创建的服务并为例创建其他服务。如果服务从未真正从数据库中删除,我认为我正在丢失内存空间。
此致,安迪
你好Apoudret
你能告诉我如何创建BLE服务并添加特征?
正如我在前面的评论中已经提到的,没有任何可用的API可以永久地从属性数据库中删除服务。如果你检查SDK中可用服务的初始化,你会看到它们在初始化时分配内存(OS_MALLOC),所以由你来释放服务的内存(OS_FREE)。如果您正在使用自定义服务,您不应该在服务初始化时动态分配内存
我没有在我的服务初始化中动态分配任何内存。
正如我之前的评论中已经提到的那样,我失去的内存空间,我想回来的是内存空间属性数据库(它曾用于我的服务的属性,但我不再使用)。
如果这是一个自定义的概要文件,我强烈建议你遵循我们的服务在SDK中的实现,所以你应该动态分配内存,然后释放内存。
我认为你是错误的,因为我将有相同的问题,由您的SDK提供的服务。
例如,如果我创建和添加服务CTS:-我可以禁用服务(与ble_gatts_disable_service)我可以删除与设备关联的存储(ble_service_cleanup)- 我可以从服务列表中删除服务(ble_service_remove)但是我想做的是把服务从属性数据库.即恢复ble_gatts_add_service()调用所使用的内存。
如果这在您的SDK中不可能,请这样说。
are没有任何API可用来从属性数据库中删除服务。尽管,我将再次检查它,我会让你知道如果你找到任何工作围绕这一点。
你能否介绍有关情况?
没有任何更新。您只能在调用ble_gatts_disable_service()之后,在ble_service.h头文件中使用ble_service_remove()函数。
嗨PM_Dialog
我正在尝试为ble添加一个新的服务
我发送了GATTM_ADD_SVC_REQ消息到GATT任务,但它似乎没有工作
你有什么想法吗?
如何在运行时更改存在的uuid(不重启)?
嗨chenpenglai,
您是说定制服务吗?如果是,请从我们的支持网站查看以下文件:
示例:DA1468X BLE客户服务
自定义蓝牙低能曲线
您能否分享有关您实施的更多细节?
嗨PM_DIALOG.
请帮我
请给我一个联系人
嗨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};/ /新的uuidstruct 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()函数
我真的需要你的帮助!!
请尽量不要重复论坛上的问题。这个线程与DA1468x产品家族和SDK1相关。我在下面回复了你:
https://support.dialog-semicondiondiondiondiondum/forums/post/dialog-smartbond-bluetooth-low-energy-42-%e2%80%93-software/can-arbitrary-uuid-set- after.
嗨apoudret,
在调用BLE_GATTS_DISABLE_SERVICE()之后,请从BLE_SERVICE.H标题文件中使用BLE_SERVICE_REMOVE()函数使用BLE_SERVICE.H头文件?该函数从内部数据库中删除服务。请尝试一下,让我知道。
谢谢,PM_Dialog
你好PM_Dialog,
如我所说,我想从属性数据库。
通过查看ble_service_remove()的文档,它说:
这个函数不会从属性数据库中删除服务。
因此,ble_service_remove()从服务列表中删除服务,而不是从属性数据库中删除服务。
有没有方法可以永久地从属性数据库中删除服务?
此致,
安迪·普罗丁
嗨apoudret。
不,有一种方法可以从属性数据库中永久删除服务。我想这是唯一的方法是重置数据库,但没有推荐。你能解释你的问题吗?你想制作免费的记忆空间吗?
谢谢,PM_Dialog
你好PM_Dialog,
我正在开发一个简单的演示。使用输入,用户可以创建BLE服务,添加特征和描述符等。
然后用户可以删除他创建的服务并为例创建其他服务。
如果服务从未真正从数据库中删除,我认为我正在丢失内存空间。
此致,
安迪
你好Apoudret
你能告诉我如何创建BLE服务并添加特征?
嗨apoudret,
正如我在前面的评论中已经提到的,没有任何可用的API可以永久地从属性数据库中删除服务。如果你检查SDK中可用服务的初始化,你会看到它们在初始化时分配内存(OS_MALLOC),所以由你来释放服务的内存(OS_FREE)。如果您正在使用自定义服务,您不应该在服务初始化时动态分配内存
谢谢,PM_Dialog
你好PM_Dialog,
我没有在我的服务初始化中动态分配任何内存。
正如我之前的评论中已经提到的那样,我失去的内存空间,我想回来的是内存空间属性数据库(它曾用于我的服务的属性,但我不再使用)。
此致,
安迪
嗨apoudret,
如果这是一个自定义的概要文件,我强烈建议你遵循我们的服务在SDK中的实现,所以你应该动态分配内存,然后释放内存。
谢谢,PM_Dialog
你好,
我认为你是错误的,因为我将有相同的问题,由您的SDK提供的服务。
例如,如果我创建和添加服务CTS:
-我可以禁用服务(与ble_gatts_disable_service)
我可以删除与设备关联的存储(ble_service_cleanup)
- 我可以从服务列表中删除服务(ble_service_remove)
但是我想做的是把服务从属性数据库.即恢复ble_gatts_add_service()调用所使用的内存。
如果这在您的SDK中不可能,请这样说。
此致,
安迪
嗨apoudret,
are没有任何API可用来从属性数据库中删除服务。尽管,我将再次检查它,我会让你知道如果你找到任何工作围绕这一点。
谢谢,PM_Dialog
你好PM_Dialog,
你能否介绍有关情况?
此致,
安迪
嗨apoudret,
没有任何更新。您只能在调用ble_gatts_disable_service()之后,在ble_service.h头文件中使用ble_service_remove()函数。
谢谢,PM_Dialog
嗨PM_Dialog
我正在尝试为ble添加一个新的服务
我发送了GATTM_ADD_SVC_REQ消息到GATT任务,但它似乎没有工作
你有什么想法吗?
如何在运行时更改存在的uuid(不重启)?
嗨chenpenglai,
您是说定制服务吗?如果是,请从我们的支持网站查看以下文件:
示例:DA1468X BLE客户服务
自定义蓝牙低能曲线
您能否分享有关您实施的更多细节?
谢谢,PM_Dialog
嗨PM_DIALOG.
请帮我
请给我一个联系人
嗨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在代码执行后改变^_^
我需要你的帮助,项目非常紧急
我无法在SDK 5.0.4中找到ble_gatts_add_service()和ble_gatts_register_service()函数
嗨PM_dialog
我真的需要你的帮助!!
嗨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