GnssMeasurement स्ट्रक्चर का रेफ़रंस

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) सिर्फ़ जीएनएसएस सिग्नल मेज़रमेंट पर आधारित होनी चाहिए. आपके पास, अनुमानित या जानी-पहचानी पोज़िशन, वेग या समय के आधार पर, अनुमानित मेज़रमेंट का हिसाब लगाने या उन्हें रिपोर्ट करने का विकल्प नहीं है.

परिभाषा, gps.h की फ़ाइल के 1656 पंक्ति पर दी गई है.

फ़ील्ड का दस्तावेज़

डबल accumulated_delta_range_m

चैनल के आखिरी रीसेट के बाद से इकट्ठा हुई डेल्टा रेंज, मीटर में. पॉज़िटिव वैल्यू से पता चलता है कि एसवी, रिसीवर से दूर जा रहा है.

'कुल डेल्टा रेंज' का साइन और 'कैरियर फ़ेज़' के साइन के बीच का संबंध, इस समीकरण से पता चलता है: कुल डेल्टा रेंज = -k * कैरियर फ़ेज़ (जहां k एक स्थिरांक है)

अगर 'कुल डेल्टा रेंज स्टेटस' != GPS_ADR_STATE_UNKNOWN है, तो इस वैल्यू को पॉप्युलेट किया जाना चाहिए. हालांकि, यह उम्मीद की जाती है कि डेटा सिर्फ़ तब सही होता है, जब: 'accumulated delta range state' == GPS_ADR_STATE_VALID.

परिभाषा, gps.h फ़ाइल की लाइन 1835 पर दी गई है.

GnssAccumulatedDeltaRangeState accumulated_delta_range_state

इकट्ठा की गई डेल्टा रेंज की स्थिति. इससे पता चलता है कि एडीआर रीसेट किया गया है या साइकल स्लिप है (लॉक हटने का संकेत).

यह वैल्यू डालना ज़रूरी है.

परिभाषा, gps.h फ़ाइल की लाइन 1821 पर दी गई है.

double accumulated_delta_range_uncertainty_m

इकट्ठा की गई डेल्टा रेंज की 1-सिग्मा अनिश्चितता, मीटर में. अगर 'accumulated delta range state' != GPS_ADR_STATE_UNKNOWN है, तो इस वैल्यू को पॉप्युलेट किया जाना चाहिए.

परिभाषा, फ़ाइल gps.h की लाइन 1841 पर दी गई है.

c_n0_dbhz को दोगुना करना

डीबी-हर्ट्ज़ में कैरियर-टू-नॉइज़ डेंसिटी, आम तौर पर [0, 63] की रेंज में होती है. इसमें ऐंटेना पोर्ट पर सिग्नल के लिए, मेज़र की गई C/N0 वैल्यू शामिल होती है.

यह वैल्यू डालना ज़रूरी है.

परिभाषा, gps.h फ़ाइल की लाइन 1778 पर दी गई है.

int64_t carrier_cycles

सैटलाइट और रिसीवर के बीच, फ़ुल कैरियर साइकल की संख्या. रेफ़रंस फ़्रीक्वेंसी, 'carrier_frequency_hz' फ़ील्ड से मिलती है. इस वैल्यू को इकट्ठा करने के दौरान, साइकल की संभावित स्लिप और रीसेट के बारे में जानकारी, accumulated_delta_range_state फ़्लैग से मिल सकती है.

अगर डेटा उपलब्ध है, तो 'फ़्लैग' में GNSS_MEASUREMENT_HAS_CARRIER_CYCLES होना चाहिए.

परिभाषा, gps.h फ़ाइल की लाइन 1861 पर दी गई है.

फ़्लोट carrier_frequency_hz

वह कैरियर फ़्रीक्वेंसी जिस पर कोड और मैसेज मॉड्यूलेट किए जाते हैं. यह L1 या L2 हो सकती है. अगर फ़ील्ड सेट नहीं है, तो कैरियर फ़्रीक्वेंसी को L1 माना जाता है.

