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.

[参考译文] CC3220SF:网关0.0.0.0、连接断开后器件未重新连接

Guru**** 2539500 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1034113/cc3220sf-gateway-0-0-0-0-device-not-reconnecting-after-connection-loss

器件型号:CC3220SF

尊敬的 TI:

我的用例:  

处于 STA 模式的器件连接到便宜的 Wi-Fi AP (其上没有 DHCP)。
上述 AP 通过 LAN 连接到本地路由器(DHCP 正在运行)。

从 AP 拔下 LAN 电缆后、我会收到一些事件
从 Wi-Fi 驱动程序:

WiFi:   connected
WiFi:   IP V4 address acquired      // SL_NETAPP_EVENT_IPV4_ACQUIRED
WiFi:   IP address lost             // SL_NETAPP_EVENT_IPV4_LOST
WiFi:   IP V4 address acquired      // SL_NETAPP_EVENT_IPV4_ACQUIRED

我的器件正在获取以下值:

SSID: 3GRouter014B84
IP:   169.254.97.105
NMSK: 255.255.0.0
GW:   0.0.0.0
DNS:  192.168.1.11
MAC: 40:BD:32:59:44:F8

当我将 LAN 电缆插回 AP 时、没有发生任何情况(在短时间内、例如一小时)。

我是否希望稍后会发生什么情况?

发生这种情况时、重新连接设备的步骤应该是什么?

如何识别这种情况? 在时将 GW 检查为0.0.0.0是否足够  
事件 SL_NetApp_EVENT_IPV4_ACQUIRED 是怎么回事? 不需要延迟?

我计划在 GW 设置为0.0.0.0时重置设备。 可能会有一些延迟
以避免过快循环。

此致
Jiří μ A

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

    您好、Jiri、

    我认为您的方法是有道理的。 此外、您可能还可以禁用 DHCP 并重新启用、以便在收到 IP 丢失事件后让我们的设备尝试重新协商。  

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

    尊敬的 Vincent:

    我已经检查了文档、但我正在搜索错误、因为我没有找到如何禁用和重新启用 DHCP 客户端。 你会提出建议吗?

    Jiří μ A

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

    您好 Jiří、

    如果不想使用 LLA 回退、则可以仅使用状态(DHCPv4) DHCP 客户端模式。 见 SWRU455章5.3.1。

    1月

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

    您好、Jan、

    很抱歉我迟到了。 我是否应在 STA 激活过程中设置上述客户端模式?
    如果是、将其放在哪里?


    e_wlanMode = ROLE_STA;
    
    s16L_status = sl_WlanSetMode(e_wlanMode);
    if (s16L_status != SL_RET_CODE_OK)
    {
        eL_result = eJpiErrUnknown;
        goto EXIT;
    }
    
    //restart Simplelink
    s16L_status = sl_Stop(SL_STOP_TIMEOUT);
    
    if (s16L_status != SL_RET_CODE_OK)
    {
        eL_result = eJpiErrUnknown;
        goto EXIT;
    }
    
    s16L_status = sl_Start(NULL,NULL,NULL);
    
    if (s16L_status < SL_RET_CODE_OK)
    {
        eL_result = eJpiErrUnknown;
        goto EXIT;
    }

    感谢您的帮助!

    Jiří μ A

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

    您好 Jiří、

    您应该在 NWP 参数初始化代码中的某个位置设置此值。

    例如,我使用以下 DHCP 客户机设置:

        retVal = sl_NetCfgSet(SL_NETCFG_IPV4_STA_ADDR_MODE,
                              SL_NETCFG_ADDR_FAST_RENEW_MODE_WAIT_ACK, /* full r. */
                              0,
                              0);

    1月

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

    您好 Jan、

    我们已经应用了  

    sl_NetCfgSet(
      SL_NETCFG_IPV4_STA_ADDR_MODE,
      SL_NETCFG_ADDR_DHCP, /* Stateful (DHCPv4) only */
      0,
      0);

    对于我的 AP、我使用它确实有所帮助。

    感谢您的友好支持!

    Jiří μ A