Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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() {
}