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.

[参考译文] CC3135MOD:gethostbyname 和 Connection

Guru**** 2756835 points

Other Parts Discussed in Thread: CC3135, UNIFLASH

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/936805/cc3135mod-gethostbyname-and-connection

器件型号:CC3135MOD
主题中讨论的其他器件:CC3135UNIFLASH

您好!

我正在尝试使用适用于 AWS 的 Simplelink SDK 插件中的 AWS 订阅发布示例。  Wifi 驱动程序会正确初始化并连接到我的接入点。  但是、当 AWS IoT MQTT_CLIENT_CONNECT 模块尝试调用 SlNetUtil_gethostbyname ()方法时、它始终失败。  进入 SlNetUtil_gethostbyname()方法时,检查要设置的连接状态位时,它似乎会失败。

在 SlNetIf 中,getConnectionStatus()最终进入 SlNetIfWifi_getConnectionStatus()方法,该方法使用 sl_WlanGet (SL_WLAN_CONNECTION,...)查询连接状态。  这将返回连接的接入点信息、但 ConnStatus 字段始终为零(请参阅观察窗口的附加图像)。

连接完成后、是否需要从 SlNetUtil 或 SlNetIfWifi 模块中调用我的呼叫?

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

    您好!

    您是否尝试使用 CC3135将 CC32xx AWS 插件示例移植到您自己的平台、或者您是否采取了不同的方法来整合您的应用?

    调用 ti_net_slNet_initconfig();应该足够初始化 SlNetIf 图层。 在我的 CC3220上运行 subscribe_publish_sample 应用程序、我可以让它连接到 AWS、而无需对代码进行任何修改。

    查看您的观察窗口、可以看到 sl_WlanGet 未返回正确的 AP 信息。 如果您在代码中单独调用 sl_WlanGet (),而不通过 SlNetIF_getCOnnnnnnnnectionStatus() API,sl_WlanGet ()是否起作用?

    您是否曾尝试从 CC3135 SDK 运行更基本的测试用例、例如 network_terminal 示例、以验证平台上的 CC3135的网络功能?

    此致、
    Michael

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

    您好、Michael、

    是的、我将 AWS 插件示例移植到新平台。  将 simplelink 库的端口连接到此新端口(请参阅文章历史记录)。  Basci 网络功能(包括扫描和连接到接入点)似乎运行良好。  上面的监视窗口包括 SSID 和接入点的 BSSID (刚刚未展开)。   

    sl_WlanGet ()在初始化期间可与其他属性正常工作,以验证启用的5G 无线电等参数。

    具有讽刺意味的是,sl_WlanConnect()返回成功并继续处理。  连接后,立即调用 sl_WlanGet ()以检查连接状态,返回上面监视窗口的内容(ConnStatus = 0)。

    我现在使用经过简化的修改的网络终端代码进行测试、以连接到所需的 SSID 和密钥、然后使用 sl_WlanGet 检查连接状态:

    bool Connected = false;
    
    SlWlanSecParams_t connectionSecurity;
    connectionSecurity.Type = sl_WLAN_SEC_TYPE_WPA_WPA2;
    connectionSecurity.Key =(signed char*) key;
    connectionSecurity.KeyLen = sizeof (key);
    if (0 = sl_WlanConnect (signed char const*) SSID、
    strlen((char const*)ssID),
    0、
    连接安全性(&C)、
    null))
    {
    
    ConnectCmd_t ConnectParams;
    memset (ConnectParams、0、sizeof (ConnectParams));
    
    /*等待连接事件:
    *为了验证连接是否成功、
    *我们在两个传入事件上挂起:已连接和已获取 IP。
    *下面的信标被这个(主)上下文挂起。
    *它们将在异步事件后发出信号
    *表示 NWP 已连接且获取的 IP 地址被提升。
    *有关详细信息,请参阅此应用程序自述文件。
    *
    if (!is_connected (app_b.Status))(如果!is_connected (app_bc.Status)
    {
    if (SEM_WAIT_TIMEOUT (&APP_CB.CON_CB.connectEventSyncObj、WLAN_EVENT_TOUT)== TIMEOUT_SEM)
    {
    UART_PRINT ("\n\r\n\r\n[wlanconnect]:无法连接到 AP:%s\n\r\n、ConnectParams.ssid);
    }
    }
    
    if (!is_ip_acquired (app_cb.Status))(如果!is_ip_acquired (app_c
    {
    if (SEM_WAIT_TIMEOUT (&APP_CB.CON_CB.ip4acquisedEventSyncObj、WLAN_EVENT_TOUT)= TIMEOUT_SEM)
    {
    UART_PRINT("\n\r\n[wlanconnect]:无法获取 IPv4地址。\n\n");
    }
    }
    
    if (!is_IPV6G_Acquired (app_CB.Status))
    {
    if (SEM_WAIT_TIMEOUT (&APP_CB.CON_CB.ip6acquisedEventSyncObj、WLAN_EVENT_TOUT)= TIMEOUT_SEM)
    {
    UART_PRINT("\n\r\n[wlanconnect]:无法获取 IPv6地址。\n\n");
    }
    }
    
    if (!is_IPV6G_Acquired (app_bc.Status)&&
    !iS_IPV6L_Acquired (app_CB.Status)&&!is_IP_Acquired (app_CB.Status)
    {
    UART_PRINT ("\n\r\n [line:%d、error:%d]%s\n\r\n、__LINE__、-1、"Network Error");
    }
    
    已连接= true;
    
    //测试是否获得连接位?
    如果(已连接)
    {
    slWlanConnStatusParam_t connectionParams;
    uint16_t OPT = 0;
    内部32_t RetVal = 0;
    uint16_t 大小= 0;
    
    Size = sizeof (slWlanConnStatusParam_t);
    memset (connectionParams、0、size);
    
    RetVal = sl_WlanGet (sl_WLAN_connection_info、&Opt、&Size、(uint8_t *)&connectionParams);
    
    IF (重定位)
    {
    UART_PRINT("[wlanconnect]:无法连接?");}
    
    }
    
    
    返回已连接; 

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

    您好!

    使用修改后的网络终端示例进行测试时,是否遇到了与 sl_WlanGet ()相同的问题? 您之前的帖子中不清楚是否存在这种情况。

    在我的 CC3135设置中、运行 sl_WlanGet () API 会导致预期行为-器件连接到 AP 后、它会将 ConnStatus 正确设置为1、并保存 SSID 和通道编号的预期数据。

    您是否使用 Uniflash 确保已将 CC3135服务攻击更新到最新版本? 拥有旧的设备服务回送或没有服务回送可能会导致意外的设备操作。

    此致、

    Michael