GnssÖlçüm Yapısı Referansı
#include < gps.h >
Veri alanları | |
size_t | boyut |
GnssÖlçümBayrakları | bayraklar |
int16_t | video |
GnssTakımyıldız Türü | takımyıldız |
çift | time_offset_ns |
GnssÖlçümDurumu | durum |
int64_t | alınan_sv_time_in_ns |
int64_t | alınan_sv_time_uncertainty_in_ns |
çift | c_n0_dbhz |
çift | sözde aralık_oran_mps |
çift | pseudorange_rate_uncertainty_mps |
GnssBirikmişDeltaRangeState | birikmiş_delta_range_state |
çift | birikmiş_delta_range_m |
çift | birikmiş_delta_range_uncertainty_m |
batmadan yüzmek | taşıyıcı_frekans_hz |
int64_t | taşıyıcı_çevrimler |
çift | taşıyıcı_fazı |
çift | taşıyıcı_faz_belirsizliği |
GnssÇok Yol Göstergesi | çoklu yol göstergesi |
çift | snr_db |
Detaylı Açıklama
Bir GNSS Ölçümünü temsil eder, ham ve hesaplanmış bilgileri içerir.
Bağımsızlık - Bu yapıda raporlanan tüm sinyal ölçüm bilgileri (örn. sv_time, pseudorange_rate, multipath_indicator) yalnızca GNSS sinyal ölçümlerine dayanmalıdır. Bilinen veya tahmin edilen konum, hız veya zamana dayalı beklenen ölçümleri hesaplayarak veya raporlayarak ölçümleri sentezleyemezsiniz.
Saha Dokümantasyonu
çift birikmiş_delta_range_m |
Son kanalın sıfırlanmasından bu yana metre cinsinden birikmiş delta aralığı. Pozitif bir değer SV'nin alıcıdan uzaklaştığını gösterir.
'Birikmiş delta aralığı'nın işareti ve bunun 'taşıyıcı faz' işaretiyle ilişkisi şu denklemle verilir: birikmiş delta aralığı = -k * taşıyıcı faz (burada k bir sabittir)
'Birikmiş delta aralığı durumu' != GPS_ADR_STATE_UNKNOWN ise bu değerin doldurulması gerekir. Ancak verilerin yalnızca şu durumlarda doğru olması beklenir: 'birikmiş delta aralığı durumu' == GPS_ADR_STATE_VALID.
GnssAccumulatedDeltaRangeState birikmiş_delta_range_state |
çift birikmiş_delta_range_uncertainty_m |
çift c_n0_dbhz |
int64_t taşıyıcı_döngüler |
Uydu ile alıcı arasındaki tam taşıyıcı döngülerinin sayısı. Referans frekansı 'carrier_frequency_hz' alanı tarafından verilir. Bu değerin birikimindeki olası döngü kaymaları ve sıfırlamaların göstergeleri, birikmiş_delta_aralık_durum bayraklarından çıkarılabilir.
Veri mevcutsa, 'bayraklar' GNSS_MEASUREMENT_HAS_CARRIER_CYCLES içermelidir.
kayan taşıyıcı_frequency_hz |
çift taşıyıcı_faz |
Alıcı tarafından [0,0, 1,0] aralığında algılanan RF fazı. Bu genellikle tam taşıyıcı faz ölçümünün kesirli kısmıdır.
Referans frekansı 'carrier_frequency_hz' alanı tarafından verilir. Değer, içinde 'taşıyıcı faz belirsizliğini' içerir.
Veri mevcutsa 'bayraklar' GNSS_MEASUREMENT_HAS_CARRIER_PHASE içermelidir.
çift taşıyıcı_faz_uncertainty |
GnssConstellationType takımyıldızı |
GnssÖlçümBayraklar bayraklar |
GnssMultipathIndicator çoklu yol_göstergesi |
Olayın 'çok yollu' durumunu gösteren bir numaralandırma.
Çok yollu Göstergenin amacı, bozuk korelasyon tepe noktaları olarak ortaya çıkan örtüşen sinyallerin varlığını bildirmektir.
- bozuk bir korelasyon tepe şekli varsa, çoklu yolun GNSS_MULTIPATH_INDICATOR_PRESENT olduğunu bildirin.
- bozuk bir korelasyon tepe şekli yoksa GNSS_MULTIPATH_INDICATOR_NOT_PRESENT'i rapor edin
- sinyaller bu bilgiyi ayırt edemeyecek kadar zayıfsa GNSS_MULTIPATH_INDICATOR_UNKNOWN'u bildirin
Örnek: standartlaştırılmış örtüşen Çok Yollu Performans testi (3GPP TS 34.171) yapılırken, Çok Yollu gösterge, izlenen ve çok yol içeren sinyaller için GNSS_MULTIPATH_INDICATOR_PRESENT'i ve izlenen ve çok yol içermeyen sinyaller için GNSS_MULTIPATH_INDICATOR_NOT_PRESENT'i rapor etmelidir.
çift pseudorange_rate_mps |
Zaman damgasındaki m/s cinsinden sözde aralık oranı. Belirli bir Sahte Menzil Oranı değerinin düzeltilmesi, alıcı ve uydu saat frekansı hatalarına yönelik düzeltmeleri içerir. Bu alanın bağımsız olduğundan emin olun ( GnssMeasurement yapısının üst kısmındaki açıklamaya bakın.)
'Düzeltilmemiş' 'sözde aralık hızının' sağlanması ve GpsClock'un 'sürüklenme' alanının da sağlanması zorunludur (Düzeltilmemiş sözde aralık hızı sağlanırken yukarıda açıklanan düzeltmeleri uygulamayın.)
Değer, içindeki 'sözde oran belirsizliğini' içerir. Pozitif 'düzeltilmemiş' değer, SV'nin alıcıdan uzaklaştığını gösterir.
'Düzeltilmemiş' 'sözde aralık oranı'nın işareti ve bunun 'doppler kayması' işaretiyle ilişkisi şu denklemle verilir: sözde aralık hızı = -k * doppler kayması (burada k bir sabittir)
Bu, bu kanaldan gelen taze sinyal ölçümlerine dayalı olarak mevcut en doğru sözde aralık oranı olmalıdır.
Bu değerin tipik taşıyıcı faz PRR kalitesinde sağlanması zorunludur (saniyede birkaç cm/sn belirsizlik veya daha iyisi), sinyaller yeterince güçlü ve kararlı olduğunda, örneğin bir GPS simülatöründen >= 35 dB-Hz'de gelen sinyaller.
çift sözde aralık_oran_uncertainty_mps |
int64_t alınan_sv_time_in_ns |
Ölçüm zamanında nanosaniye cinsinden alınan GNSS Haftanın Zamanı. Bu alanın bağımsız olduğundan emin olun ( GnssMeasurement yapısının üst kısmındaki açıklamaya bakın.)
GPS ve QZSS için bu şu şekildedir: Nanosaniye cinsinden ölçüm zamanında alınan GPS Haftanın Zamanı. Değer, geçerli GPS haftasının başlangıcına göredir.
Her uydu için elde edilebilecek en yüksek senkronizasyon durumu göz önüne alındığında, bu alan için geçerli aralık şu şekilde olabilir: Arama : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A kod kilidi : [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK ayarlandı Bit senkronizasyonu : [ 0 20 ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC ayarlandı Alt çerçeve senkronizasyonu : [ 0 6s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC ayarlandı TOW kodu çözüldü : [ 0 1 hafta ] : GNSS_MEASUREMENT_STATE_TOW_DECODED ayarlandı
İyi not edin: milisaniye tamsayısında herhangi bir belirsizlik varsa, 'durum' alanında GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS buna göre ayarlanmalıdır.
'state' != GNSS_MEASUREMENT_STATE_UNKNOWN ise bu değerin doldurulması gerekir.
Glonass için bu şu şekildedir: Nanosaniye cinsinden ölçüm zamanında günün alınan Glonass saati.
Her uydu için elde edilebilecek en yüksek senkronizasyon durumu göz önüne alındığında, bu alan için geçerli aralık şu şekilde olabilir: Arama : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A kod kilidi : [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK ayarlandı Sembol senkronizasyonu : [ 0 10 ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC ayarlandı Bit senkronizasyonu : [ 0 20 ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC ayarlandı Dize senkronizasyonu : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC ayarlandı Günün saati : [ 0 1 gün ] : GNSS_MEASUREMENT_STATE_GLO_TOD_DECO DED ayarlandı
Beidou için bu şu şekildedir: Haftanın Beidou zamanında, nanosaniye cinsinden ölçüm zamanında alınmıştır.
Her uydu için elde edilebilecek en yüksek senkronizasyon durumu göz önüne alındığında, bu alan için geçerli aralık şöyle olabilir: Arama: [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A kod kilidi: [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK ayarlandı Bit senkronizasyonu (D2): [ 0 2ms ] : GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC ayarlandı Bit senkronizasyonu (D1): [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC ayarlandı Alt çerçeve (D2): [ 0 0,6s ] : GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC ayarlandı Alt çerçeve (D1): [ 0 6s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC ayarlandı Zaman hafta : [ 0 1 hafta ] : GNSS_MEASUREMENT_STATE_TOW_DECODED ayarlandı
Galileo için bu şu şekildedir: Haftanın alınan Galileo zamanı, nanosaniye cinsinden ölçüm zamanında.
E1BC kod kilidi : [ 0 4 ms ] : GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK ayarlandı E1C 2. kod kilidi: [ 0 100 ms ] : GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK ayarlandı
E1B sayfası : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC ayarlandı Haftanın zamanı: [ 0 1 hafta ] : GNSS_MEASUREMENT_STATE_TOW_DECODED ayarlandı
SBAS için bu şu şekildedir: Nanosaniye cinsinden ölçüm zamanında alınan SBAS süresi.
Her uydu için elde edilebilecek en yüksek senkronizasyon durumu göz önüne alındığında, bu alan için geçerli aralık şu şekilde olabilir: Arama: [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A kod kilidi: [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK ayarlandı Sembol senkronizasyonu : [ 0 2 ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC ayarlandı Mesaj : [ 0 1s ] : GNSS_MEASUREMENT_STATE_SBAS_SYNC ayarlandı
int64_t alınan_sv_time_uncertainty_in_ns |
çift snr_db |
GnssÖlçümDurum durumu |
int16_t svid |
GnssSvInfo::svid'de tanımlandığı şekliyle uydu araç kimlik numarası Bu zorunlu bir değerdir.
çift time_offset_ns |
Ölçümün nanosaniye cinsinden alındığı zaman farkı. Referans alıcının zamanı GpsData::clock::time_ns tarafından belirtilir ve GpsClock::type ile gösterilenle aynı şekilde yorumlanmalıdır.
time_offset_ns'nin işareti aşağıdaki denklemle verilir: ölçüm süresi = GpsClock::time_ns + time_offset_ns
Ölçüm için ayrı bir zaman damgası sağlar ve nanosaniyenin altında doğruluk sağlar. Bu zorunlu bir değerdir.
Bu yapıya ilişkin belgeler aşağıdaki dosyadan oluşturulmuştur:
- donanım/libdonanım/include/donanım/ gps.h