GnssMeasurement स्ट्रक्चर का रेफ़रंस
#include <
gps.h
>
डेटा फ़ील्ड |
|
size_t | size |
GnssMeasurementFlags | फ़्लैग |
int16_t | svid |
GnssConstellationType | नक्षत्र |
डबल | time_offset_ns |
GnssMeasurementState | राज्य |
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 |
फ़्लोट | carrier_frequency_hz |
int64_t | carrier_cycles |
डबल | carrier_phase |
डबल | carrier_phase_uncertainty |
GnssMultipathIndicator | multipath_indicator |
डबल | snr_db |
पूरी जानकारी
GNSS मेज़रमेंट दिखाता है. इसमें रॉ और कैलकुलेट की गई जानकारी शामिल होती है.
स्वतंत्रता - इस स्ट्रक्चर में रिपोर्ट की गई सिग्नल मेज़रमेंट की सारी जानकारी (जैसे, sv_time, pseudorange_rate, multipath_indicator) सिर्फ़ जीएनएसएस सिग्नल मेज़रमेंट पर आधारित होनी चाहिए. आपके पास, अनुमानित या जानी-पहचानी पोज़िशन, वेग या समय के आधार पर, अनुमानित मेज़रमेंट का हिसाब लगाने या उन्हें रिपोर्ट करने का विकल्प नहीं है.
फ़ील्ड का दस्तावेज़
डबल accumulated_delta_range_m |
चैनल के आखिरी रीसेट के बाद से इकट्ठा हुई डेल्टा रेंज, मीटर में. पॉज़िटिव वैल्यू से पता चलता है कि एसवी, रिसीवर से दूर जा रहा है.
'कुल डेल्टा रेंज' का साइन और 'कैरियर फ़ेज़' के साइन के बीच का संबंध, इस समीकरण से पता चलता है: कुल डेल्टा रेंज = -k * कैरियर फ़ेज़ (जहां k एक स्थिरांक है)
अगर 'कुल डेल्टा रेंज स्टेटस' != GPS_ADR_STATE_UNKNOWN है, तो इस वैल्यू को पॉप्युलेट किया जाना चाहिए. हालांकि, यह उम्मीद की जाती है कि डेटा सिर्फ़ तब सही होता है, जब: 'accumulated delta range state' == GPS_ADR_STATE_VALID.
GnssAccumulatedDeltaRangeState accumulated_delta_range_state |
double accumulated_delta_range_uncertainty_m |
c_n0_dbhz को दोगुना करना |
int64_t carrier_cycles |
सैटलाइट और रिसीवर के बीच, फ़ुल कैरियर साइकल की संख्या. रेफ़रंस फ़्रीक्वेंसी, 'carrier_frequency_hz' फ़ील्ड से मिलती है. इस वैल्यू को इकट्ठा करने के दौरान, साइकल की संभावित स्लिप और रीसेट के बारे में जानकारी, accumulated_delta_range_state फ़्लैग से मिल सकती है.
अगर डेटा उपलब्ध है, तो 'फ़्लैग' में GNSS_MEASUREMENT_HAS_CARRIER_CYCLES होना चाहिए.
फ़्लोट carrier_frequency_hz |
double carrier_phase |
रिसीवर से पता चला आरएफ फ़ेज़, [0.0, 1.0] की रेंज में. आम तौर पर, यह कैरियर फ़ेज़ मेज़रमेंट का फ़्रैक्शनल हिस्सा होता है.
रेफ़रंस फ़्रीक्वेंसी, 'carrier_frequency_hz' फ़ील्ड से मिलती है. इस वैल्यू में 'कैरियर-फ़ेज़ अनिश्चितता' शामिल होती है.
अगर डेटा उपलब्ध है, तो 'फ़्लैग' में GNSS_MEASUREMENT_HAS_CARRIER_PHASE होना चाहिए.
double carrier_phase_uncertainty |
GnssConstellationType तारामंडल |
GnssMeasurementFlags फ़्लैग |
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 's 'ड्रिफ़्ट' फ़ील्ड भी दें. सुधार न की गई स्यूडोरेंज रेट देते समय, ऊपर बताए गए सुधार लागू न करें.
इस वैल्यू में 'स्यूडोरेंज रेट की अनिश्चितता' शामिल होती है. 'गलत' वैल्यू के पॉज़िटिव होने का मतलब है कि एसवी, रिसीवर से दूर जा रहा है.
'बिना सुधारे गए' 'स्यूडोरेंज रेट' का चिह्न और 'डॉप्लर शिफ़्ट' के चिह्न के साथ इसका संबंध, इस समीकरण से दिया गया है: स्यूडोरेंज रेट = -k * डॉप्लर शिफ़्ट (जहां k एक स्थिरांक है)
यह इस चैनल से मिले नए सिग्नल मेज़रमेंट के आधार पर, सबसे सटीक स्यूडोरेंज रेट होना चाहिए.
यह ज़रूरी है कि यह वैल्यू, कैरियर फ़ेज़ पीआरआर क्वालिटी (अनिश्चितता के हर सेकंड में कुछ सेंटीमीटर/सेकंड या इससे बेहतर) पर दी जाए - जब सिग्नल काफ़ी तेज़ और स्थिर हों. उदाहरण के लिए, 35 dB-Hz पर जीपीएस सिम्युलेटर से मिलने वाले सिग्नल.
double pseudorange_rate_uncertainty_mps |
int64_t received_sv_time_in_ns |
मेज़रमेंट के समय, जीएनएसएस से मिला हफ़्ते का समय, नैनोसेकंड में. पक्का करें कि यह फ़ील्ड अलग हो ( GnssMeasurement स्ट्रक्चर के सबसे ऊपर दी गई टिप्पणी देखें.)
जीपीएस और QZSS के लिए, यह है: मापने के समय जीपीएस का हफ़्ते का समय, नैनोसेकंड में. यह वैल्यू, मौजूदा जीपीएस हफ़्ते की शुरुआत के हिसाब से होती है.
हर सैटलाइट के लिए, सिंक की सबसे बेहतर स्थिति को ध्यान में रखते हुए, इस फ़ील्ड की मान्य रेंज इस तरह हो सकती है: खोज जारी है : [ 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 सेट है TOW डिकोड किया गया : [ 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 सेट है
एसबीएएस के लिए, यह है: मापने के समय में नैनोसेकंड में, एसबीएएस का मिला समय.
हर सैटलाइट के लिए, सिंक की सबसे बेहतर स्थिति को ध्यान में रखते हुए, इस फ़ील्ड की मान्य रेंज इस तरह हो सकती है: खोज जारी है : [ 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 की स्थिति |
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