【问题标题】:Receive multiple client request in aRest arduino as web server在 aRest arduino 作为 Web 服务器接收多个客户端请求
【发布时间】:2016-07-15 18:07:16
【问题描述】:

我对 Arduino 很陌生,我被 Arduino 代码困住了,我需要从客户端接收多个顺序请求并更新 Arduino 板中的值。我正在使用带有 Arduino 和 aRest 库的以太网板来公开带有 RESTFul 服务的 Arduino 板。

请检查下面的代码,让我知道我应该修改或编辑什么来实现以下要求(注意我已经评论了看门狗相关的代码),

https://gist.github.com/shaikhmshariq/36264bf20f24faf078c4155542fc6836

我需要通过 EthernetClient 接收来自客户端的多个(顺序)请求,并根据收到的输入更新电机速度。当我运行下面的代码时,

  • 使用看门狗 - 它会重置电路板,因此电机会在 4 秒后关闭,这不是我想要的。
  • 没有看门狗 - 它根本不会收到第二个请求,这意味着服务器在处理第一个请求后根本没有响应,我收到了来自服务器的即时响应。

【问题讨论】:

  • 不加评论就否决这个问题是什么意思?这里缺少什么?
  • 您能显示代码和/或您提出的请求吗?您可能不会在发送第二个之前关闭连接,请尝试将此标头添加到您的请求中:Connection: close 以在发送值后立即完成连接。
  • 嗨,乔治。我能够找出问题所在,我将很快分享我的发现。虽然您可以从我从 Github 共享的链接中看到代码。由于格式问题,我无法将代码放在这里,所以我在 Github 上分享了它。

标签: arduino ethernet


【解决方案1】:

由于代理问题,我无法从这里访问您的代码,但是很久以前,当我尝试将我的板配置为服务器时,我遇到了类似的问题。基本上,我的服务停止响应第二个请求的原因是内存不足。重构我的代码并使用计时器而不是从主代码中控制一切帮助我克服了这个问题。尝试使用下面的库来保持你的记忆。

http://playground.arduino.cc/Code/AvailableMemory

【讨论】:

    【解决方案2】:

    很抱歉迟到了,但这是我对上述问题的发现。

    所以这与代码库无关,看起来我的电路有一些问题(主要是我的电阻器)所以当我以高于 80 占空比的值调用 analogWrite 时,它导致了我的 @ 987654322@永远挂着。我已经测试了 0 到 80 值之间的值,并且按照预期工作正常。

    我的 POC 能够以 0 到 80 的占空比实现所需的行为,因此没有纠正我的电路。希望这可以帮助某人解决类似问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      • 1970-01-01
      • 2010-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多