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.

[参考译文] CC3220:sl_NetAppDnsGetHostByName 为"Provisioning_quot;和"out_for_box&quot 进行分块;但对于"HttpGet"演示它有效

Guru**** 2555630 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/692022/cc3220-sl_netappdnsgethostbyname-blocking-for-provisioning-and-out_of_box-but-for-httpget-demo-it-works

器件型号:CC3220

您好!

我注意  到、在最新的 CC3220 2.10.00.04 SDK 中、函数 sl_NetAppDnsGetHostByName 阻止了"配置"和"out_for_box"演示项目、但对于"HttpGet "、它可以正常工作。

这两个项目之间有何区别?  为什么 sl_NetAppDnsGetHostByName 在"HttpGet "演示项目上工作?

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

    您何时调用此函数? 配置和开箱即用示例的配置完成后、是否会执行此操作?

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

    在以下函数获取 IP 地址后:"SimpleLinkNetAppEventHandler -> Case SL_NetApp_EVENT_IPv4_Acquired:"
    我设置了一个标志、我可以访问互联网、我的函数"sl_NetAppDnsGetHostByName"可以被调用。
    作为基础项目、我使用的是"配置"、我可以访问互联网。
    此函数不返回的原因是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我认为您需要等待配置完成、而不仅仅是等待获取的 IP 返回。  我在要测试的主线程末尾向 out_for_box.c 添加了以下内容:

    //等待配置完成
    SEM_WAIT (Provisioning_ControlBlock.provisioningDoneSignal);)
    SEM_post (Provisioning_ControlBlock.provisioningDoneSignal);)
    //执行 DNS 查找
    _u32 DestinationIP;
    _u32 AddrSize;
    _i16 SockId;
    SlSockAddrIn_t Addr;
    SL_NetAppDnsGetHostByName ("www.google.com、strlen ("www.google.com)、&DestinationIP、SL_AF_iNet);
    UART_PRINT("[NetApp 事件] IPv4 for Google.com:%d.%d.%d.%d \n",\
    (uint8_t) sl_IPv4_byte (DestinationIP、3)、\
    (uint8_t) sl_IPv4_byte (DestinationIP、2)、\
    (uint8_t) sl_IPv4_byte (DestinationIP、1)、\
    (uint8_t) sl_IPv4_byte (DestinationIP、0)); 

    我在 UART_PRINT 上添加了一个断点、并确认它开箱即用。

    此致、

    VR