嗨,对话框中,
我一直在观察我的应用程序的行为,我可以广告没有问题,但我不能连接。
外设一直返回0x3E错误(无法建立连接)。而这种行为只能被纠正
通过应用重置。
通过调试,我可以确认应用程序任务上的一切都运行正常,GAPM任务正在运行,定时器正在运行。
然而,当我检查LLC_TASK (ke_state_get(LLC_TASK))的状态时,我得到0x0D status (LLC_ENC_WAIT_LTK),
我定期通过计时器检查,它从不改变。
这种行为发生在断开连接之后(可能是错误的断开连接),很少发生。我可以复制
这种行为通过:
1.外设连接
2.使用app_easy_gap_disconnect()强制断开中心与外围设备的连接,同时
3.断开_from _central(在这个例子中,是iPhone)
4.试图再次连接
在步骤2。和3。外设的断开状态是0x16(从本地断开)或0x13(断开)
从远程)。当行为发生时,断开几乎肯定会显示0x13。我猜
这是一个与时间有关的问题,当有来自双方的断开请求几乎在同一时间。
就像我说的,这种情况很少发生,但每次尝试几次后,我可以复制它。
我的问题是,当LLC任务卡在LLC_ENC_WAIT_LTK状态时,是否认为连接是不可能的?
此外,您对防止这种错误有什么建议吗?
我使用的是包含DA14580的Murata Type ZY。并使用SDK5的app_barebone示例。
总的来说,我对Dialog提供的例子和他们在这个网站上的支持感到满意。然而,
仍然很难调试可能来自像这样的低级任务的错误。
谢谢提前
Isa
设备:
嗨meriororen,
我们的LLC任务在某些情况下断开时出现了一些问题,这将在新的SDK中得到修复。
同样,你对TASK_LLC的看法是正确的,在那种状态下,它不能自由处理连接,可能这导致了你所经历的问题。
由于MT_dialog
嗨MT_dialog,
谢谢你的确认。
那么,当它发生时,我可以采取什么步骤来恢复连接?通过执行GAPM_RESET来重新设置较低的层是否安全?它应该带回
链接层也是,对吧?因为我想避免整个平台重置。
谢谢
嗨meriororen,
据我所知,为了从这种错误状态中恢复,我们对一个有类似问题的客户应用了sw重置,但我认为通过重置堆栈,它会工作得很好。
由于MT_dialog
正确的。谢谢你的回答。是否有任何关于新SDK修复的估计?
嗨meriororen,
不幸的是,近期没有发布SDK更新的计划。
由于MT_dialog