1-如果在调用app \u easy \u gap \u dev \u config \u create \u msg()设置set \u dev \u config \u cmd之后,set \u dev \u config \u cmd设置为NULL,那么让app \u easy \u gap \u dev \u config \u get \u active(void)检索set \u dev \u config \u cmd的值有什么意义?当调用app\u easy\u gap\u dev\u config\u get\u active(void)时,它是否总是空的?它是否与保存在retention\u mem\u area0中有关?同样的问题适用于所有其他xxxxx\u get\u活动函数。
2-为什么app\u easy\u gap\u directed\u advanced\u start(void)调用函数app\u easy\u gap\u undirected\u advanced\u start\u create \u msg(),该函数生成无向广告而不是定向广告?
3-在与其他设备处于连接状态时,是否可以扫描(然后连接到)其他设备(由于距离原因已断开连接)?
4-定义自定义特征值时,我可以使用脑海中出现的任何128个UUID吗?我知道服务声明、特征声明等都有自己的UUID。。。
5-为什么只有在连接/断开连接后才必须启用/禁用数据库?
6-创建特征值并将其属性权限设置为PERM(NTF,ENABLE)时,如何通知该值?我知道消息ID CUSTS1\u VAL\u NTF\u REQ需要通过内核消息发送,它将在CUSTS1\u VAL\u NTF\u REQ\u处理程序中处理,该处理程序将更新数据库并通过GATT将新值发送给对等方。但我的问题是:CUSTS1\u VAL\u NTF\u REQ消息是如何创建和发送的?
谢谢你的时间!!!
你好,费尔南多·埃夫廷,
1在app\u easy\u gap\u dev\u config\u get\u active()函数中,我没有看到任何set\u dev\u config\u cmd=NULL;命令。
2这是一个复制粘贴错误,将在下一个SDK版本中更正。
三。当580作为外围设备工作时,它只能支持一个与中央设备的连接,如果580作为中央设备工作,它最多可以支持6(580)或8(581)个连接。
4当您定义自定义服务和特征时,您只能在涉及值属性的情况下使用自己的UUID,在任何其他情况下,您必须使用标准UUID,以便中央设备识别该属性是特征声明或特征描述符或特征配置,那些uuid是标准的。您可以查看文档AN-B029,该文档提供了有关自定义数据库结构的一些信息。
5在执行启用配置文件时,大多数过程都与安全性和服务发现有关,如果指定的客户端具有适当的安全要求,则可以访问外围设备等。为了检查客户端是否具有所有预定义的条件,则必须有一个连接,因此启用配置文件是在连接。如果您查看了所有概要文件的RW规范,就会发现所有enable请求都需要有效连接的连接句柄。
6通知消息是在您要发送通知时生成的,在app\u ble\u外围项目中,消息通过ble计时器触发,该计时器使用函数app\u adcvall\u timer\u cb\u handler()作为处理程序。在该函数中,消息被分配并发送。
谢谢你的对话
新的SDK什么时候发布?
你能告诉我函数app\u adcvall\u timer\u cb\u handler()的位置吗?我现在可以在SDK5里找到它了。
谢谢!
你好,费尔南多,
我们没有更新SDK的重新发布日期。app\u adcvall\u timer\u cb\u handler()是位于app\u ble\u peripheral项目中的自定义函数,请查看第142行中的user\u custs1\u impl.c文件。
谢谢你的对话
谢谢您!现在更有意义了。。。
我需要发送一个值为16位宽的值,速率约为100 Hz(这是值更新的速率)。是否有任何问题发出许多通知邮件?我的意思是,如果收音机无法发送我要求它的数据量,会发生什么?
你好,费尔南多,
如果您使用设备发送的消息(由于存在连接,您实际上是在向客户端发送消息),您的设备将正常运行,如果您失去连接或您分配的消息超出了您的连接所能处理的范围(连接间隔较大,并且您正在分配消息但不发送它们),您的消息将堆积起来并填满堆,这将触发平台\重置功能。
谢谢你的对话