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.

[参考译文] CC3100BOOST:SDK 中的 HTTP 客户端示例;在8个 Get 请求后发送重复请求(每分钟1个)失败

Guru**** 2392905 points
Other Parts Discussed in Thread: CC3100, CC3100SDK, CC3100BOOST

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/572007/cc3100boost-http-client-example-from-sdk-sending-repeated-requests-1-per-min-fails-after-8-get-requests

器件型号:CC3100BOOST
主题中讨论的其他器件:CC3100CC3100SDK

你(们)好 我有一个 msp430f5529lp 和 cc3100boost、并已从 cc3100sdk_1.2.0中修改了 http_client 示例。 我的应用程序应每分钟从远程服务器获取数据1小时。 正如当前设置的那样、它将执行前8个 Get 请求、然后在对 ConnectToHTTPServer 的调用中对 HTTPCLI_CONNECT 的调用失败。 通过监控服务器端的请求、我发现不再有来自 cc3100客户端的请求(第8次之后)、我的路由器指示该设备仍与 IP 连接。 我可以将客户端发出的请求之间的持续时间更改为每2分钟一次、并且仍然只发出8个请求、因此这似乎不是一个超时问题。

我搜索了 SDK 文件、发现函数 HTTPCLI_析 构、删除、断开仅在 netapps/http/client/httpcli.c 和.h 文件中找到、因此 SDK 中的 http_client 示例不使用它们。 似乎没有毁坏过 httpcli 结构。

下面是主函数中应用程序的总体设计。 我已经尝试了其他排列(例如、器件的启动位置、在进入循环之前与 AP 建立连接)以及相同的问题。 我的问题是1)这是管理使用此频率发出的请求(1个请求/分钟)的适当方法吗? 2) 2)我应该在每个周期中删除并(重新)创建 https 客户端结构吗? 如有必要、我很乐意发布所有相关代码。 感谢您的任何建议!

代码设计概述

配置时钟等

将 cc3100器件配置为默认状态

永远循环

检查分钟是否已过去

使用 sl_Start 初始化3100

与 AP 建立连接

连接到 HTTP 服务器

发送 HTTP GET 并处理响应

使用 sl_Stop 停止3100

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我应该补充的是、所有 HTTP GET 请求都是相同的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Nick、

    如果您只调用一次 HTTPCLI_CONNECT、但发出多个 GET 请求、我认为这应该可以解决

    亚伦
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    应该对此进行更多思考。 正如我说过的、SDK 示例未使用 HttpCli_disconnect (实际上、我认为服务器会这样做)。 在使用 HTTPCLI_DISCONNECT 并将 HTTPCLI_构建 从 ConnectToHTTPServer 的调用中拉出后、我有一个系统在我需要的时间内重复 HTTP GET 请求。
    现在、我需要在运行 ConnectToHTTPServer 之前测试是否需要重新建立与 AP 的连接。 有什么关于如何做到这一点的建议? sl_common.h 中似乎有一个 GET_STATUS_BIT 宏可供我使用。 是否有人知道我应该测试 STATUS_BIT_IP_LEVED 位是否被设置、或者最好测试 STATUS_BIT_IP_ACQUIRED 位是否被设置? 再次感谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Aaron。 出于某种原因、使用 platform/msp430f5529lp/example_project_css 文件夹中的 http_client 示例、只调用一次 HTTPCL_connect 并发出多个 GET 请求对我无效。 正如我在上面指出的、这是通过每次连接和断开来解决的。 我的问题是通过检查 GET_STATUS_BIT 来确定与 AP 的连接是否已关闭(出于任何原因)、但我可能会在另一个线程中发布该连接(如果没有人响应)、然后我将通过验证答案来关闭此线程。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Nick、

    只要您的事件处理程序针对 AP 连接、AP 断开和 IP 获取对其进行了适当设置、您就应该能够检查状态位以确定连接状态。 STATUS_BIT_IP_ACQUIRED 是检查与 AP 连接的正确方法。

    亚伦