GnssClock 構造体リファレンス

GnssClock 構造体リファレンス

#include < gps.h >

データ フィールド

size_t size
 
GnssClockFlags   フラグ
 
int16_t leap_second
 
int64_t time_ns
 
ダブル time_uncertainty_ns
 
int64_t full_bias_ns
 
ダブル bias_ns
 
ダブル bias_uncertainty_ns
 
ダブル drift_nsps
 
ダブル drift_uncertainty_nsps
 
uint32_t hw_clock_discontinuity_count
 

詳細な説明

GPS クロックの時刻の推定値を表します。

ファイル gps.h 1455 行 の定義。

フィールドのドキュメント

double bias_ns

ナノ秒未満のバイアス。この値と full_bias_ns の合計のエラー推定値は、bias_uncertainty_ns です。

データが利用可能な場合は、「flags」に GNSS_CLOCK_HAS_BIAS を含める必要があります。GPS が位置補正を計算している場合。受信機が GPS 時間を推定している場合、この値は必須です。

ファイル gps.h 1534 行の定義。

double bias_uncertainty_ns

GPS 時間のローカル推定(クロック バイアス)に関連する 1 シグマの不確実性(ナノ秒単位)。不確実性は絶対値(片側)で表されます。

データが利用可能な場合は、「flags」に GNSS_CLOCK_HAS_BIAS_UNCERTAINTY を含める必要があります。受信機が GPS 時間を推定している場合、この値は必須です。

ファイル gps.h 1545 行の定義。

drift_nsps を 2 倍にします。

クロックのドリフト(ナノ秒単位 / 秒)。

値が正の場合、周波数が公称周波数よりも高く、(full_bias_ns + bias_ns)が時間とともに正の値に近づいていることを意味します。

この値には「ドリフトの不確実性」が含まれています。データが利用可能な場合は、「flags」に GNSS_CLOCK_HAS_DRIFT を含める必要があります。

この値は、受信機が GNSS 時間を推定している場合に必須です。

ファイル gps.h 1559 行 の定義。

double drift_uncertainty_nsps

クロックのドリフトに関連する 1 シグマの不確実性(ナノ秒単位(秒あたり))。不確実性は絶対値(片側)で表されます。

データが利用可能な場合は、「flags」に GNSS_CLOCK_HAS_DRIFT_UNCERTAINTY を含める必要があります。GPS が位置情報を計算している場合、このフィールドは必須であり、入力する必要があります。

ファイル gps.h 1569 行 の定義。

このデータ構造内のフィールドの有効性を示すフラグのセット。

ファイル gps.h 1463 行の定義。

int64_t full_bias_ns

GPS レシーバー内のハードウェア クロック(time フィールド)と、1980 年 1 月 6 日 0000Z からの正確な GPS 時間との差(ナノ秒単位)。

値の符号は、GPS 時間のローカル推定値 = time_ns -(full_bias_ns + bias_ns)という式で定義されます。

受信機が GPS 時間を推定している場合、この値は必須です。計算された時刻が GPS 以外のコンステレーションの時刻である場合、この値を入力するには、そのコンステレーションと GPS の時刻オフセットを適用する必要があります。この値と bias_ns の合計の誤差推定値は bias_uncertainty_ns です。この不確実性の使用は呼び出し元の責任となります(GPS 時間が解決される前は非常に大きくなる可能性があります)。データが利用可能な場合は、「flags」に GNSS_CLOCK_HAS_FULL_BIAS を含める必要があります。

ファイル gps.h 1523 行の定義。

uint32_t hw_clock_discontinuity_count

ハードウェア クロックに不連続性がある場合は、このフィールドは必須です。

「不連続」とは、あるクロックソースから別のクロックソースに切り替える場合を対象としています。通常、単一のフリーランニング水晶発振器(XO)には不連続性がないため、この値は 0 のままにできます。

ただし、time_ns 値(HW クロック)が、典型的な XO ほどスムーズでないソースの組み合わせから派生している場合や、停止と再起動を繰り返している場合は、不連続が発生するたびにこの値がインクリメントされます。(例: この値はデバイスの起動時に 0 から始まり、クロックの連続性が変化するたびに増分します。この値がフルスケールに達した場合は、ロールオーバー(クランプではなく)が必要になります。これにより、その後の不連続イベント中にこの値が引き続き変化します。

この数値は GNSSClock レポート間で同じままですが、time_ns 値は連続的に実行されていると安全に想定できます(たとえば、単一の高品質クロック(XO のような、またはそれ以上のクロック。通常は連続的な GNSS 信号サンプリング中に使用されます)から派生しています)。

特に、利用可能な GNSS 信号が少ない期間は、HW クロックをできるだけ長く連続的に維持することが期待されます。これにより、連続した GNSSData レポートから付属の測定値を使用するときに、GPS クロックのバイアスとドリフトを完全に再解決するために GNSS 測定値を使用する(浪費する)必要がなくなります。

ファイル gps.h 1,600 行目の定義。

int16_t leap_second

うるう秒データ。値の符号は、次の式で定義されます。utc_time_ns = time_ns - (full_bias_ns + bias_ns) - leap_second * 1,000,000,000

データが利用可能な場合は、フラグに GNSS_CLOCK_HAS_LEAP_SECOND が含まれている必要があります。

ファイル gps.h 1473 行の定義。

size_t size

sizeof(GnssClock) に設定

ファイル gps.h 1457 行の定義。

int64_t time_ns

GNSS レシーバーの内部クロックの値。これはローカル ハードウェア クロックの値です。

ローカル ハードウェア クロックの場合、この値はハードウェア クロックの電源がオンのままである限り、単調に増加することが想定されます。(HW クロックが連続してオンになっていない場合は、hw_clock_discontinuity_count フィールドをご覧ください)。レシーバーの GPS 時間の推定値は、この値から full_bias_ns と bias_ns(利用可能な場合)の合計を差し引くことで得られます。

この GPS 時刻は、GNSS レシーバーが達成できる現在の GPS 時刻の最良の推定値と見込まれます。

ナノ秒未満の精度は、bias_ns フィールドを使用して指定できます。この値には「時間の不確実性」が含まれています。

この項目は必須です。

ファイル gps.h 1494 行の定義。

double time_uncertainty_ns

クロックの時刻に関連付けられた 1 シグマの不確実性(ナノ秒単位)。不確実性は絶対値(片側)で表されます。

データが利用可能な場合は、flags に GNSS_CLOCK_HAS_TIME_UNCERTAINTY を含める必要があります。この値は実質的にゼロです(他のすべての時刻と時刻の不確実性を測定する参照ローカル クロックです)。(したがって、このフィールドは GNSS_CLOCK_HAS_TIME_UNCERTAINTY フラグに従って指定しないか、指定して 0 に設定できます)。

ファイル gps.h 1506 行の定義。


この構造体のドキュメントは、次のファイルから生成されました。
  • hardware/libhardware/include/hardware/ gps.h