你好,
我的软件使用BLE_GATTS_ADD_SERVICE()和BLE_GATTS_REGISTER_SERVICE()创建和注册GATT服务。在执行的某些时间点,我想永久删除此服务。
我知道函数ble_gatts_disable_service(),但是这只是禁用了服务,并没有从属性数据库中删除它。
有没有办法从数据库中永久删除服务?
最好的问候,安迪Poudret
嗨apoudred,
在调用ble_gatts_disable_service()之后,可以从ble_service.h头文件中使用ble_service_remove()函数吗?该函数从内部数据库中删除一个服务。请试试,然后告诉我。
谢谢,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
请帮我
请给我联系
我在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};//一个新的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更改^ _ ^
我需要你的帮助,项目非常紧急
我找不到ble_gatts_add_service()和ble_gatts_register_service()函数在sdk 5.0.4
我真的需要你的帮助!!!
请尽量重复论坛上的问题。此线程与DA1468x产品系列和SDK1有关。我已经在以下线程中回复了你:
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-42-%E2%80%93-software/can-arbitrary-uuid-set-after
嗨apoudred,
在调用ble_gatts_disable_service()之后,可以从ble_service.h头文件中使用ble_service_remove()函数吗?该函数从内部数据库中删除一个服务。请试试,然后告诉我。
谢谢,PM_DIALOG.
你好pm_dialog,
正如我所说,我想从中删除服务属性数据库。
通过查看BLE_SERVICE_REMOVE()的文档,它说:
“此函数不会从属性数据库中删除服务。”
因此,BLE_SERVICE_REMOVE()似乎从服务列表中删除服务,而不是属性数据库。
是否有办法从属性数据库中永久删除服务?
最好的问候,
安迪Poudret
嗨apoudret。
不,有一种方法可以永久地从属性数据库中删除服务。我认为唯一的方法是重置数据库,但不建议这样做。你能解释一下你的问题是什么吗?您想要释放内存空间吗?
谢谢,PM_DIALOG.
你好pm_dialog,
我正在开发一个简单的演示。使用输入用户可以创建BLE服务,添加特征和描述符等。
用户可以删除已经创建的服务,然后创建其他服务。
如果服务永远不会真正从数据库中删除,我想我正在失去内存空间。
最好的问候,
安迪
你好apoudret.
你能告诉我如何创建BLE服务并添加特征吗?
嗨apoudred,
正如我在我之前的注释中已提及的那样,没有任何可用的API从属性数据库中永久删除服务。如果您检查可用服务的初始化到SDK中,您将看到它们在初始化中分配内存(OS_MALLOC),因此它取决于您释放(OS_FREE)服务的内存。如果您使用自定义服务,则不应在服务初始化中动态地分配内存
谢谢,PM_DIALOG.
你好pm_dialog,
我不会在我的服务初始化中动态地分配任何内存。
正如我在之前的评论中提到的,我正在失去的和我想要找回的记忆空间是属性数据库(用于我服务的属性,但我不再使用了)。
最好的问候,
安迪
嗨apoudred,
如果是自定义配置文件,我强烈建议您在SDK中遵循我们的服务的实现,因此您应该动态分配内存,然后释放内存。
谢谢,PM_DIALOG.
你好,
我认为你被误认为我会有同样的问题,你的SDK提供的服务。
例如,如果我创建并添加服务CTS:
- 我可以禁用服务(使用ble_gatts_disable_service)
- 我可以删除与设备关联的存储(BLE_SERVICE_CLEANUP)
我可以从服务列表中删除服务(ble_service_remove)
但我想做的就是从中删除服务属性数据库。即,恢复BLE_GATTS_ADD_SERVICE()调用使用的内存。
如果在您的SDK中不可能,请说。
最好的问候,
安迪
嗨apoudred,
are没有任何API可用来从属性数据库中删除服务。尽管,我将再次检查它,我会让你知道如果你找到任何工作围绕这一点。
谢谢,PM_DIALOG.
你好pm_dialog,
您是否对此问题有任何更新?
最好的问候,
安迪
嗨apoudred,
不,没有任何更新。在调用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.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更改^ _ ^
我需要你的帮助,项目非常紧急
我找不到ble_gatts_add_service()和ble_gatts_register_service()函数在sdk 5.0.4
嗨PM_DIALOG.
我真的需要你的帮助!!!
嗨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.