2016-07-15 61 views
0

我對Arduino非常新穎,我堅持使用Arduino代碼,我需要從客戶端接收多個連續請求,並在Arduino板中更新值。我正在使用帶有Arduino和aRest庫的以太網板來向Arduino開發板提供RESTFul服務。在aRest arduino中接收多個客戶端請求作爲web服務器

請檢查下面的代碼,讓我知道我應該怎麼修改或編輯,以達到以下要求(請注意,我有評論看門狗相關的代碼),

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

我需要接收多個(順序)通過EthernetClient從客戶端發出請求並根據收到的輸入更新電機速度。當我運行下面的代碼時,

  • 看門狗 - 它重置板,並因爲它在4秒後電機關閉,這不是我想要的。
  • 沒有看門狗 - 它根本沒有收到第二個請求,這意味着服務器在服務第一個請求後根本沒有響應,我收到服務器的即時響應。
+1

投票下來的問題沒有任何評論的意思是什麼?這裏缺少什麼? –

+0

您可以顯示您正在編寫的代碼和/或請求嗎?您可能不會在發送第二個連接之前關閉連接,請嘗試將此標頭添加到您的請求中:「Connection:close」在發送值後立即完成連接。 – George

+0

嗨,喬治。我能夠弄清楚這個問題,我很快就會分享我的發現。儘管代碼可以從我從Github分享的鏈接中看到。由於格式化問題,我無法在此處放置代碼,因此我在Github上分享了它。 –

回答

0

對不起遲到了這個,但這裏是我對上面我面臨的問題的發現。

因此,它與代碼庫無關,它看起來像我的電路有一些問題(主要是我的電阻),所以當我打電話analogWrite值高於80佔空比它導致我的EthernetServer永遠掛起。我已經測試了值在0到80之間的值,並且按照預期工作正常。

我能夠實現所需的行爲0到80佔空比爲我的POC所以沒有糾正我的電路。希望這可以幫助某人解決類似問題。

0

由於代理問題,我無法從這裏訪問您的代碼,但是我很久以前在嘗試將我的板配置爲服務器時遇到類似的問題。基本上,我的服務停止響應第二個請求的原因是內存不足。重構我的代碼並利用定時器而不是控制主代碼的轉換幫助我解決了這個問題。嘗試使用下面的庫文庫讓你留意你的記憶。

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

相關問題