Bye Bye Moore

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

substring関数で文字列から特定の部分を切り出す

LL言語にありがちな、文字列の一部を切り取る関数はArduinoにもあります。
substring関数という奴で、わりと高速に動いてくれます

実際のところ

NMEAパケットのGPGGAから経度・緯度を拾う処理は以下の通り。
もっとも、これだと信号未受信の時の対処ができてないですが

void setup() {
  Serial.begin(115200);
  while (!Serial) {;}

  String base = "$GPGGA,144037.000,3538.9244,N,13932.5461,E,1,4,1.49,99.4,M,39.3,M,,*66";
  Serial.println(base.substring(28-10, 28-1)); //latを示すNが28文字目。北緯は90~0°

  Serial.println(base.substring(41-11, 41-1)); //lonを示すEが41文字目。東経は180~0°
}

void loop() {
}