- ベストアンサー
GPSデータ受信プログラムで表示されるデータが正しくありません
- 私は現在、GPSから受信したデータをRS232Cで接続したPCに表示させるプログラムを作成していますが、表示されるデータが正しくありません。
- 開発環境はUNIXのC言語で、GPSはGARMIN社のgeko201(ハンディGPS)を使用しています。
- RS232CでPCに接続して受信したNMEAセンテンス(ボーレート:4800)を表示したいのですが、コードの設定やアルゴリズムに問題があるようです。参考になる資料やヒントがあれば教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>どのようにNo2やNo3のページを探索したのかも 基本的にキーワードを入力しただけです。 「GPS」に限定すると、情報が偏ってしまうので、より大きな枠組みとして、 Googleで、「シリアル RS-232C C」で検索しました。 そこでヒットした 「Linuxでシリアル通信(RS232C) - 佐藤伸吾(akio0911)のデジタルライフハック」というページの中にリンクとして貼ってあったものです。 パーサーについては、 「NMEA C Parser」で検索して、4件目ぐらいにヒットしました。 では、完成まで頑張って下さい。
その他の回答 (3)
- hidebun
- ベストアンサー率50% (92/181)
あ、NMEA183センテンスのパーサーライブラリ (C言語で書かれているもの)もみつけたので、 もし文字列が受信できたら、使ってみて下さい。 http://www.dmh2000.com/nmea/nmeap.shtml テストプログラムも梱包されているようなので、 すぐに使えると思います。
- hidebun
- ベストアンサー率50% (92/181)
こんな感じのプログラムを書いているのでしょうか。 http://0n0.fc2web.com/paso/serial/serial00.html > 2c8080803030301………といったデータが表示されてしまいます。 ハイパーターミナルでNMEA出力の確認が取れているのに、 受信プログラムの取得処理で、このような文字列が取得されるのでしょうか? プログラム貼り付けてもらったほうが、多くの方からアドバイスが得られると思いますが。
お礼
hidebunさん、お忙しい中何度も助言頂きありがとうございます。 >http://0n0.fc2web.com/paso/serial/serial00.html 上記のURLがまさしく探し求めていたもので非常に参考になりました。 本当にありがとうございます。 お礼のポイントはどうすれば提供できるのでしょうか。 また、今回私が探し回ってたどり着くことができなかった有効なページを、hidebunさんが瞬時に探し当ててくださったことに驚嘆しております。今後のデータへのアプローチの参考にしたいのでhidebunさんがどのようにNo2やNo3のページを探索したのかも、よろしければ是非教えて頂きたいです。
- hidebun
- ベストアンサー率50% (92/181)
全くGPSについて詳しくないのですが、 本体側の設定は、 http://www.rakuten.co.jp/gps/385104/464629/464680/#NMEAOUTSET のようにして、NMEA形式で出力する設定になっているのですか? また、このページには、 > 測位結果を、 > パソコンに添付されているハイパーターミナル等のソフトで、 > 実際に目で見て確認することができます。 とありますので、Windowsをお持ちなら、ハイパーターミナルで 一度出力データの確認をされてはいかがでしょうか。 設定さえきちんとしていれば、NMEA書式でデータが送られてくる のではないかと思います。 まずは出力側の確認が先決だと思います。
補足
早急な対応本当にありがとうございます。ハイパーターミナルの4800bpsでNMEAデータの取得は確認できました。 しかし今回作成したいプログラムはRS232Cを制御することを踏まえた受信データの表示プログラムです。説明不足で申し訳ございません。 GPSが受信したデータをパソコンに表示する方法がわからず、質問させていただきました。NMEA形式の文字と数字の組み合わせのデータを読み込んで表示するにはどのようにプログラミングをすればよいでしょうか。アドバイスがあればよろしくお願いいたします。
お礼
とても勉強になりました。なんとかプログラムを完成することができ、先に進むことができます。本当にありがとうございました。