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.

[参考译文] CC3220MODA:SL_WLAN_EVENT_STA_ADDED 接收到事件、但 sl_NetCfgGet ()未返回 IP

Guru**** 2562120 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/825116/cc3220moda-sl_wlan_event_sta_added-event-received-but-no-ip-returned-by-sl_netcfgget

器件型号:CC3220MODA

您好!

当一个基站连接到 AP 时、我们会得到一个我要处理的 sl_WLAN_EVENT_STA_ADDED 事件。 事件仅具有 Mac 地址、但我需要一个 IP 用于 UDP 套接字结构。

要获取工作站 IP、我需要拨打电话:

SL_NetCfgGet (sl_netcfg_AP_STATIONS_INFO_LIST、&START_STA_INDEX、&STA_INFO_Len、(uint8_t*) apStaList)

我发现在返回数组中、有时 IP 地址为零、而其他时间则为有效 IP。 如果我等待事件处理结束、则始终设置 IP。

因此,在填充 apStaList 阵列中的 IP 信息时似乎存在延迟。 我有什么想法可以克服这一问题吗? 我是否使用了错误的回调?

此致、

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

    您好!

    您正在运行的命令必须从外部闪存获取该数据、这可能需要一些时间。 如果您只需要 IP 地址、则可以使用 sl_netcfg_IPV4_STA_ADDR_MODE 来实现更快的选择。 这将仅为您提供 IP 地址。 此处提供更多详细信息

    Jesu

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

    Jesu、

    我看了一下、但看不到它是如何使用的、我可以找到的唯一参考是:

    sl_NetCfgGet (sl_netcfg_IPV4_STA_ADDR_MODE、&ConfigOpt、&len、(_u8 *)&IPv4);

    此呼叫中没有使用接收到的 Mac 地址、因此如何使用该地址?

    此致、

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

    您好!

    我们的 cloud_ota 示例中有一个在 cloud_ota.c 中的 HandleProvisioningStop 中使用的示例  

    此调用不会为您提供 MAD 地址。 为什么需要 Mac 用于 UDP?

    Jesu

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

    Jesu、

    我在您的示例中尝试了呼叫、我找到的一个、但在 AP 上运行时、它返回的所有内容都是 AP 的信息、对我来说用处不大。

    为了清除、我有一个 PA 和一个基站、该基站连接到 AP、这样就会在 AP 上生成我在 AP 上捕获的 SL_WLAN_EVENT_STA_ADDED 事件。

    此事件为我提供的所有内容都是工作站 Mac 地址、没有其他内容、没有 IP 仅提供 Mac 地址。 因此、要使用基站 MAC 地址查找 IP 地址、我要求 AP 为我提供其站点列表、我在其中搜索 MAC 地址的列表。 找到 Mac 地址条目后、我可以读取该条目中存储的 IP 地址。

    现在、正如我说过的、有时 IP 地址是空的、有时也不是、如果在处理事件结束时放入 AP 查询调用、通常会设置 IP。 但这意味着在发生站点连接事件之前、AP 的站点列表 IP 地址信息不会更新、这种竞争状态会出现。 因此、我需要的是一个事件或 API 调用、我可以使用它来确定刚刚连接到 AP 的站点上的 IP 地址。

    此致、

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

    您好!

    与我在 https://e2e.ti.com/support/wireless-connectivity/wifi/f/968/t/825978上描述的内容类似、这似乎是一个类似的问题

    当您处于 AP 模式且我处于 STA 时,当尝试使用尚未具有有效数据的 sl_get*调用时,似乎应该会设置一些状态或错误。

    建议的解决方案是在事件后添加~秒的延迟。  当然、我想它现在可以工作、但它可以用于下一个 SL 驱动程序版本吗?  在这些情况下、如果数据尚不有效、SL 驱动程序应该返回错误代码。

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

    您好 Tunstall、

    当基站连接到 AP 时、会触发连接事件、这并不意味着 AP 已分配 IP 地址。 AP 分配一个后、 SL_NetApp_EVENT_DHCPv4_LE租 期将在 SimpleLinkNetAppEventHandler 中触发。 在这里、您可以获取分配给基站的 AP 的 IP 地址。

    Jesu

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

    Jesu、

    谢谢您的支持、我们通过一个小褶皱为您提供了所需的信息。 如果基站断电并在几分钟后重新供电、则不会生成 SL_NetApp_EVENT_DHCPv4_RUSED 事件、仅生成连接事件。

    这是一种合理的行为、但我在删除连接代码后才发现这种情况、感谢上帝的备份。

    此致、