はじめに
GnssTesterは、ぶっちゃけ私が作ったGnssSimulatorの検証ツールです。
GnssSimulator作ったときClaudeに「無料で使えるGoogle Mapみたいなヤツない?」って聞いたら「Leaflet使えばいいじゃん」って言われたので使ったのですが便利でした。
検証も各種フォーマット変換は内部でやっているし、汎用ツールで送信だけに絞って良かったのですが、NMEAフォーマットのGGAとRMCだけは送信時に変換しただけの投げっぱなしジャーマンだったので、DM(度分)⇔DMS(度分秒)形式の緯度・経度の相互変換ロジックを検証するのに、地図で同じピンが打たれるか確認する必要がありGnssTesterの製造に踏み切った次第です。
一通り形になったところで、これはGnssSimulator以外の検証にも使えそうだし、需要もあるかもしれないと思い、あわせて公開することにしました。
できること
TCP/UDPで送られてくる位置情報を受信し、地図上にその位置をプロットするだけのシンプルなツールです。対応フォーマットは緯度経度・平面直角座標系(それぞれ通常/JSON)・NMEA(GGA/RMC)の6種類で、受信したメッセージが位置情報としてパースできた場合のみ地図にピンを打ちます。任意でCSV出力もできますが、これも位置として解釈できたデータのみが対象です。
あくまで「受信したデータが正しい位置情報になっているか」を目視で確認するためのツールなので、TCP/UDPの生ログを残したり、通信そのものの疎通確認をする機能はありません。NMEAも緯度経度の抽出だけが目的で、衛星捕捉数やDOP値といった位置情報以外の項目は扱っていません。
技術構成・設計判断
検証用なのでコードビハインドで実装しています。
画面の要素とロジックが直接結びついている方が、コードを読んだときにどのボタンが何をしているか追いやすいだろうという判断です。
おわりに
GnssSimulatorの出力を確認する手段が要る、という単純な理由で作ったツールですが、単体でもTCP/UDPで位置情報を送るアプリなら何にでも使えます。MITライセンスで公開しているので、ご興味あれば是非。