イーサネットシールドを使用してArduino Unoのスケッチを作成しようとしています。コードをデバッグするためにArduino シミュレーターを使用しています。関数で問題が発生した場所は次のとおりです。 loop()
void loop() {
while (!ConnectServer());
while (client.connected()) {
int i = 0;
char c = 'o';
while (client.available()) {
c = client.read();
if(c == ';')break;
commandBuff[i++] = c;
}
commandBuff[i] = '\0'; //Skip this line
ParseCommand(commandBuff); //And this line
}
if (!client.connected()) {
client.stop();
}
}
問題は、;
入力から を取得するときです。内部ループから抜け出すだけでなく、内部 while ループの外側の 2 つのコード行もスキップします。while
そして、外部ループの条件文に戻ります....
これは と関係があるとは思いませんConnectServer()
が、それでもコードを貼り付けています。
bool ConnectServer() {
char response;
if (client.connect(server, 80)) {
client.println("EHLO");
response = client.read();
if (response == 'e') {
return true;
}
}
else {
return false;
}
}
問題を解決するにはどうすればよいですか?