使用状态机启动可连接的定向通告、然后查看在50毫秒后是否形成连接。 如果在未实现连接的情况下发生3次状态机(150ms)、我们希望终止可连接的定向广播并返回休眠状态5秒钟。
目前、如果我们达到150毫秒、并尝试禁用广播、则在整个1.28秒结束之前、它不会终止。 这是预期的、还是可以在不到1.28秒的时间内根据需要终止可连接的定向广播?
此致、
-Marc
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
使用状态机启动可连接的定向通告、然后查看在50毫秒后是否形成连接。 如果在未实现连接的情况下发生3次状态机(150ms)、我们希望终止可连接的定向广播并返回休眠状态5秒钟。
目前、如果我们达到150毫秒、并尝试禁用广播、则在整个1.28秒结束之前、它不会终止。 这是预期的、还是可以在不到1.28秒的时间内根据需要终止可连接的定向广播?
此致、
-Marc
Mark、您好!
您是否使用受限可发现模式? 您可以使用 TGAP_LIM_ADV_TIMEOUT 来限制器件广播的时间、但我认为您不能将其设置为低于1s
#define TGAP_LIM_ADV_TIMEOUT 1 //!<处于受限可发现模式时保持广播的最长时间。 以秒为单位(默认为180秒)
您还可以尝试设置计时器并使用 GAP_EndDiscoverable()停止广播。
您好、Marie、
所以我尝试了几件事、但还是没有运气。 我们是否确定堆栈将允许在1.28秒之前终止可连接的定向广播(如果未建立连接)?
请注意 ,调用 GAP_EndDiscoverable()时, 我得到 的返回代码为0x12,它是 bleIncorrectMode。 如果 认为 advertising...no不能确定可连接定向广播持续1.28秒、而调用 GAP_EndDiscoverable 的计时器在150毫秒后触发、这是怎么可能的???
我将在周末更详细地了解这一点、因此如果您在 COB 星期五之前有任何想法、我们将不胜感激。
-Marc
尊敬的 Marc:
如果您尝试连接的器 件处于范围内、器件可能会立即进入连接状态、因此这可能是 bleIncorrectMode 的解释、在此之后器件会自动停止广播。
此外、如果您查看 peripheral.c、您将看到、如果器件处于 GAPROLE_advertising*状态、则您停止广播、然后它将进入 GAPROLE_WAITING_STUARTing...状态:
案例 GAP_END_DISCOVERATed_DONE_EVENT:
(笑声)
//更新状态。
if (gapRole_state == GAPROLE_Connected_ADV)
{
//在广告关闭期间
gapRole_state = GAPROLE_Connected;
}
其他
{
//在广告关闭期间
gapRole_state = GAPROLE_WAITING_STUARTWAITIN;
}
(笑声)
您还可以通过评测功率来确认、在进入 GAPROLE_WAITing 状态后、广播确实已停止。
祝你一切顺利
您好、Zahid、
谢谢。 没有任何具有正确地址的(无中央地址)在允许连接的范围内、因此我知道这不是问题。
因此、我想我还想知道、在执行可连接定向广告时、停止向堆栈提交广告的过程是否在 CDA 启动后150毫秒完成、堆栈是否会停止广告或将继续运行广告直到1.28秒 (在执行此操作时、显示 GAPROLE_WAITING_WAITING_UART等到1.28秒结束)?
客户真的需要广告停留在150毫秒、而不是运行整个1.28秒。
请告诉我。
此致、
-Marc
您好、Zahid、
可连接的定向广告是否应该是阻塞式操作? 在1.28秒之后、似乎会阻止主应用程序循环中的任务调度程序运行。 我已配置射频内核、然后为50ms 计时器间隔发生时(P1_6)以及尝试禁用副(P1_1)添加了调试信号。 在1.28秒的可连接定向广告之后,这些似乎永远不会发生……这是预期的吗???? 即使在公布之前启动50ms 计时器、也会发生这种情况。
我认为、第一个计时器 INT 在可连接定向广告运行时发生、但直到可连接定向广告结束时、应用程序任务调度程序才会为其提供服务...然后它会触发接下来的几个间隔、然后呼叫尝试停止可连接 出现定向广告(太晚)。
是否有办法解决此问题、或者运行可连接的定向广告是否能阻止其他事情发生?
此致、
-Marc