0

我有一个连接到我的 Arduino 的 GPS 单元,它输出大量我想过滤的数据。

这是输出的一个片段:

$ÇÐÇÇÁ,175341.458,3355.7870,Ó,01852.4251,Å,1,03,5.5,-32.8,Í,32.8,Í,,0000*57 $ÇÐÇÓA,Á,2,31,32,20,,,,,, ,,,,5.6,5.5,1.0*30 $ÇÐÒÍÃ,175341.458,Á,3355.7870,Ó,01852.4251,Å,0.17,223.13,060812,,*1C $ÇÐGÇÁ,175342.458,3355.7871,Ó,1,01852 03,5.5,-32.8,Í,32.8,Í,,0000*55 $GÐÇÓÁ,Á,2,31,32,20,,,,,,,,,,5.5,5.5,1.0*33 $ÇÒÍC,175342.458 ,Á,3355.7871,Ó,01852.4251,Å,0.22,4.85,060812,,*10 $ÇÐÇÇÁ,175343.458,3355.7872,S,01852.4251,Å,1,03,5.5,-32.8,Í,32.8,Í,,0000 *57

这是通过以下方法读入的:

char GPSread()
{
  byte val = 0;
  while (digitalRead(GPSrx));
  //wait for start bit
  if (digitalRead(GPSrx) == LOW)
  {
    delayMicroseconds(halfBit4800Delay);
    for (int offset = 0; offset < 8; offset++)
    {
        delayMicroseconds(bit4800Delay);
        val |= digitalRead(GPSrx) << offset;
    }
    //wait for stop bit + extra
    delayMicroseconds(bit4800Delay);
    delayMicroseconds(bit4800Delay);
    return val;
  }
}

我的目标

我正在尝试过滤此数据以仅获取$ÇÐÇÇÁ以使用此行中的数据开头的行。我不熟悉将字符串作为char[].

我的尝试

所以我目前正在尝试将这些值读入 a char[],然后当我得到匹配时,$ÇÐÇÇÁ我知道我有这条线。但我发现这让我陷入困境:

char dataformat [12] = "$ÇÐÇÇÁ";
Serial.println(dataformat [0]);
Serial.println(dataformat [1]);
Serial.println(dataformat [2]);
Serial.println(dataformat [3]);
Serial.println(dataformat [4]);
Serial.println(dataformat [5]);

输出为

美元
_

一个

一个

这与我在 init 中插入的字符不同dataformat[]。我知道这是一个编码的事情,但不知道如何去做。

问题

我如何过滤这些数据以仅获取我想要的行?

4

0 回答 0