مرجع بنية GnssMeasurement
#include <
gps.h
>
حقول البيانات |
|
size_t | size |
GnssMeasurementFlags | flags |
int16_t | svid |
GnssConstellationType | كوكبة |
مزدوج | time_offset_ns |
GnssMeasurementState | state |
int64_t | received_sv_time_in_ns |
int64_t | received_sv_time_uncertainty_in_ns |
مزدوج | c_n0_dbhz |
مزدوج | pseudorange_rate_mps |
مزدوج | pseudorange_rate_uncertainty_mps |
GnssAccumulatedDeltaRangeState | accumulated_delta_range_state |
مزدوج | accumulated_delta_range_m |
مزدوج | accumulated_delta_range_uncertainty_m |
float | carrier_frequency_hz |
int64_t | carrier_cycles |
مزدوج | carrier_phase |
مزدوج | carrier_phase_uncertainty |
GnssMultipathIndicator | multipath_indicator |
مزدوج | snr_db |
وصف مفصّل
يمثّل قياسًا لنظام تحديد المواقع العالمي (GNSS)، ويحتوي على معلومات أولية ومحسوبة.
الاستقلالية: يجب أن تستند جميع معلومات قياس الإشارة (مثل sv_time وpseudorange_rate وmultipath_indicator) الواردة في هذه البنية إلى قياسات إشارة نظام تحديد المواقع العالمي (GNSS) فقط. لا يجوز لك تجميع القياسات من خلال احتساب القياسات المتوقّعة أو الإبلاغ عنها استنادًا إلى موضع أو سرعة أو وقت معروف أو مقدَّر.
مستندات الحقل
double accumulated_delta_range_m |
نطاق الاختلافات المتراكمة منذ آخر إعادة ضبط للقناة بالمتر تشير القيمة الموجبة إلى أنّ SV يتحرك بعيدًا عن جهاز الاستقبال.
يتم تحديد علامة "النطاق التراكمي للفرق" وعلاقتها بعلامة "مرحلة الموجة الحاملة" من خلال المعادلة: النطاق التراكمي للفرق = -k * مرحلة الموجة الحاملة (حيث k هو ثابت).
يجب تعبئة هذه القيمة إذا كانت "حالة النطاق المتزايد للفرق" != GPS_ADR_STATE_UNKNOWN. ومع ذلك، من المتوقّع أن تكون البيانات دقيقة فقط عندما تكون الحالة "حالة النطاق المتزايد متراكمة" == GPS_ADR_STATE_VALID.
GnssAccumulatedDeltaRangeState accumulated_delta_range_state |
double accumulated_delta_range_uncertainty_m |
double c_n0_dbhz |
int64_t carrier_cycles |
عدد دورات الناقل الكامل بين القمر الصناعي وجهاز الاستقبال يتم تحديد التردد المرجعي من خلال الحقل carrier_frequency_hz. يمكن استنتاج مؤشرات حدوث أخطاء في دورة القياس أو إعادة ضبطها في تراكم هذه القيمة من علامات accumulated_delta_range_state.
إذا كانت البيانات متاحة، يجب أن تحتوي "العلامات" على GNSS_MEASUREMENT_HAS_CARRIER_CYCLES.
float carrier_frequency_hz |
double carrier_phase |
مرحلة التردد اللاسلكي التي رصدها جهاز الاستقبال، في النطاق [0.0, 1.0] وعادةً ما يكون هذا هو الجزء الكسري من قياس مرحلة الناقل الكامل.
يتم تحديد التردد المرجعي من خلال الحقل carrier_frequency_hz. تحتوي القيمة على "عدم اليقين في مرحلة الناقل".
إذا كانت البيانات متاحة، يجب أن تحتوي "العلامات" على GNSS_MEASUREMENT_HAS_CARRIER_PHASE.
double carrier_phase_uncertainty |
GnssConstellationType constellation |
GnssMultipathIndicator multipath_indicator |
تشير هذه السمة إلى حالة "مسار متعدّد" للحدث.
يهدف مؤشر مسارات الإشارات المتعددة إلى الإبلاغ عن توفّر إشارات متداخلة تظهر على شكل قمم ارتباط مشوّهة.
- إذا كان هناك شكل مشوّه لذروة الارتباط، أبلِغ أنّ مسار الانتشار المتعدّد هو GNSS_MULTIPATH_INDICATOR_PRESENT.
- إذا لم يكن هناك شكل مشوّه لذروة الارتباط، أبلِغ عن GNSS_MULTIPATH_INDICATOR_NOT_PRESENT
- إذا كانت الإشارات ضعيفة جدًا لدرجة عدم التمكّن من تمييز هذه المعلومات، أبلِغ عن GNSS_MULTIPATH_INDICATOR_UNKNOWN.
مثال: عند إجراء اختبار الأداء المُعترَف به لمتعدد المسارات المتداخلة (3GPP TS 34.171)، يجب أن يُبلغ مؤشر "متعدد المسارات" عن GNSS_MULTIPATH_INDICATOR_PRESENT للإشارات التي يتم تتبُّعها والتي تحتوي على مسارات متعددة، وGNSS_MULTIPATH_INDICATOR_NOT_PRESENT للإشارات التي يتم تتبُّعها والتي لا تحتوي على مسارات متعددة.
double pseudorange_rate_mps |
معدّل النطاق الوهمي عند الطابع الزمني بوحدة متر في الثانية يشمل تصحيح قيمة معدّل النطاق الوهمي المحدّدة تصحيحات أخطاء تردد ساعة المُستلِم والساتل. تأكَّد من أنّ هذا الحقل مستقل (اطّلِع على التعليق في أعلى بنية GnssMeasurement ).
يجب تقديم "معدل النطاق الوهمي" غير "المصحَّح"، وتقديم حقل "الانحراف" في GpsClock (عند تقديم معدل النطاق الوهمي غير المصحَّح، لا تطبِّق التصحيحات الموضّحة أعلاه).
تتضمّن القيمة "عدم التأكد من معدّل النطاق الوهمي". تشير القيمة الموجبة "غير المصحَّحة" إلى أنّ SV يتحرك بعيدًا عن جهاز الاستقبال.
يتم تحديد علامة "معدّل النطاق الوهمي" "غير المصحَّح" وعلاقته بعلامة "الزحزحة الدوبلرية" من خلال المعادلة: معدّل النطاق الوهمي = -k * الزحزحة الدوبلرية (حيث k هو ثابت).
من المفترض أن يكون هذا هو معدّل النطاق الوهمي الأكثر دقة المتاح، استنادًا إلى قياسات إشارة جديدة من هذه القناة.
يجب تقديم هذه القيمة بجودة معدل تكرار الإرسال (PRR) المعتادة لمرحلة الناقل (بضع سنتيمترات في الثانية لكل ثانية من عدم اليقين أو أفضل) - عندما تكون الإشارات قوية وثابتة بما يكفي، مثل الإشارات الواردة من جهاز محاكاة نظام تحديد المواقع العالمي (GPS) بقيمة >= 35 ديسي بل-هرتز.
double pseudorange_rate_uncertainty_mps |
int64_t received_sv_time_in_ns |
وقت الأسبوع المستلَم من نظام تحديد المواقع العالمي (GNSS) في وقت القياس، بالنانوسثانية تأكَّد من أنّ هذا الحقل مستقل (اطّلِع على التعليق في أعلى بنية GnssMeasurement ).
بالنسبة إلى نظامَي تحديد المواقع العالمي (GPS) وQZSS، يكون هذا العنصر على النحو التالي: وقت الأسبوع المستلَم من نظام تحديد المواقع العالمي (GPS) في وقت القياس، بالنانوسثانية. تكون القيمة نسبية لبداية أسبوع نظام تحديد المواقع العالمي (GPS) الحالي.
استنادًا إلى أعلى حالة مزامنة يمكن تحقيقها لكلّ قمر صناعي، يمكن أن يكون النطاق الصالح لهذا الحقل هو: البحث : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN قفل الرمز C/A : [ 0 1ms ] : تمّ ضبط GNSS_MEASUREMENT_STATE_CODE_LOCK مزامنة الوحدات : [ 0 20ms ] : تمّ ضبط GNSS_MEASUREMENT_STATE_BIT_SYNC مزامنة الإطار الفرعي : [ 0 6s ] : تمّ ضبط GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC فك ترميز وقت العبور : [ 0 1week ] : تمّ ضبط GNSS_MEASUREMENT_STATE_TOW_DECODED
ملاحظة مهمة: في حال حدوث أي غموض في عدد صحيح بالملي ثانية، يجب ضبط GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS وفقًا لذلك في الحقل state.
يجب تعبئة هذه القيمة إذا كانت "الحالة" != GNSS_MEASUREMENT_STATE_UNKNOWN.
بالنسبة إلى نظام Glonass، يكون هذا العنصر على النحو التالي: وقت اليوم المستلَم من نظام Glonass، في وقت القياس بالنانوسات.
استنادًا إلى أعلى حالة مزامنة يمكن تحقيقها لكل قمر صناعي، يمكن أن يكون النطاق الصالح لهذا الحقل: البحث : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN قفل رمز C/A : [ 0 1ms ] : تم ضبط GNSS_MEASUREMENT_STATE_CODE_LOCK مزامنة الرموز : [ 0 10ms ] : تم ضبط GNSS_MEASUREMENT_STATE_SYMBOL_SYNC مزامنة الوحدات : [ 0 20ms ] : تم ضبط GNSS_MEASUREMENT_STATE_BIT_SYNC مزامنة السلسلة : [ 0 2s ] : تم ضبط GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC وقت اليوم : [ 0 1day ] : تم ضبط GNSS_MEASUREMENT_STATE_GLO_TOD_DECODED
بالنسبة إلى Beidou، يكون هذا العنصر على النحو التالي: وقت الأسبوع الذي تم استلامه من Beidou، في وقت القياس بالنانوسثانية.
استنادًا إلى أعلى حالة مزامنة يمكن تحقيقها لكل قمر صناعي، يمكن أن يكون النطاق الصالح لهذا الحقل هو: البحث : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN قفل رمز C/A: [ 0 1ms ] : تم ضبط GNSS_MEASUREMENT_STATE_CODE_LOCK مزامنة الوحدات (D2): [ 0 2ms ] : تم ضبط GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC مزامنة الوحدات (D1): [ 0 20ms ] : تم ضبط GNSS_MEASUREMENT_STATE_BIT_SYNC الإطار الفرعي (D2): [ 0 0.6s ] : تم ضبط GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC الإطار الفرعي (D1): [ 0 6s ] : تم ضبط GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC وقت الأسبوع : [ 0 1week ] : تم ضبط GNSS_MEASUREMENT_STATE_TOW_DECODED
بالنسبة إلى Galileo، يكون هذا العنصر على النحو التالي: وقت الأسبوع المستلَم من Galileo، في وقت القياس بالنانوسات.
قفل الرمز E1BC : [ 0 4ms ] : تم ضبط GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK قفل الرمز الثاني E1C: [ 0 100ms ] : تم ضبط GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK
صفحة E1B: [ 0 2s ] : تم ضبط GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC. وقت الأسبوع: [ 0 1week ] : تم ضبط GNSS_MEASUREMENT_STATE_TOW_DECODED.
بالنسبة إلى SBAS، يكون هذا العنصر: وقت استلام SBAS، في وقت القياس بالنانوسات.
استنادًا إلى أعلى حالة مزامنة يمكن تحقيقها لكل قمر صناعي، يمكن أن يكون النطاق الصالح لهذا الحقل هو: البحث : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN قفل رمز C/A: [ 0 1ms ] : تم ضبط GNSS_MEASUREMENT_STATE_CODE_LOCK مزامنة الرموز : [ 0 2ms ] : تم ضبط GNSS_MEASUREMENT_STATE_SYMBOL_SYNC الرسالة : [ 0 1s ] : تم ضبط GNSS_MEASUREMENT_STATE_SBAS_SYNC
int64_t received_sv_time_uncertainty_in_ns |
double snr_db |
GnssMeasurementState state |
int16_t svid |
رقم تعريف المركبة عبر الأقمار الصناعية، كما هو محدّد في GnssSvInfo::svid هذه قيمة إلزامية.
double time_offset_ns |
المدة الزمنية التي تم فيها إجراء القياس بالنانوسثانية يتم تحديد وقت جهاز الاستقبال المرجعي من خلال GpsData::clock::time_ns ويجب تفسيره بالطريقة نفسها الموضّحة في GpsClock::type .
يتم تحديد علامة time_offset_ns من خلال المعادلة التالية: وقت القياس = GpsClock::time_ns + time_offset_ns
ويقدّم الطابع الزمني الفردي للقياس، ويسمح بدقة أقل من النانو ثانية. هذه قيمة إلزامية.
تم إنشاء مستندات هذه البنية من الملف التالي:
- hardware/libhardware/include/hardware/ gps.h