問題タブ [nmea]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
regex - grep を使用して壊れた NMEA ログ文を見つけるにはどうすればよいですか?
私の GPS ロガーは時折、ログ ファイルの最後に「未完成」の行を残します。最後までだと思いますが、念のため全行確認したいと思います。
サンプルの完全な文は次のようになります。
$
行は記号で始まり*
、2 文字の 16 進チェックサムで終わる必要があります。チェックサムが正しいかどうかは気にしません。存在するだけです。チェックサムがなく、すべてのファイルの先頭にある「ADVER」文も無視する必要があります。
次の Python コードが機能する可能性があります。
grep
またはawk
何か簡単なものでそれを行う方法はありますか?grep
どうすれば自分のやりたいことができるようになるのか、まったくわかりません。
更新: @Motti と @Paul に感謝します。次のようにして、ほぼやりたいことを実行できましたが、機能する$
前に一重引用符を使用して末尾を削除する必要がありました。
さらに 2 つの疑問が生じます。空白行を無視するにはどうすればよいですか? そして、最後の 2 つの s を組み合わせることができgrep
ますか?
c# - C# オープン ソース NMEA パーサー
C# オープン ソース NMEA パーサーを探しています。
python - Python で正規表現を介して GPS 受信機の出力を解析する
航空宇宙工学の修士号を取得しようとしている友人がいます。彼の最後のプロジェクトでは、気象観測気球、ロケット、人工衛星を追跡するためのプログラムを作成する小さなチームに所属しています。このプログラムは、GPS デバイスから入力を受け取り、データを使用して計算を行い、それらの計算の結果を使用して、指向性通信アンテナの向きを変えるように設計された一連のモーターを制御します。これにより、気球、ロケット、または衛星は常に焦点を合わせたままになります。
私自身はやや(永遠の)初心者ですが、友人よりもプログラミングの経験が豊富です。それで、彼が私にアドバイスを求めたとき、私は自分が選んだ言語である Python でプログラムを書くように彼を説得しました。
プロジェクトのこの時点で、GPS デバイスからの入力を解析するコードに取り組んでいます。入力例を次に示します。抽出する必要があるデータは太字で示しています。
$GPRMC, 092204.999,4250.5589,S,14718.5084,E ,1,12,24.4,89.6 , M ,,,0000*1F $GPRMC, 093345.679,4234.7899,N,11344.2567,W ,3,02,24.5,3 10 ,,,0000*1F $GPRMC,044584.936, 1276.5539,N,88734.1543,E ,2,04,33.5, 600.323 ,M,,,*00 $GPRMC,199304.973, 3248.7780 ,N,11355.7832,6,1,0 02.2, 25722.5 ,M,,,*00 $GPRMC,066487.954, 4572.0089,S,45572.3345,W ,3,09,15.0, 35000.00 ,M,,,*1F
データの詳細な説明は次のとおりです。
「すべての行から 5 つのものが必要になるようです。そして、これらの領域のいずれかが空である可能性があることに注意してください。つまり、2 つのコンマが隣り合っているだけです。「,,,」などがあります。いつでも満員になる可能性のある 2 つのフィールドがあります。2 つまたは 3 つのオプションしかないフィールドもありますが、それを当てにするべきではないと思います。」
2 日前、私の友人は、最近の気象気球の打ち上げを追跡するために使用された GPS 受信機から完全なログを取得することができました。データがかなり長いので、このペーストビンに全部入れました。
私はまだ正規表現に慣れていないので、助けを求めています。
time - GPS 時刻同期
タイムスタンプをミリ秒単位で送信するデバイスから NMEA GPS データを解析しています。私が聞いた限りでは、これらのデバイスは、タイムスタンプが .000 のセンテンス (GGA センテンスの $) を送信するときに、特定のトリガー ポイントを使用します。
そこで、GGA センテンスを解析し、$ を受信したときにタイムスタンプを取得します (シリアル ポートのボーレートを使用して、同じ操作でさらに文字が読み取られるのを補正します)。
この情報から、システム時刻を修正するためのオフセットを計算しますが、設定された時刻を一部の NTP サーバーと比較すると、250 ミリ秒の一定の差が得られます。これを手動で修正すると、20 ミリ秒の偏差内に収まります。私のアプリケーションでは問題ありません。
しかし、もちろん、このオフセットがどこから来たのかはわかりません。それが、使用している GPS マウスまたはシステムに固有のものである場合も同様です。間違った $ 文字を使用していますか、またはこれをどのように処理する必要があるかを誰かが知っていますか? この質問が非常にあいまいであることは承知していますが、このオフセットの原因についてのヒントは非常に役立ちます!
これは私のデバイスからのサンプル データです。時間オフセットとしてマークされた $ 文字を使用します。
gps - 独自の NMEA パーサーを作成するか、オープン ソースの GPS パーサーを使用しますか?
私は多くの位置認識コンピューティングを行っており、多くの場合 GPS を組み込んでいます。私は、特別なことは何もしない、小さな単純な NMEA パーサーを持っています。GPS 固有のセンテンスを使用可能な数字やフラグなどに変換するだけです。
ただし、GPSD や Gypsy などのプロジェクトでは多くの活発な開発が行われています。GPS が単純な問題であるとすれば、プロジェクトはずっと前に終了し、単にメンテナンス モードに入っていただろう。
- 彼らは何を知っている/私が知らないことをしているので、私のコードは説明できませんか?
gps - GPS デバイスから NMEA を取得する方法は?
Nokia の N95 を使用して、GPS デバイスの現在位置を読み取ろうとしています。デバイスがNMEAラインをシリアルポートに返す必要があることを読み、それを解析/分割して必要なものを取得しますが、デバイスがNMEAを返すようにするためにシリアルポートに何を書き込むべきかわかりませんか?
同様に、メッセージングなどのためのATの他のコマンドがあります...NMEAを取得するためにシリアルポートに送信する特定のコマンドはありますか???
c# - GPS から NMEA センテンスを読み取る
GPS を搭載した Mio P550 デバイスを持っています。SerialPort.Read() を使用するだけで、SerialPort を使用して NMEA センテンスを取得しようとしています。データは奇妙なエンコーディングで返されます。GPS は NMEA センテンスを ASCII で返す必要がありますが、そうではありません。読むための私のコードは次のとおりです。
そして、これが私が返すサンプル値です: xæææxfæ`æxæføøøxxxøx
ASCII で NMEA 文を返す 2 つ目のデバイス (Asus A636N) もあり、私のコードはうまく機能します。
NMEA センテンスを ASCII で取得するには、Mio デバイスをどうする必要がありますか? または、デバイスから返されたデータのエンコードを取得するにはどうすればよいですか? System.Text.Encoding.xxx.GetString() のすべてのクラスを使用して、読み取ったバイトから文字列を取得しようとしましたが、正しいデータが返されません。上記のサンプルと同様のデータが返されます。
tcp - tcpip/udp で nmea 文字列を送受信する方法
サーバーwww.example.comに(gprs接続を使用して)データを送信できるgpsレシーバーがあります。
ここで、www.example.com からこのデータ (gps nmea 文字列) を受信し (おそらく、特定のポートをリッスンするため)、この情報を解析してデータベースに保存する必要があります。
私はphpとmysqlの知識を持っています。それで、質問は - php と mysql で達成することは可能ですか? はいの場合、何から始めるべきか教えていただけますか?いいえの場合、他の提案を教えてください。
どうもありがとうございました!
c# - シリアルポートからのNMEAデータの解析の問題
シリアルGPSからNMEAセンテンスを取得しています。それから私が期待するように文字列が出くわします。問題は、次のような文を解析する場合です。
簡単なコードを使用して、正しいセンテクトがあることを確認します。
例として、その場所に返品を追加しました。分割結果をテキストボックスに出力しましたが、ある時点で$GPRMCが実際にitem変数で検出されていることがわかりました。文字列が検出された場合、ifステートメントがキャッチされないのはなぜですか?$ですか?どうすればこれをトラブルシューティングできますか?
c# - GPS 信号強度の計算
.NET CF を使用して GPS デバイスの信号バーを表示したいと考えています。NMEA データを読み取り、SNR 信号を取得できます。しかし、それらはいくつかのアクティブな衛星とさまざまな SNR を持つ非アクティブな衛星の数です。合計 SNR の平均を取得することを考えましたが、GPS 修正には 3 つの強い信号衛星で十分であり、SNR の悪い別の 5 つの衛星では信号バーの計算が台無しになる可能性があるため、正確な値は得られません。GPS信号をパーセンテージで適切な方法で計算するにはどうすればよいですか?