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.

[参考译文] LAUNCHXL-CC3235S:STA 与 AP 连接相关

Guru**** 2564565 points
Other Parts Discussed in Thread: LAUNCHXL-CC3235S, UNIFLASH, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1118546/launchxl-cc3235s-sta-to-ap-connection-regarding

器件型号:LAUNCHXL-CC3235S
主题中讨论的其他器件: UNIFLASHSysConfig

尊敬的 TI 团队:

我一直在研究一个应用、该应用通过 UDP 协议将数据从一个 LAUNCHXL-CC3235S 传输到另一 个 LAUNCHXL-CC3235S。 在 开发过程中、我实施了以下措施:

  1. 已将一个 LAUNCHXL-CC3235S 配置为 AP、将另一 个 LAUNCHXL-CC3235S 配置为基站=>这两个都已成功配置。
  2. 在 STA 应用程序中、我添加了一个代码以连接上面步骤1中指定的工作站。 在调试时、它表示我的 SAT 已连接到指定的 AP。 在我的 AP 应用中、还显示1个器件已连接。 但是、当我尝试通过 sl_NetCfgGet 获取已连接的 STA 信息时、会显示已连接1个器件。 但在所连接的 STA 的详细信息中、会显示"Name:Unknown IP"(名称:未知 IP)。 这是查询1。 为什么应用程序未显示所连接设备的正确信息?

为了调试这个问题、我完成了 swru455m。 此文档的第4.3.4节显示、通过事件"sl_WLAN_EVENT_CONNECT"、我们可以获取有关连接到的 AP 的信息。 但是、对于如何使用此事件来检索信息、没有太多的明确性? 它显示了可使用的 slcb_WlanEvtHdlr。 但在 API 中、也找不到这个。 这是查询2。

如果需要我方面的任何其他信息、请告诉我。

感谢您的到来。

此致、

