GPSモジュールについて

mbed についてのご質問はこちら。情報交換などにもご利用ください。

GPSモジュールについて

投稿記事by 吉田幸司 » 2014年5月18日(日) 14:29

こんにちは、唐津東高校 吉田です。

以前も質問させていただいたのですが、GPSモジュールについてまた行き詰ったところがあったので質問させていただきます。

下のように緯度、経度のみを表示するプログラムを書き、実行したところ、一度目のデータは期待した通りの結果が返ってきたのですが、
その後データが表示されません。iの値をそろえるために書いた
コード: 全て選択
  if(strncmp(GPS,"$GPRMC",6) == 0){...}

の部分を消去するとデータが表示されるので(ずれている値です)
この部分が影響しているのだと思うのですが、どのように修正すればよいでしょうか
よろしくお願いします。
コード: 全て選択
#include "mbed.h"

DigitalIn mysw(p29);

Serial gps(p9,p10);

LocalFileSystem local("local");

int main(){
    gps.baud(38400);
    FILE*fp=fopen("/local/local.txt","a");
   
       char GPS[377]; //377はGPSモジュールで取得に成功した時の一回分の位置情報の文字数です
       
       while(1){
         for(int i = 0;i<377; i++){
          GPS[i] = gps.getc();
          }
         
        if(strncmp(GPS,"$GPRMC",6) == 0){

        printf("ido:%c%c%c%c%c%c%c%c%c\nkeido:%c%c%c%c%c%c%c%c%c%c\n",
                GPS[20],GPS[21],GPS[22],GPS[23],GPS[24],GPS[25],GPS[26],GPS[27],GPS[28],
                GPS[32],GPS[33],GPS[34],GPS[35],GPS[36],GPS[37],GPS[38],GPS[39],GPS[40],GPS[41]);
                                               }
                }
}
吉田幸司
 
記事: 23
登録日時: 2013年12月29日(日) 15:01
お住まい: 佐賀県

Re: GPSモジュールについて

投稿記事by yamaguch » 2014年5月19日(月) 12:03

吉田さん、こんにちは、

GPS データは1行単位で、毎回行の長さが異なります。
行の最後を判断するような処理を追加すればうまくいくんじゃないでしょうか?

山口
yamaguch
 
記事: 482
登録日時: 2010年7月06日(火) 17:37

Re: GPSモジュールについて

投稿記事by 吉田幸司 » 2014年5月19日(月) 17:22

山口様こんにちは、返信ありがとうございます。

行ごとの取得にするとおおよそ期待通りができました。

ありがとうございました。またよろしくお願いします。
吉田幸司
 
記事: 23
登録日時: 2013年12月29日(日) 15:01
お住まい: 佐賀県


Return to mbed 質問箱

cron