嘿,
我创建了2个具有30个特征的服务。当我想添加第三个服务时,我可以创建24个特征。当我创建更多服务时,第三个服务显示为空。我已经检查了是否有一些语法错误。当我尝试创建两个不同的特征(第24和第23个特征)时,问题就重现了。我没有从编译器得到任何错误。董事会没有陷入某些功能,它似乎工作得很好。我能做什么来增加特征的数量?
改变设置:#定义DB_HEAP_SZ 14336
我用的是:
DA14585
SDK 6.0.10.511
ble_app_profile
问候,
关键词:
设备:
嗨moritz.schnaufer,
服务中可以拥有的特征数量和服务数量t都受到为数据库分配的堆数量的限制。因此,正如您在文章中提到的,您应该根据您的实现增加DB_HEAP_SZ的大小。你是否尝试在调试模式下运行你的代码,当你添加第24和第23个特征时,代码没有崩溃?你能确保你的设备还在做广告吗?您可以使用SmartSnippets工具箱的功率分析器来确保设备进行广告宣传。
谢谢,PM_Dialog
嘿,
谢谢你的回复。我增加了DB_HEAP_SZ的大小,但它仍然不起作用。当DB_HEAP_SZ的大小太小时,程序通常会卡住
ASSERT_WARNING(错误= = RESET_AFTER_SUOTA_UPDATE);
但在我的情况下,这不会发生。此外,我认为DB_HEAP_SZ确实很大。我不太明白你说的是什么意思确保你的设备仍然在做广告.我的意思是,我可以看到它,并连接到它。因此广告进行得很顺利。至少我是这么认为的。你能解释一下你那是什么意思吗?
不幸的是,smarsnippet工具箱目前不工作。所以我还不能用能量分析器。
我调试了代码,它没有崩溃。
问候
嗨moritz.schnaufer,
您使用哪个中心应用程序来扫描并连接到外围设备。这个问题也可以放在中央。尝试使用不同的Central应用程序,如果必须访问嗅探器,那么这是调试此问题的最佳选择。
服务和特性仅受应用程序可用的堆内存的限制。
最好的
LC_Dialog
嘿,
我用的是智能手机。在智能手机上,我使用BLE Scanner和nRF Connect。使用不同的智能手机并没有改变这种行为。我还尝试了其他一些应用程序,还有一个蓝雷竞技安卓下载牙适配器。结果总是一样的。我不认为这是中央应用程序的问题。我知道应用程序和智能手机能够显示更多具有特色的服务。
为了好玩,我将堆增加到32768,但我仍然得到了相同的结果。通过增加特征和服务的数量,我只需要调整DB_HEAP_SZ,没有别的吗?
问候,
嗨moritz.schnaufer,
是的,堆大小是服务数量和特征的唯一限制。我们将进一步探讨这个问题,并给你一个可能的解决方案。
最好的
LC_Dialog
你好,对话框,
我正在试验BLE_APP_PERIPHERAL,并包含了SVC4服务(总共4个服务)和一个特性(CHAR1);
在编译应用程序和调试时,
1.可以包含特征声明“DECL”
2.在添加特征“值”时——设备不发布(基于功率分析器),但程序在调试模式下运行。
我是否可以知道在SDK6.0.10中对BLE_APP_PERIPHERAL或任何其他变量进行更改以将SVC4中的特性增加到至少10的步骤。
谢谢,期待你的尽快回复。
嗨rajucoolsuraj,
请尽量不要在论坛上重复你的问题。我已经在下面的论坛线程驱动了对你的问题的讨论:
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-software/add-more-services-characteristics
谢谢,PM_DIalog