1

イーサネットシールドを使用して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;
    }
}

問題を解決するにはどうすればよいですか?

4

1 に答える 1