अगर डेटा उपलब्ध है, तो 'फ़्लैग' में GNSS_MEASUREMENT_HAS_CARRIER_FREQUENCY होना चाहिए.

परिभाषा, gps.h फ़ाइल की लाइन 1850 पर दी गई है.

double carrier_phase

रिसीवर से पता चला आरएफ फ़ेज़, [0.0, 1.0] की रेंज में. आम तौर पर, यह कैरियर फ़ेज़ मेज़रमेंट का फ़्रैक्शनल हिस्सा होता है.

रेफ़रंस फ़्रीक्वेंसी, 'carrier_frequency_hz' फ़ील्ड से मिलती है. इस वैल्यू में 'कैरियर-फ़ेज़ अनिश्चितता' शामिल होती है.

अगर डेटा उपलब्ध है, तो 'फ़्लैग' में GNSS_MEASUREMENT_HAS_CARRIER_PHASE होना चाहिए.

परिभाषा, gps.h फ़ाइल की लाइन 1873 पर दी गई है.

double carrier_phase_uncertainty

कैरियर-फ़ेज़ की 1-सिग्मा अनिश्चितता. अगर डेटा उपलब्ध है, तो 'फ़्लैग' में GNSS_MEASUREMENT_HAS_CARRIER_PHASE_UNCERTAINTY होना चाहिए.

परिभाषा, फ़ाइल gps.h की लाइन 1880 पर दी गई है.

GnssConstellationType तारामंडल

दिए गए एसवी के कॉन्स्टेलेशन की जानकारी देता है. वैल्यू, GNSS_CONSTELLATION_* में से किसी एक कॉन्स्टेंट की होनी चाहिए

परिभाषा, gps.h फ़ाइल की पंक्ति 1673 पर दी गई है.

GnssMeasurementFlags फ़्लैग

फ़्लैग का एक सेट, जो इस डेटा स्ट्रक्चर में फ़ील्ड की वैधता दिखाता है.

परिभाषा, gps.h फ़ाइल की लाइन 1661 पर दी गई है.

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 की रिपोर्ट देनी चाहिए जिनमें मल्टीपाथ नहीं है.

परिभाषा, gps.h फ़ाइल की लाइन 1901 पर दी गई है.

double pseudorange_rate_mps

टाइमस्टैंप पर, मीटर/सेकंड में सूडोरेंज रेट. किसी दी गई स्यूडोरेंज रेट वैल्यू में सुधार करने पर, रिसीवर और सैटलाइट क्लॉक की फ़्रीक्वेंसी से जुड़ी गड़बड़ियों को ठीक किया जाता है. पक्का करें कि यह फ़ील्ड अलग हो ( GnssMeasurement स्ट्रक्चर के सबसे ऊपर दी गई टिप्पणी देखें.)

'सुधार न की गई' 'स्यूडोरेंज रेट' देना ज़रूरी है. साथ ही, GpsClock 's 'ड्रिफ़्ट' फ़ील्ड भी दें. सुधार न की गई स्यूडोरेंज रेट देते समय, ऊपर बताए गए सुधार लागू न करें.

इस वैल्यू में 'स्यूडोरेंज रेट की अनिश्चितता' शामिल होती है. 'गलत' वैल्यू के पॉज़िटिव होने का मतलब है कि एसवी, रिसीवर से दूर जा रहा है.

'बिना सुधारे गए' 'स्यूडोरेंज रेट' का चिह्न और 'डॉप्लर शिफ़्ट' के चिह्न के साथ इसका संबंध, इस समीकरण से दिया गया है: स्यूडोरेंज रेट = -k * डॉप्लर शिफ़्ट (जहां k एक स्थिरांक है)

यह इस चैनल से मिले नए सिग्नल मेज़रमेंट के आधार पर, सबसे सटीक स्यूडोरेंज रेट होना चाहिए.

