2012年3月31日土曜日

コレジャナイ Android アプリ

MtkDLut の Android 版のような機能ショボイもの作成中.
機能としてはログのダウンロード・消去とログ Hz の設定だけだけど,これができたら出先で PhotoMate887 の Flash がいっぱいになってもスマフォにログを退避できたりして便利.

で,やってみているんだけど,どうも Bluetooth 経由の受信データが欠落する.
こんなふうに↓
$GPRMC,145602.100,A,35xx.xxxxxx,N,135xx.xxxxxx,E,0.756,262.36,300312,,,A*5E
$GPGGA,145602.200,35xx.xxxxxx,N,135xx.xxxxxx,E,1,,,126.783,M,,,,*2C
$GPRMC,145602.200,A,35xx.xxxxxx,N,135xx.xxxxxx,E,0.757,262.59,300312,,,A*56
5xx.xxxxxx,E,1,,,126.883,M,,,,*28
$GPRMC,145602.700,A,35xx.xxxxxx,N,135xx.xxxxxx,E,0.740,264.02,300312,,,A*53
$GPGGA,145602.800,35xx.xxxxxx,N,135xx.xxxxxx,E,1,,,126.905,M,,,,*2B
$GPRMC,145602.800,A,35xx.xxxxxx,N,135xx.xxxxxx,E,0.748,264.31,300312,,,A*57
$GPGGA,145602.900,35xx.xxxxxx,N,135xx.xxxxxx,E,1,,,126.930,M,,,,*25
$GPRMC,145602.900,A,35xx.xxxxxx,N,135xx.xxxxxx,E,0.752,264.60,300312,,,A*50
xx.xxxxxx,N,135xx.xxxxxx,E,1,,,126.990,M,,,,*25
$GPRMC,145603.300,A,35xx.xxxxxx,N,135xx.xxxxxx,E,0.719,265.51,300312,,,A*56
$GPGGA,145603.400,35xx.xxxxxx,N,135xx.xxxxxx,E,1,,,127.017,M,,,,*2E
行頭が $ でない行はそもそもデータが壊れている.

BT との通信やり取りは,PhotoMate887 へのコマンド / からのレスポンスと,NMEA データの 2つがやり取りされてるけど,NMEA 出力頻度が高いとどこかのバッファがオーバーフローして PhotoMate887 からのレスポンスがかき消されるっぽい?

PC+BT ドングル⇔PhotoMate887 だと欠落しないので,Android 固有の問題なのかなぁ.

PhotoMate887 の NMEA 出力を全部 OFF にすれば Android 側は問題ないんだけど,今度は PC の本家 MtkDLut が "No signal." とか言っておかしくなるし.
ンー,どうしたもんか.

アプリアイコンも作ってみたが.コレジャナイ感がハンパねぇ(;´д⊂)
-----
一応データ欠落も解決して完成したので公開しとく.→MtkUtility
・Android2.2 以降用
・BlueTooth 経由の NMEA ログ出力頻度 (Flash へのログ書込み頻度のことではない) を勝手に変更します.
・PhotoMate887 と 1分以上接続できないときは,アプリを再起動するよろし
・ログが消えても泣かない

0 件のコメント:

コメントを投稿