H C Trivedi

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

    您好、H C、

    查询1:

    我相信、如果您向我发送有关您如何连接设备的代码、以确认是否正确设置、将会更容易。 但是 、如果已连接、sl_NetCfgGet 应该可以工作。 (链接具有驱动程序 API)。 此外、UDP 不需要连接、相关信息可在 swru455m 第6.4.2节中找到。

    查询2:

    我同意您的观点、即此信息有点难找到。 但该事件使用以下结构( 可在此处找到):

     typedef struct
     {
         _u8     SsidLen;
         _u8     SsidName[32];
         _u8     Bssid[6];
         _u8     Channel;
     } SlWlanEventConnect_t;

    有关如何使用它来查找 SSID 或4个参数中的任何一个的更多信息、请 参阅此 E2E 主题

    希望这对您有所帮助、

    Rogelio Diaz

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

    感谢 Rogelio 的快速响应。  

    查询1:我已附加这两个项目。 一个用于 STA、另一个用于 AP。 请仔细阅读此内容、并告知我。

    查询2:

    此致、

    H C Trivedi


    e2e.ti.com/.../Archived-Projects-for-TI--team.zip

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

    在同一行、我向代码(针对 AP)添加了几行、以获取连接的 STA 详细信息。 我已将具有以下网络配置的笔记本电脑连接到我的 AP (使用先前连接的代码生成)。 不过、我的控制台仅显示一些奇怪的结果。 请查看图1和图2。

    图1:

    图2:

    此致、

    H C Trivedi

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

     Rogelio、您好!

    您可以检查一下吗?

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

    您好、耐受、

    我今天将介绍您的代码。 明天、我会为您提供合适的回答。

    最棒的

    Rogelio

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

    您好、Harsh、

    我运行了您的代码(确保在站点代码中调用 Connect()函数)、并且能够连接 AP 和 STA。 但是、我也遇到了同样的已知 IP 问题。 然后、我使用该站点的网络终端演示进行连接、AP 能够找到 IP 地址。 因此问题出在 STA 代码中的某个位置。 我还在调试、找到答案后、马上给您解答。

    感谢您的耐心等待、

    Rogelio

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

    Rogelio、您好!

    在您检查我的代码时、是否可以分享您所提到的示例? 以便我也可以在我的末尾检查和引用相同的内容

    此致、

    H C Trivedi

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

    您好、Harsh、  

    我没有忘记你。 删除 AP 代码中的 IPv4配置后、我能够获取 IP 和名称。

     SlNetCfgIpV4Args_t ipV4;
            ipV4.Ip = (_u32)SL_IPV4_VAL(10,1,1,201); /* IP address */
            //ipV4.IpMask = (_u32)SL_IPV4_VAL(255,255,255,0); /* Subnet mask */
            //ipV4.IpGateway = (_u32)SL_IPV4_VAL(10,1,1,1); /* Default gateway address */
            //ipV4.IpDnsServer = (_u32)SL_IPV4_VAL(8,16,32,64); /* _u32 DNS server address */
            //status = sl_NetCfgSet(SL_NETCFG_IPV4_AP_ADDR_MODE,SL_NETCFG_ADDR_STATIC,sizeof(SlNetCfgIpV4Args_t), (_u8 *)&ipV4);
            //if(status)
            //{
              //  Display_printf(display, 0, 0, "IP address could not be updated");
            //}
            //else
            //{
              //  Display_printf(display, 0, 0, "IP address updated");
            //}

    您能在侧面测试它并确认相同的结果吗?

    -Rogelio

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

    Rogelio、您好!

    由于我一直在使用 TMS570器件,因此我没有机会查看您提供的解决方法。  请给我一两天时间。 我将检查并返回给您。

    此致、

    H C Trivedi

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

    Rogelio、您好!

    我做了你建议的事情。 然而,结果没有变化。 我仍然得到相同的结果。 随附下图供您参考。

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

    您好、耐受、

    我从零开始重新导入您的示例、并确保其正常工作。 首先从 AP 和 STA 代码中删除 IP 配置

    接下来、在映像 sys.cfg 文件中、确保已启用 DHCP 服务器

    之后它应该起作用、我们可以从那里继续。 让我知道您的结果是怎样的。

    BR、

    Rogelio

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

    Rogelio、您好!

    我遵循了您提供的说明。 但结果没有变化。 请参见随附的 AP 和 STA 项目。 我是否错过了您建议的内容? 如果是、是什么? 如果没有、为什么我没有获得预期的结果?

    下面的图1显示 STA 器件已与 AP 连接。

    图2显示 AP 连接了两个设备。 一个是连接项目中配置的 STA CC3235、另一个是笔记本电脑。 但是、这两种方式都将未知 IP 显示为名称、并将随机内容显示为网关。

    e2e.ti.com/.../AP_5F00_Project.zipe2e.ti.com/.../STA_5F00_workspace.zip

    此致、

    H C Trivedi

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

    您好、Trivedi、

    让我从我的方面提供反馈。 我没有设置用于执行 TI RTOS 7代码的调试环境、但我快速检查了您的代码而不进行调试。

    STA 应用程序:

    • 您认为在调用 sl_WlanConnect()后连接到 AP 的假设不正确。 调用此 API 后、您开始 尝试连接。 处理程序 SimpleLinkWlanEventHandler()会对您进行连接。 分配 IP 地址后,将调用处理程序 SimpleLinkNetAppEventHandler()。 如果处理程序 SimpleLinkWlanEventHandler()中没有代码、则无法确定是否已连接到 AP。 是的,您可以期望在分配 IP 地址后完成 SimpleLinkNetAppEventHandler()的调用。 但如果 AP 上的 DHCP 服务器配置不正确、则可能无法执行此操作。
    • 错误的做法是不要在错误处理程序  SimpleLinkFatalErrorEventHandler() SimpleLinkGeneralEventHandler()中包含代码。 如果 NWP 或驱动程序出现任何错误、您不知道这一点。

    AP 应用:

    • 更改每个 NWP 参数后、无需调用 NWP 重新启动。 在结束时重新启动一次就足够了。
    • 代码内部缺少处理事件 SL_NetApp_EVENT_DHCPv4_LEVED 和 SL_NetApp_EVENT_DHCPv4_RELEed (在处理程序 SimpleLinkNetAppEventHandler()中)。 您无法确定客户端的 IP 地址是由 DHCP 服务器分配的。
    • 您内部的错误处理程序中缺少代码。 在这种情况下是个大问题。 让我解释一下。 我认为您的 DHCP 服务器无法正常工作。 您已将 IP 地址设置为(10.1.1.201/24),但如何设置 DHCP 服务器轮询的范围? DHCP 池范围可在 SysConfig / Uniflash 或 VIS SL_ API 中设置。 我没有安装带有最新 SysConfig 的 CCS 版本、但我认为您的 DHCP 池范围设置为10.123.45.2 - 10.123.45.254。 这是不正确的、会导致 DHCP 服务器无法启动。 您需要将 DHCP 池范围更正为与 AP 的 IP 地址位于同一子网。 DNS 服务器 IP 8.16.32.64也不正确、但我认为这不会导致您的问题。 现在、为什么错误处理程序中缺少代码是个问题。 如果错误处理程序中包含代码、您将看到错误消息、通知您的 DHCP 服务器未运行。

    很抱歉,我没有足够的时间阅读我写的内容:)

    1月

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

    您好 Jan、

    感谢您的建议。 我已经实现了大部分目标。 请查找随附的 AP 和 STA 的更新代码以供您查看。 我还有几个问题要问。 如下所述:

    1. 我根本不需要使用 DHCP。 实际上、我将静态 IP 地址分配给 AP 和 STA。 然后、我是否需要保持选中 DHCP 和 DNS 服务器框(在 image.sysconfig ->角色设置中)。 AP/STA)?  
    2. 当我从 AP 代码(SimpleLinkWlanEventHandler 内部的第252行至277行)打印已连接站点的详细信息时、仍然没有任何结果(错误结果)。 您能否检查问题所在的位置? 我尝试通过添加名为"get_device_config_parameters"的函数来调试此问题。 此函数正确打印器件网络配置详细信息(在两端、AP 和 STA)。 但是、AP 将名称显示为未知 IP、将 IP 地址显示为0.0.0.0。 我需要解决这个问题。 这仅显示正确的 MAC 值。 其余所有值均不正确。
    3. 在 AP 代码中、我在  SimpleLinkWlanEventHandler 中添加了两个事件。 一个是 SL_WLAN_EVENT_STA_ADDED、另一个是 SL_WLAN_EVENT_STA_REMOVED。 当我运行代码时、当我的 STA 连接到此 AP 时、 sl_WLAN_EVENT_STA_ADDED 内的代码 会被执行。 但是、当 STA 与该 AP 断开连接时、 不会执行 SL_WLAN_EVENT_STA_REMOVED 内的代码。 这是否意味着尽管与 AP 断开连接、但事件不会触发? 或者、这是否意味着事件被触发、但是、相应的事件处理程序没有被调用?  
    4. 根据查询3、我也面临 STA 错误处理程序的类似问题。 在 SimpleLinkWlanEventHandler 内部的 STA 平台.c 文件中、我添加了两个事件、即 sl_WLAN_EVENT_CONNECT 和 sl_WLAN_EVENT_DISCONNECT。 在这种情况下、sl_WLAN_EVENT_CONNECT 中的代码  会被执行、而 sl_WLAN_EVENT_DISCONNECT 中的代码不会执行。 可能的原因是什么?如何解决?
    5. 我已经在 AP 和 STA 之间建立了基于套接字的连接来交换数据。 套接字被创建、它们被绑定、它们被连接、然后它们都开始发送和接收代码中指定的数据。 但是、这里有一些问题:
      1. 如何确定通信以何种速率(Mbps/kbps)进行? 如何配置这些值、例如 MCS 和其他802.11参数?
      2. 我保留了两个不断更新和传输的计数器。 我可以观察到、在我的第一次跑步中、计数器1在值=9955时停止。 在我的第二次跑步中、1号柜台在13840处停止了。 逻辑上、它应达到50000、然后计数器2应增加1。 就像这样、它应该会一直运行。 为什么数据传输突然停止? 限制此值的是什么?
      3. 通信速度/数据传输似乎太慢。 在第二次迭代期间、我还删除了 printf 语句、因为它会导致处理过程中的重大延迟。 不过、观察到的速度没有显著差异。  
    6. 我使用 while (1)来连续发送和接收消息。 是否有任何其他方式(因为我使用的是 RTOS)类似任务或可用于相同目的的东西?  
    7. 可以配置 STA 中的所有参数。 我曾提到 swru455m 文档、只能确定两个参数、包括器件名称和发射 功率。 不过、我很确定我在这里被误解了、除了这两个参数、我找不到任何东西。 (虽然 AP 有很多、但 STA 也可能有一些类似的国家/地区代码等、我找不到它们)。

    以下是附加的文件:

    1. PPT、显示5.b 中所述的计数器限制以及 AP 和 STA 算法。 =>e2e.ti.com/.../CC3235-data-communication-using--UDP.pptx
    2. AP 项目=> e2e.ti.com/.../8204.AP_5F00_Project.zip
    3. STA 项目。 => e2e.ti.com/.../STA_5F00_Project.zip

    请告诉我、我是否需要从我的一方获得有关此信息的任何其他信息。

    感谢您的到来。

    此致、

    H C Trivedi

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

    您好、耐受、

    根据您之前的回答、我不确定您在 AP 模式下的 DHCP 服务器的原始问题是否通过正确设置 DHCP 池得到解决、或者您只是转换为 STA 的静态 IP。

    请等待 TI 方面的回答。 不幸的 是,我没有给你足够的时间来写你的问题应该得到的复杂的答案。 我不是 TI 员工、我在这个论坛上的自由时间回答问题、因此、我在这个论坛上的回答时间非常有限。

    我跳到这个话题、因为我认为讨论没有朝着正确的方向发展。 但现在、焊球位于 TI 端。

    1月

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

    Rogelio、TI 团队、

    到 Jan 提供了有用的见解时、你们中有人有没有机会了解这一点?

    此致、

    H C Trivedi

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

    您好、耐受、  

    很抱歉回复太晚了。 我今天快速浏览了您的新代码。

    首先、 sl_NetCfgGetStaInfo 仅通过使用 DHCP 工作(在发送的编码器的第二次迭代中、您忘记注释掉此行)

    这就是它可能 不适合您的原因。  

    如果您选择使用静态 IP、那么您就知道它是什么 IP、不需要找到它了?   

    sl_close 命令位于 while 循环之外、除非关闭套接字 、否则即使断开连接也不会发生、因此 sl_WLAN_EVENT_STA_REMOVED 永远不会运行。

    我建议 您遵循在其自身的名为 echoFxn (代码 btw 中仍有)线程中发生传输的演示结构

    在变速器的末端、插座关闭

    我不确定数据 传输的突然停止及其随机原因、我假设它是由回声 Fxn 线程导致的。

    此致、

    Rogelio

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

    Rogelio、您好!

    [引用 userid="525828" URL"~/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum 1118546/launchxl-cc3235s-sta-a-ap-connection-regard/4192868#4192868"]如果选择使用静态 IP、那么您就知道它是什么 IP、不需要找到它?   [/报价]

    我想查看与我的 AP 连接的所有不同站点的详细信息。 因此、我希望这些行是我的代码的一部分。 如您所建议的那样、如果在未使用 DHCP 的情况下无法使用这些线路、那么是否有其他方法可用于检查已连接站点的详细信息?

    [引用 userid="525828" URL"~/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum 1118546/launchxl-cc3235s-sta-a-ap 连接-关于/4192868#4192868"] sl_close 命令超出 while 循环范围,除非关闭套接字,否则甚至不会断开连接,因此  sl_WLAN_EVENT_STA_REQUEST_UNE 运行[引用/从不删除]。

    我将检查这些线路并返回给您。

    [引用 userid="525828" URL"~/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum /1118546/launchxl-cc3235s-sta-a-ap 连接-regard/4192868#4192868"]我不确定数据 传输突然停止以及数据传输为何随机发生,我认为这是由于回声 Fxn 线程造成的。

    我将尝试 在 Thread 中实现发送和接收功能。 同时、您能否检查变速器突然停止的可能原因?

    在我之前的答复中,仍有许多问题未解决。 您是否也可以为他们建议权变措施? 请在下面提供相同的报价、以供您参考。

    [引用 userid="488031" URL"~/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum 1118546/launchxl-cc3235s-sta-to ap-connection-regard/4189331#4189331"]
    • 我根本不需要使用 DHCP。 实际上、我将静态 IP 地址分配给 AP 和 STA。 然后、我是否需要保持选中 DHCP 和 DNS 服务器框(在 image.sysconfig ->角色设置中)。 AP/STA)?  
    • 当我从 AP 代码(SimpleLinkWlanEventHandler 内部的第252行至277行)打印已连接站点的详细信息时、仍然没有任何结果(错误结果)。 您能否检查问题所在的位置? 我尝试通过添加名为"get_device_config_parameters"的函数来调试此问题。 此函数正确打印器件网络配置详细信息(在两端、AP 和 STA)。 但是、AP 将名称显示为未知 IP、将 IP 地址显示为0.0.0.0。 我需要解决这个问题。 这仅显示正确的 MAC 值。 其余所有值均不正确。
    • 在 AP 代码中、我在  SimpleLinkWlanEventHandler 中添加了两个事件。 一个是 SL_WLAN_EVENT_STA_ADDED、另一个是 SL_WLAN_EVENT_STA_REMOVED。 当我运行代码时、当我的 STA 连接到此 AP 时、 sl_WLAN_EVENT_STA_ADDED 内的代码 会被执行。 但是、当 STA 与该 AP 断开连接时、 不会执行 SL_WLAN_EVENT_STA_REMOVED 内的代码。 这是否意味着尽管与 AP 断开连接、但事件不会触发? 或者、这是否意味着事件被触发、但是、相应的事件处理程序没有被调用?  
    • 根据查询3、我也面临 STA 错误处理程序的类似问题。 在 SimpleLinkWlanEventHandler 内部的 STA 平台.c 文件中、我添加了两个事件、即 sl_WLAN_EVENT_CONNECT 和 sl_WLAN_EVENT_DISCONNECT。 在这种情况下、sl_WLAN_EVENT_CONNECT 中的代码  会被执行、而 sl_WLAN_EVENT_DISCONNECT 中的代码不会执行。 可能的原因是什么?如何解决?
    • 我已经在 AP 和 STA 之间建立了基于套接字的连接来交换数据。 套接字被创建、它们被绑定、它们被连接、然后它们都开始发送和接收代码中指定的数据。 但是、这里有一些问题:
      1. 如何确定通信以何种速率(Mbps/kbps)进行? 如何配置这些值、例如 MCS 和其他802.11参数?
      2. 我保留了两个不断更新和传输的计数器。 我可以观察到、在我的第一次跑步中、计数器1在值=9955时停止。 在我的第二次跑步中、1号柜台在13840处停止了。 逻辑上、它应达到50000、然后计数器2应增加1。 就像这样、它应该会一直运行。 为什么数据传输突然停止? 限制此值的是什么?
      3. 通信速度/数据传输似乎太慢。 在第二次迭代期间、我还删除了 printf 语句、因为它会导致处理过程中的重大延迟。 不过、观察到的速度没有显著差异。  
    • 我使用 while (1)来连续发送和接收消息。 是否有任何其他方式(因为我使用的是 RTOS)类似任务或可用于相同目的的东西?  
    • 可以配置 STA 中的所有参数。 我曾提到 swru455m 文档、只能确定两个参数、包括器件名称和发射 功率。 不过、我很确定我在这里被误解了、除了这两个参数、我找不到任何东西。 (虽然 AP 有很多、但 STA 也可能有一些类似的国家/地区代码等、我找不到它们)。
    [/报价]

    BR、

    H C Trivedi