Android 開発 (最新の SDK) ではGpsStatus.NmeaListener
、時間を同期するために を使用して NMEA メッセージを解析しています。
コールバックで、 onNmeaReceived(long timestamp, String nmea)
GPRMC メッセージの nmea 文字列を解析します。次に、システム クロックと GPRMC メッセージから解析された時間とのオフセットを計算します。
現在、Android フレーム作業で NMEA メッセージが受信された瞬間とコールバックの処理の間に遅延があります。これにより、計算している実際のオフセットが変動します。
私の推測ではtimestamp
、NMEA メッセージに沿って送信されるのは、NMEA メッセージが受信された瞬間のシステム クロック時刻です。これが正しい場合、このタイムスタンプを使用して、コールバック処理のレイテンシを補うことができます。
私の測定では、timestamp
時間はコールバックでキャプチャされたシステム クロック時間onNmeaReceived
と約 10 ~ 30 ミリ秒の差があります。
と解析された GPRMC メッセージから得られた時間との差/オフセットは、timestamp
7200092ms のオーダーです (GPS とシステム時間の差は 2 時間)。
したがって、これtimestamp
は GPS ベースの時刻ではなく、メッセージを受信したシステム クロックの時刻であると言えます。
Web をかなり検索しましたが、このタイムスタンプに関する情報を見つけることができないようです。このタイムスタンプについて詳しく教えてくれるリソースを持っている人はいますか? このタイムスタンプは正確には何を表していますか? それはどの瞬間に記録されますか?