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.

[参考译文] CC3235S:HTTP 客户端 API 响应超时

Guru**** 2487425 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1221723/cc3235s-http-client-api-response-timeout

器件型号:CC3235S
"Thread:SysConfig"中讨论的其他器件

您好!

我使用的是 TI Simplelink SDK 中的 HTTP 客户端示例程序。 我正在从 HTTP 服务器下载4MB 文件大小。 此数据下载一块16KB。 因此 API - HttpClient_readResponseBody (httpClientHandle、data、sizeof (data)、&moreDataFlag); 被重复调用。

但是、如果网络断开连接、我会观察到我的程序在此 API 中卡滞了5分钟。 我认为这是默认超时。 我想减少该超时时间、但无法找到如何执行该操作? 您能在此处帮助我了解如何将该超时设置为不同的值吗?

谢谢。

Pradeep

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

    您得到了什么错误代码?

    您是否在 SimplelinkWlanEventHandler 中收到异步断开连接事件? 就在5分钟之前?

    基本上、http 在接收套接字上等待而没有任何超时。

    您可以更新 httpclient.c (例如在 getChunedData 中、只调用 SlNetSock_recv)、以便使用套接字选项配置超时。

    完成此操作后、您将需要重新构建 httpclient 库、然后再重新构建应用程序。

        - SLNETSOCK_OPSOCK_RCV_TIMEO:
        \code
            struct SlNetSock_Timeval_t timeVal;
            timeVal.tv_sec =  1; // Seconds
            timeVal.tv_usec = 0; // Microseconds. 10000 microseconds resolution
            SlNetSock_setOpt(SockID, SLNETSOCK_LVL_SOCKET, SLNETSOCK_OPSOCK_RCV_TIMEO, (uint8_t *)&timeVal, sizeof(timeVal)); // Enable receive timeout
        \endcode
        <br>
    

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

    无错误代码。 返回值为0。

    是的、 一旦网络断开、我就会在 SimplelinkWlanEventHandler 中收到异步断开连接事件。 但是 API - HttpClient_readResponseBody ()被卡住, 5分钟内没有出现。 5分钟后、它返回值为0。

    如何构建 httpclient 库? 是否有任何文档?

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

    请参阅 /docs/simplelink_mcu_sdk/Quick_Start_Guide.html (检查"build-core-libs"部分)。

    您应该参考"makefile"下的"makefile" /source/ti/net /"-将构建所有网络服务。

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

    我尝试构建库并得到以下错误:

    d:\ti\simplelink_cc32xx_sdk_4_10_00_07\source\ti\net>d:\ti\xdctools_3_61_00_16_core\gmake.exe
    正在构建软件包...
    xdctools_3_61_00_16_core\gmake.exe:***[d:/ti/xdctools_3_61_00_16_core \packages\XDC\Bld\XDC_top.mak:374:_startime]错误127
    gmake:***[makefile:49: all]错误2.

    我已经更新了 imports.mak 中用于工具路径的路径、如下所示:

    xdc_install_DIR ?= d:/ti/xdctools_3_61_00_16_core
    SysConfig_tool?= d:/ti/ccs1120/ccs/utils/sysconfig_1.12.0/sysconfig_cli.bat

    FreeRTOS_INSTALL_DIR ?= D:/Simplelink/FreeRTOSv202112.00

    CCS_ARMCOMPILER ?= d:/ti/ccs1120/ccs/tools/compiler/ti-cgt-arm_20.2.0.LTS
    gcc_armCOMPILER ?= c:/ti/ccs1000/ccs/tools/compiler/gcc-arm-none-eabi-9-2019-q4-major-win32
    IAR_ARMCOMPILER ?= c:/Program Files (x86)/IAR Systems/Embedded Workbench 8.4/ARM

    请提供建议。

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

    我不确定问题出在哪(我使用的是最新的 SDK、CCS 和 XDC 工具)。

    另一种选择是将 httpclient.c 复制到您的 applicationobn 项目并在那里更改(&build)。 构建后、目标文件将覆盖库中的内容。  

    (请注意、您可能需要更新项目的包含路径)。