我有一个连接到我的 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[]
。我知道这是一个编码的事情,但不知道如何去做。
问题
我如何过滤这些数据以仅获取我想要的行?