התייחסות למבנה GnssClock
#include < gps.h >
שדות נתונים | |
size_t | גודל |
GnssClockFlags | דגלים |
int16_t | זינוק_שנייה |
int64_t | זמן_נס |
לְהַכפִּיל | זמן_אי ודאות_ns |
int64_t | full_bias_ns |
לְהַכפִּיל | bias_ns |
לְהַכפִּיל | הטיה_אי-ודאות_ns |
לְהַכפִּיל | drift_nsps |
לְהַכפִּיל | אי-וודאות_נסחף_nsps |
uint32_t | hw_clock_discontinuity_count |
תיאור מפורט
תיעוד שטח
הטיה כפולה_ns |
הטיה כפולה_אי ודאות_ns |
כפול סחיפה_nsps |
השעון סחף בננו-שניות (לשנייה).
ערך חיובי פירושו שהתדר גבוה מהתדר הנומינלי, ושה-(full_bias_ns + bias_ns) הולך וגדל חיובי יותר עם הזמן.
הערך מכיל את 'חוסר הוודאות הסחף' שבו. אם הנתונים זמינים, 'דגלים' חייבים להכיל GNSS_CLOCK_HAS_DRIFT.
ערך זה הוא חובה אם למקלט יש זמן GNSS משוער
כפול סחיפה_אי-וודאות_nsps |
דגלים של GnssClockFlags |
int64_t full_bias_ns |
ההבדל בין שעון חומרה (שדה 'זמן') בתוך מקלט GPS לבין זמן ה-GPS האמיתי מאז 0000Z, 6 בינואר 1980, בננו-שניות.
הסימן של הערך מוגדר על ידי המשוואה הבאה: אומדן מקומי של זמן GPS = time_ns - (full_bias_ns + bias_ns)
ערך זה הוא חובה אם למקלט יש זמן GPS משוער. אם הזמן המחושב הוא עבור קונסטלציה שאינה GPS, יש להחיל את היסט הזמן של אותה קונסטלציה ל-GPS כדי למלא ערך זה. אומדן השגיאה עבור הסכום של זה ושל bias_ns הוא bias_uncertainty_ns, והמתקשר אחראי לשימוש באי ודאות זו (היא יכולה להיות גדולה מאוד לפני שנפתרה זמן ה-GPS.) אם הנתונים זמינים 'דגלים' חייבים להכיל GNSS_CLOCK_HAS_FULL_BIAS.
uint32_t hw_clock_discontinuity_count |
כאשר יש אי רציפות כלשהן בשעון HW, שדה זה הוא חובה.
"אי-רציפות" נועדה לכסות את המקרה של מעבר ממקור שעון אחד למשנהו. למתנד גביש בודד הפועל בחופשיות (XO) לא אמורות להיות בדרך כלל אי-רציפות, וניתן להגדיר זאת ולהשאיר אותה ב-0.
עם זאת, אם ערך time_ns (שעון HW) נגזר מהרכב של מקורות, שאינו חלק כמו XO טיפוסי, או מופסק או מופעל מחדש, אז ערך זה יוגדל בכל פעם שמתרחשת אי-רציפות. (לדוגמה, ערך זה עשוי להתחיל מאפס באתחול המכשיר ולהגדיל בכל פעם שיש שינוי בהמשכיות השעון. במקרה הבלתי סביר שערך זה יגיע לקנה מידה מלא, יש צורך בגלגול (לא הידוק), כך שערך זה ימשיך שינוי, במהלך אירועי אי המשכיות הבאים.)
בעוד שמספר זה נשאר זהה, בין דוחות GnssClock , ניתן להניח בבטחה שערך time_ns פועל ברציפות, למשל נגזר משעון יחיד ואיכותי (כמו XO, או טוב יותר, המשמש בדרך כלל במהלך דגימת אותות GNSS רציפה. )
זה צפוי, במיוחד. בתקופות שבהן יש מעט אותות GNSS זמינים, ששעון HW יהיה נטול רציפות זמן רב ככל האפשר, שכן הדבר מונע את הצורך להשתמש (לבזבז) מדידת GNSS כדי לפתור מחדש באופן מלא את הטיית שעון ה-GPS והסחף, כאשר באמצעות המדידות הנלוות, מתוך דוחות GnssData עוקבים.
int16_t leap_second |
int64_t time_ns |
ערך השעון הפנימי של מקלט GNSS. זהו ערך שעון החומרה המקומי.
עבור שעון חומרה מקומי, ערך זה צפוי לעלות באופן מונוטוני בזמן ששעון החומרה נשאר מופעל. (למקרה של שעון HW שאינו פועל ברציפות, ראה את השדה hw_clock_discontinuity_count). ניתן לגזור את אומדן זמן ה-GPS של המקלט על ידי הפחתת הסכום של full_bias_ns ו-bias_ns (כאשר זמין) מערך זה.
זמן GPS זה צפוי להיות האומדן הטוב ביותר של זמן ה-GPS הנוכחי שמקלט GNSS יכול להשיג.
ניתן לספק דיוק תת-ננושניות באמצעות השדה 'bias_ns'. הערך מכיל את 'אי הוודאות בזמן' בו.
שדה רישום זה הוא חובה.
כפול זמן_אי וודאות |
אי ודאות 1-Sigma הקשורה לזמן השעון בננו-שניות. אי הוודאות מיוצגת כערך מוחלט (חד צדדי).
אם הנתונים זמינים, 'דגלים' חייבים להכיל GNSS_CLOCK_HAS_TIME_UNCERTAINTY. ערך זה הוא למעשה אפס (זהו השעון המקומי הייחוס, שבאמצעותו נמדדות כל שאר אי הוודאות הזמנים והזמן.) (ולכן לא ניתן לספק את השדה הזה, לפי דגל GNSS_CLOCK_HAS_TIME_UNCERTAINTY, או לספק ולהגדיר אותו ל-0.)
התיעוד עבור מבנה זה נוצר מהקובץ הבא:
- hardware/libhardware/include/hardware/ gps.h