Arduinoで作業していますが、String.substringが正しく動作していないようです。そのため、何が間違っているのでしょうか。
私の機能は次のとおりです。
boolean processSerial()
{
String buf;
int iter = 0;
char thisChar;
while(iter < 1000){
if (Serial.available()) {
#if ARDUINO >= 100 //For Arduino v1.0+
{
thisChar = Serial.read();
buf += thisChar;
//if(DEBUG){Serial.print(thisChar);}
}
#else //For Arduino v0023 or earlier
thisChar = Serial.read();
#endif
}
iter++;
}
Serial.print(buf);
Serial.print(buf.substring(0,10));
if(buf.substring(1) == "GPGGA"){
Serial.println("FOUND IT!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
}
Serial.println("And we're done");
}
パターン「GPGGA」が表示されますが、サブストリングがtrueを返していません。
私のシリアルからの出力は次のとおりです。
$GPGGA,053540.000,3804.1237,N,07615.5232,W,1,7,1.39,117.5,M,-33$GPGGA,053And we're done
したがってbuf
、文字列には明らかに「GPGGA」が含まれています。'GPGGA'を再び示す最後の小さなビットは、文字列に0から10までの文字を出力することです。私のif
ステートメントがtrueを返さないのはなぜですか?