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