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.

[参考译文] CC3230SF:如果在 sl_WlanDisconnect ()之后没有等待或其他一些耗时活动、则在 sl_WlanDisconnect ()之后调用 sl_stop ()始终会超时

Guru**** 1729330 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1378770/cc3230sf-call-to-sl_stop-after-sl_wlandisconnect-always-times-out-if-not-preceded-by-wait-or-some-other-time-consuming-activity

器件型号:CC3230SF

工具与软件:

我使用以下代码来关闭 NWP。 在本例中,sl_stop_timeout=15000, 但 sl_Stop()会花费一段时间,而不管我给出了什么。 同时、 sl_Stop()无论是否超时都会返回0。

sl_WlanDisconnect ()和 sl_Stop ()之间没有至少3ms 的延迟, sl_Stop ()将消耗它给定的整个超时时间。  

静态空 StopWifiTask( void )

debug_console_Log (wifi、log_info、"StopWifiTask ()");
StopRetryTimeout();
StopWifiTimeout();
aws_IoT_DisconnectFromAwsIot ();
sl_WlanDisconnect ();
Task_sleep (6);  //需要此延迟、以使 sl_stop ()调用不会挂起并超时。 不知道为什么。 2ms 太短了、3ms 似乎可以达到这个目的
sl_Stop (SL_STOP_TIMEOUT);

}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果您调用 sl_Stop (0)(即 timeout=0)、它应立即返回(非正常终止)。

    设置超时后、sl_Stop 将尝试正常终止连接。 如果 在 终止期间出现问题(例如、对等器件不响应 TCP 断开连接)或存在  大量 待处理数据的缓冲区、sl_Stop 将会阻止、直到套接字 关闭(或超时到期)。

    触发  StopWifiTask()的连接是否存在任何问题?  

    如果可以捕获 NWP 日志(请参阅 https://www.ti.com/lit/pdf/swru455的第20章)、我们可以更详细地了解问题根源。

    无线监听器日志也可能有帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢响应、Kobi、  


    是的,我允许 sl_stop()的超时 ,这样就可以实现平稳的终止。 但是、似乎并不能正常地关闭、因为无论我提供的超时时间是多少、都需要整个时间。 我不知道这是一个问题,但它似乎奇怪的行为,因为没有任何迹象表明任何事情发生了错误。  

    没有连接问题触发 StopWiFi... 我这么做是为了准备  休眠。  

    我将尝试捕获 NWP 日志。 我以前从未这么做过、但查看内部情况会非常有用。  

    再次感谢。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很好! 我将等待日志。

    如果您也可以获取空气监听器日志(Wi-Fi 适配器的 pcap 日志)、这将非常有用。