为什么我的代码从来没有得到命令重启?
问题描述:
它保持失败,失败和失败。为什么我的代码从来没有得到命令重启?
Arduino YUN我有此代码。它必须去一个网站,并得到一个值“重新启动”,如果值“重新启动”发现它做的动作,如果“重新启动”不,然后别的什么都不做。
有时重启命令正在工作,但它并不总是工作,这让我很难过。
有谁知道为什么我的代码不工作?
#include <Bridge.h>
#include <HttpClient.h>
String result = String("");
void setup() {
delay(5000);
pinMode(2, OUTPUT);
Bridge.begin();
digitalWrite(2, HIGH);
}
void loop() {
HttpClient client;
// PIN 2
client.get("http://www.example.com/output.php?value=reboot");// output.php outputs the value reboot and the reset the value to empty string. after 10 second php puts the value to reboot and then put the value to empty.
result = "";
while (client.available()) {
char c = client.read();
result = result + c;
}
if(result.indexOf("reboot") >= 0) {// this keeps failing, sometime working and sometime not working
digitalWrite(2, LOW);
delay(3000);
digitalWrite(2, HIGH);
}
delay(7000);
}
答
它工作。
#include <Bridge.h>
#include <HttpClient.h>
String result = String("");
void setup() {
delay(5000);
pinMode(2, OUTPUT);
Bridge.begin();
digitalWrite(2, HIGH);
}
boolean was_on = false;
void loop() {
HttpClient client;
// PIN 2
client.get("http://ok.example.com/ajax/light");
delay(500);
result = "";
while (client.available()) {
char c = client.read();
result = result + c;
}
if(result.indexOf("reboot") >= 0) {
digitalWrite(2, LOW);
delay(2000);
was_on = true;
} else {
if(was_on) {
digitalWrite(2, HIGH);
delay(1000);
was_on = false;
}
}
delay(3000);
}
当你用每个字符记录'client.read()'时,你有什么? –
如果你把'http://www.example.com/output.php?value = reboot'放到一个普通的web-broser中,它是否一直工作,还是仍然有同样的问题? *网络服务器发回了什么? –
1)client.read()是每个字符2)当我在curl或wget或浏览器上打开url时,我始终值得正确地进入“reboot” – YumYumYum