Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

startsWith関数で

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
...