startsWith関数は引数に指定した文字列を持っていた場合true/falseを返す関数です。
実際のところ
前回のコードを元に、GPS受信パケットから"$GPGGA"を切り出すのは以下の通り
#include <SoftwareSerial.h> #define SOFT_RX 10 #define SOFT_TX 11 SoftwareSerial mySerial(SOFT_RX, SOFT_TX); String strBuf = ""; char buffWord = 0; void setup() { mySerial.begin(9600); Serial.begin(115200); while (!mySerial && !Serial) {;} Serial.println("GPS Logging..."); } void loop() { if (mySerial.available() > 0) { buffWord = mySerial.read(); strBuf = strBuf + "" + buffWord; if (buffWord == 0x0d) { if(strBuf.startsWith("$GPGGA")) { Serial.println(strBuf); } strBuf = ""; } } }
動くと、こんな感じになります
GPS Logging... $GPGGA,155927.000,,,,,0,0,,,M,,M,,*45 $GPGGA,155929.000,,,,,0,0,,,M,,M,,*4B $GPGGA,155932.000,,,,,0,0,,,M,,M,,*41 $GPGGA,155934.000,,,,,0,0,,,M,,M,,*47 $GPGGA,155936.000,,,,,0,0,,,M,,M,,*45 $GPGGA,155937.000,,,,,0,0,,,M,,M,,*44 $GPGGA,155939.000,,,,,0,0,,,M,,M,,*4A ...