यह ज़रूरी है कि यह वैल्यू, कैरियर फ़ेज़ पीआरआर क्वालिटी (अनिश्चितता के हर सेकंड में कुछ सेंटीमीटर/सेकंड या इससे बेहतर) पर दी जाए - जब सिग्नल काफ़ी तेज़ और स्थिर हों. उदाहरण के लिए, 35 dB-Hz पर जीपीएस सिम्युलेटर से मिलने वाले सिग्नल.

परिभाषा, gps.h फ़ाइल की लाइन 1805 पर दी गई है.

double pseudorange_rate_uncertainty_mps

pseudorange_rate_mps की 1-सिग्मा अनिश्चितता. अनिश्चितता को एकदम सटीक (सिंगल साइड) वैल्यू के तौर पर दिखाया जाता है.

यह वैल्यू डालना ज़रूरी है.

परिभाषा, फ़ाइल gps.h की लाइन 1813 पर दी गई है.

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 सेट है

परिभाषा, gps.h फ़ाइल की लाइन 1763 पर दी गई है.

int64_t received_sv_time_uncertainty_in_ns

जीपीएस से मिले हफ़्ते के दिन के समय में, एक सिग्मा अनिश्चितता नैनोसेकंड में.

अगर 'state' != GPS_MEASUREMENT_STATE_UNKNOWN है, तो इस वैल्यू को पॉप्युलेट किया जाना चाहिए.

परिभाषा, gps.h फ़ाइल की लाइन 1770 पर दी गई है.

size_t size

sizeof(GpsMeasurement) पर सेट करें

परिभाषा, gps.h फ़ाइल की लाइन 1658 पर दी गई है.

double snr_db

डीबी में, कोरेलेटर आउटपुट पर सिग्नल-शोर अनुपात. अगर डेटा उपलब्ध है, तो 'फ़्लैग' में GNSS_MEASUREMENT_HAS_SNR होना चाहिए. यह "नॉइज़ फ़्लोर के ऊपर मौजूद कोरिलेशन पीक की ऊंचाई" और "नॉइज़ आरएमएस" के बीच का पावर रेशियो है.

परिभाषा, फ़ाइल gps.h की लाइन 1909 पर दी गई है.

GnssMeasurementState की स्थिति

हर सैटलाइट के सिंक स्टेटस के हिसाब से. यह, उस उपग्रह के सिंक की मौजूदा स्थिति दिखाता है जिससे यह जुड़ा है. सिंक की स्थिति के आधार पर, 'पाए गए जीपीएस टॉव' फ़ील्ड का हिसाब लगाया जाना चाहिए.

यह वैल्यू डालना ज़रूरी है.

परिभाषा, gps.h फ़ाइल की पंक्ति 1694 पर दी गई है.

int16_t svid

सैटलाइट वाहन का आईडी नंबर, जैसा कि GnssSvInfo::svid में बताया गया है यह वैल्यू डालना ज़रूरी है.

परिभाषा, gps.h फ़ाइल की लाइन 1667 पर दी गई है.

double time_offset_ns

वह समय ऑफ़सेट जब मापना शुरू किया गया था. इसे नैनोसेकंड में दिखाया जाता है. रेफ़रंस रिसीवर का समय, GpsData::clock::time_ns से तय होता है. इसे उसी तरह से समझा जाना चाहिए जिस तरह से GpsClock::type से दिखाया गया है.

time_offset_ns का साइन, इस समीकरण से मिलता है: मेज़रमेंट का समय = GpsClock::time_ns + time_offset_ns

यह मेज़रमेंट के लिए अलग-अलग टाइमस्टैंप उपलब्ध कराता है. साथ ही, यह नैनोसेकंड से भी कम समय में सटीक नतीजे देता है. यह वैल्यू डालना ज़रूरी है.

परिभाषा, gps.h फ़ाइल की पंक्ति 1686 पर दी गई है.


इस स्ट्रक्चर का दस्तावेज़, इस फ़ाइल से जनरेट किया गया था:
  • hardware/libhardware/include/hardware/ gps.h