1行読み込めたら、解析処理に放り込む…って感じでしょうか。
BOOL TransGGA(unsigned char *Recv)
{
BOOLl Result = FALSE;
if(Recv && strncmp(Recv, "$GPGGA,", strlen("$GPGGA,")) == 0) {
unsigned char SumCalc;
unsigned char *SumPt;
for(SumPt = Recv, SumCalc = *SumPt;*SumPt && *SumPt != (unsigned char)'*';SumPt++, SumCalc += *SumPt);
if(*SumPt && SumCalc == (unsigned char)strtol(SumPt, NULL, 16)) {
/* strtok()などで','で区切って解析。 */
/* 正しく解析できたらResult = TRUE; */
}
}
return Result;
}
とりあえず、こんなトコですかねぇ……。
動作は未確認。というかGPSのデータ送信してくれる機器無いですし。
# GPS内蔵機器はいくつかありますがWindowsにシリアル接続でデータ渡せないし。
先頭の特定文字があるかどうかを判定して、チェックサムの算出&判定してます。
その後の','で区切って…ってのはCSV解析とかでよく出てくる例ですから、
検索するとそれらしいモノは見つかるでしょう。
トークン区切りできたら、$GPGGA formatの仕様に沿って変換したりとか……。
# strtok()だと、元の文字列破壊したかと思いますので、その辺りはよろしく処理してください。
お礼
お礼が遅くなってしまって申し訳ないです。提示していただいた方法で現在やっているところです。早々のご回答ありがとうございました。