« C#で Way Point収集ツール (^-^) | トップページ | お買い物 (^-^) »

2007年11月26日 (月)

Way Point Sampling Tool ベータ版(未テスト)

3連休でこんなのものを作ってみました。

Way Point Sampling Tool ( .NET Framework 2.0対応)

「WPSamplingTool.exe」をダウンロード

GPS受信機から送られてくるNMEAセンテンスからGPGGAだけ抜き出して、記録したい場所でボタンを押すと緯度、経度を記録できて、ファイルに落とせる、というツールです。どういう雰囲気なのか見てもらうためだけにアップしました。ちゃんとしたテストはまだ行っていません。

実は今、GPS受信機を貸し出し中で手元にありません。なので、上記のツールをテストするために仮想GPS受信機を作ってみました。単に、NMEAセンテンスのテキストファイルをシリアル通信でだ~~~っと流すだけのツールです。

「VirtualGPSReceiver.exe」をダウンロード

ちょっとだけ工夫した点について。私はノートPCを使っているので、シリアル通信をするにはUSB-232C変換ケーブルが必要になります。これが、USBポートの挿す場所によってCOM2になったりCOM5になったり、COMポートの番号が変わってしまって、いつもコントロールパネルからシステムのプロパティ、デバイスマネージャ、を開いてCOMポートの番号を調べるという面倒なことをしていました。そういう必要が無いように、今回はアプリを立ち上げると使用可能なCOMポート番号を自動的に探し出すようにしました。(その仕組みはすごーく単純なのですが、この機能があると無いとでは大違いです。)

これらのアプリを動かす場合は、一度ダウンロードしてから実行してください。ダウンロードせずに実行しようとすると、なんだかセキュリティ関連のメッセージがでてきてうるさいですから。

« C#で Way Point収集ツール (^-^) | トップページ | お買い物 (^-^) »

コメント

早速バグがありました。Way Point Sampling Tool のほうです。

バグその1:GPS受信機の通信速度と異なる通信速度を選び、Connectボタンを押してCOMポートを開くと、COMポートを閉じたときにアプリケーションがフリーズする。

バグその2:GPS受信機を繋いだままConnectボタンを連打すると、System.ArgumentOutOfRangeException例外が発生することがある。

バグその1の原因は、Windowsフォーム側のスレッドとシリアル通信のスレッドがお互いに待ち状態になってしまうこと。通信速度があっていないので、いくら待っていてもデータを受信できません。
【対策】受信タイムアウトを設けてシリアル通信のスレッドが待ち状態を一度解除できるようにしました。

バグその2の原因は、化けたデータを受信した際にNMEAセンテンスの切り出し方がうまく出来ていないところがあったため。
【対策】受信した文字列からNMEAセンテンスを切り出す方法を変更しました。

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/167990/17191629

この記事へのトラックバック一覧です: Way Point Sampling Tool ベータ版(未テスト):

« C#で Way Point収集ツール (^-^) | トップページ | お買い物 (^-^) »

最近の写真