Thread 中讨论的其他器件:CC3200
尊敬的论坛:
我的器件以 STA 模式运行、并且已成功连接到网络。 路由器突然关闭、然后在一段时间后重新打开。 在关闭期间、cc3220断开连接、当路由器恢复到 cc3220时、不会自动重新连接。 有哪些方法使 cc3220尝试自动重新连接到路由器?
我尝试在 SimpleLinkWlanEventHandler 函数中输入以下代码:
void SimpleLinkWlanEventHandler (slWlanEvent_t *参数)
{
_i16状态;
switch (pargs->ID){
案例 SL_WLAN_EVENT_CONNECT:
deviceConnected = true;
中断;
案例 SL_WLAN_EVENT_DISCONNECT:
deviceConnected = false;
UART_PRINT ("[SimpleLinkWlanEventHandler] WLAN 已断开连接!!!\n\n");
//检查是否有任何存储的配置文件,如果没有存储的配置文件,则切换到 AP 模式,但如果有存储的配置文件,则尝试定期重新连接
status = checkProfiles();
如果(状态< 0)
{
status = setAPmode();
UART_PRINT ("[SimpleLinkWlanEventHandler]设置 AP 模式状态为%d\n\r\n、状态);
}
否则(状态>=0)
while (deviceConnected!= true)
{
//设置自动连接策略
状态= sl_WlanPolicySet (sl_WLAN_policy_connection、sl_WLAN_connection_policy (1、0、0、0)、 空,0);
如果(状态< 0){
UART_PRINT ("[SimpleLinkWlanEventHandler]错误%d 无法将连接策略设置为自动连接\n\r\n、状态);
while (1);
}
//启用 DHCP 客户端
状态= sl_NetCfgSet (sl_netcfg_IPv4_STA_ADDR_MODE、sl_netcfg_ADDR_DHCP、0、0);
如果(状态< 0){
UART_PRINT ("[SimpleLinkWlanEventHandler]错误%d 无法启用 DHCP 客户端\n\r"、状态);
while (1);
}
//重新启动网络处理器
sl_Stop (200);
状态= sl_Start (0、0、0);
UART_PRINT ("[SimpleLinkWlanEventHandler] sl_Start 代码为%d\n\r"、状态);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
usleep(500000);
}
中断;
默认值:
中断;
}
}
当路由器关闭时、器件会定期以 STA 模式重新启动、我的假设是、它应该尝试连接到存储的配置文件。 但这似乎没有发生。 你能提出建议吗?
谢谢、
David