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.

[参考译文] CCS/CC3220SF-LAUNCHXL:扫描 wifi

Guru**** 2553450 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/926857/ccs-cc3220sf-launchxl-scan-wifi

器件型号:CC3220SF-LAUNCHXL

工具/软件:Code Composer Studio

尊敬的 TI 支持者:

我正在使用"网络终端"示例进行开发。

当我使用函数: sl_WlanGetNetworkList 时。 最初、当我调用此函数时、它仍然会执行并返回扫描结果。 但一段时间后、它始终返回错误 SL_ERROR_WLAN_GET_NETWORK_LIST_EAGAIN。 您能解释一下这个问题吗?

谢谢、

VU。


unsigned long distanceInSeconds;
distanceInSeconds = 5;
sl_WlanPolicySet (sl_WLAN_policy_scan、sl_WLAN_SCAN_policy (1、1)、(_u8 *)和 distanceInSeconds、sizeof (distanceInonds));
*cmdScanNet ("-n 30");


*
如果是32_t inct (空)
内部32_t RET =-1;
//uint8_t 触发器 ScanTrials = 0;
ScanCmd_t ScanParams;
unsigned char i;
//int_TMR1 ();
/*调用命令解析器*/
memset (&ScanParams、0x0、sizeof (ScanParams));
//示例:ARG ="-n 30"
RET = ParseScanCmd (arg,&ScanParams);

if (ret < 0)
{
return(-1);
}

/*清除结果缓冲区*/
memset (&app_bc.gDataBuffer、0x0、sizeof (app_bc.gDataBuffer));
睡眠(1);
RET = sl_WlanGetNetworkList (ScanParams.index、ScanParams.numOfentries、&app_CB.gDataBuffer.netEntries[ScanParams.index]);)

if (ret <= 0)
{
UART_PRINT("\n\r\n[SCAN]:无法检索网络列表\n");
return(-1);
}

printScanRs (ret);


return (ret);
#endif

}

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

    您好 Vu,

    如果您通过设置distanceInSeconds为更大(例如20秒)来增加两次扫描之间的间隔,并且如果您在 sl_WlanGetNetworkList()之前增加了 SLEE()时间,您是否仍然看到同样的问题?

    SL_ERROR_WLAN_GET_NETWORK_LIST_EAGAIN 仅指示应用程序在获取 AP 列表之前应等待更长的时间。

    此致、

    Michael

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

    嗨、Michael!

    它仍然返回 SL_ERROR_WLAN_GET_NETWORK_LIST_EAGAIN。

    如果我使用 sl_Stop (0); 和 sl_Start (0、0、0);在 sl_WlanGetNetworkList 返回错误代码时重置器件、则此函数可导致网络列表、但 CC3220无法发送和接收数据包。

    谢谢你。

    VU。

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

    您好 Vu,

    否 当错误 SL_ERROR_WLAN_GET_NETWORK_LIST_EAGAIN 从 APIsl_WlanGetNetworkList ()返回时、您需要等待片刻、比如说10秒、然后再次调用 API。 不应调用 NWP 重置。

    您的意思是无法发送或接收数据包? 您的设备是否已连接到 WLAN? 使用哪种模式(AP、STA、P2P)?

    1月

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

    你好,Jan!

    -i 每  sl_WlanGetNetworkList隔10秒调用 API (),但 它会在扫描成功后一直返回 SL_ERROR_WLAN_GET_NETWORK_LIST_EAGAIN。

    STA 模式下的-CC3220。 当我复位 NWP 时、CC3220在 while (1)中发送数据包(广播)、我使用 Wireshark、但看不到任何数据包。

    此致、

    VU。

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

    您好 Vu,

    当返回代码 SL_ERROR_WLAN_GET_NETWORK_LIST_EAGAIN 时、是否在您的下一次 API 调用(10秒后)后显示正确的值?

    根据您的网络配置、Wireshark 可能不会显示来自 Wifi 网卡的数据包。 UDP 广播不应通过 Wifi 传输。 这取决于基础设施接入点的配置。 在您的测试中、您应该使用 UDP 单播或 TCP 连接。

    1月

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

    您好、Jan、

    "当返回代码 SL_ERROR_WLAN_GET_NETWORK_LIST_EAGAIN 时、是否在您的下一次 API 调用(10秒后)后显示了正确的值?"  

    是的、它是正确的值。  

    "根据您的网络配置、Wireshark 可能不会显示来自 Wifi 网卡的数据包。 UDP 广播不应通过 Wifi 传输。 |这取决于基础设施接入点的配置。 在您的测试中、您应该使用 UDP 单播或 TCP 连接。"

    我有4个板 CC3220、它们发送和接收数据包(单播、广播和多播)。 如果任何 CC3220返回 SL_ERROR_WLAN_GET_NETWORK_LIST_EAGAIN (然后我将重置 NWP、API sl_WlanGetNetworkList()将扫描成功)。 那么 CC3220无法与每一个其他器件连接。  

    VU。

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

    您好 Vu,

    如果下一个 API 调用返回正确的 AP 列表、则代码按预期工作。 如果出现错误 SL_ERROR_WLAN_GET_NETWORK_LIST_EAGAIN、您不应重新启动 NWP、而应等待下一个 API 调用。

    重新启动 NWP 后、套接字句柄不再有效。 这意味着您需要重新初始化套接字代码(再次创建套接字、等待分配 IP 等)。

    1月

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

    您好、Jan、

    如果 API 返回 SL_ERROR_WLAN_GET_NETWORK_LIST_EAGAIN、则下一个 API 调用始终返回 SL_ERROR_WLAN_GET_NETWORK_LIST_EAGAIN。 我不知道如何解决它。

    "重新启动 NWP 后、套接字句柄不再有效。 这意味着您需要重新初始化套接字代码(再次创建套接字、等待分配 IP 等)。"

    当我复位 NWP 时、我调用 sl_close (sock)并重新进行初始化、但 CC3220无法发送和重新接收。 但是、如果我断开 AP 并重新连接 AP、则它将处于活动状态。

    VU、

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

    您好 Vu,

    您使用的 SDK 版本是什么? 您是否已在设备内上传最新的 ServicePack? 请尝试将扫描策略间隔更改为20秒,并在间隔20秒调用 sl_WlanGetNetworkList()。 如果仍有相同的问题、则可能代码内部存在一些逻辑错误(例如 、首次返回 SL_ERROR_WLAN_GET_NETWORK_LIST_EAGAIN 时、延迟算法将停止正常运行)。

    但关闭插座是不够的。 您需要重新连接到 WLAN (手动连接到 WLAN 或在使用自动连接时等待连接)。 您需要等待 IP 地址分配完毕,然后才能创建和使用套接字。 如果您没有等到 WLAN 已连接并分配了 IP、则套接字代码将无法正常工作。

    1月