GnssMeasurement Yapısı Referansı
#include <
gps.h
>
Veri Alanları |
|
size_t | size |
GnssMeasurementFlags | işaretleri |
int16_t | svid |
GnssConstellationType | takımyıldız |
çift | time_offset_ns |
GnssMeasurementState | state |
int64_t | received_sv_time_in_ns |
int64_t | received_sv_time_uncertainty_in_ns |
çift | c_n0_dbhz |
çift | pseudorange_rate_mps |
çift | pseudorange_rate_uncertainty_mps |
GnssAccumulatedDeltaRangeState | accumulated_delta_range_state |
çift | accumulated_delta_range_m |
çift | accumulated_delta_range_uncertainty_m |
float | carrier_frequency_hz |
int64_t | carrier_cycles |
çift | carrier_phase |
çift | carrier_phase_uncertainty |
GnssMultipathIndicator | multipath_indicator |
çift | snr_db |
Ayrıntılı Açıklama
GNSS ölçümünü temsil eder, ham ve hesaplanmış bilgiler içerir.
Bağımsızlık: Bu yapıda raporlanan tüm sinyal ölçümü bilgileri (ör. sv_time, pseudorange_rate, multipath_indicator) yalnızca GNSS sinyal ölçümlerine dayalı olmalıdır. Bilinen veya tahmin edilen konuma, hıza ya da zamana göre beklenen ölçümleri hesaplayıp raporlayarak ölçümleri sentezleyemezsiniz.
Alan Belgeleri
double accumulated_delta_range_m |
Son kanal sıfırlamasından bu yana biriken delta aralığı (metre cinsinden). Pozitif değer, SV'nin alıcıdan uzaklaştığını gösterir.
"Toplam delta aralığı"nın işareti ve "taşıyıcı faz"ın işaretiyle ilişkisi şu denklemle verilir: Toplu delta aralığı = -k * taşıyıcı faz (k bir sabittir)
"toplanan delta aralığı durumu" != GPS_ADR_STATE_UNKNOWN ise bu değer doldurulmalıdır. Ancak verilerin yalnızca şu durumda doğru olması beklenir: "toplanan delta aralığı durumu" == GPS_ADR_STATE_VALID.
GnssAccumulatedDeltaRangeState accumulated_delta_range_state |
double accumulated_delta_range_uncertainty_m |
çift c_n0_dbhz |
int64_t carrier_cycles |
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 toplanmasında olası döngü kaymalarına ve sıfırlamalara dair göstergeler, accumulated_delta_range_state işaretlerinden çıkarılabilir.
Veriler mevcutsa "flags", GNSS_MEASUREMENT_HAS_CARRIER_CYCLES değerini içermelidir.
float carrier_frequency_hz |
çift carrier_phase |
Alıcı tarafından algılanan RF fazı ("0, 0" ile "1, 0" aralığında). 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, "taşıyıcı faz belirsizliğini" içerir.
Veriler mevcutsa "flags", GNSS_MEASUREMENT_HAS_CARRIER_PHASE değerini içermelidir.
double carrier_phase_uncertainty |
GnssConstellationType constellation |
GnssMeasurementFlags işaretleri |
GnssMultipathIndicator multipath_indicator |
Etkinliğin "çoklu yol" durumunu belirten bir listeleme.
Çoklu yol göstergesi, bozuk korelasyon zirveleri olarak görünen örtüşen sinyallerin varlığını bildirmek için tasarlanmıştır.
- Bozuk bir korelasyon tepe noktası şekli varsa çoklu yolun GNSS_MULTIPATH_INDICATOR_PRESENT olduğunu bildirin.
- Bozuk bir korelasyon tepe noktası şekli yoksa GNSS_MULTIPATH_INDICATOR_NOT_PRESENT değerini bildirin.
- Sinyaller bu bilgileri ayırt edemeyecek kadar zayıfsa GNSS_MULTIPATH_INDICATOR_UNKNOWN değerini bildirin.
Örnek: Standartlaştırılmış örtüşen çoklu yol performansı testi (3GPP TS 34.171) yapılırken çoklu yol göstergesi, izlenen ve çoklu yol içeren sinyaller için GNSS_MULTIPATH_INDICATOR_PRESENT değerini, izlenen ve çoklu yol içermeyen sinyaller için ise GNSS_MULTIPATH_INDICATOR_NOT_PRESENT değerini bildirmelidir.
çift pseudorange_rate_mps |
Zaman damgasındaki sanal menzil hızı (m/sa.). Belirli bir Sanal Aralık Hızı değerinin düzeltmesi, alıcı ve uydu saati frekansı hatalarının düzeltmelerini içerir. Bu alanın bağımsız olduğundan emin olun ( GnssMeasurement yapısının üst kısmındaki yoruma bakın).
"Düzeltilmemiş" "sanal menzil hızı"nın yanı sıra GpsClock 'sapma" alanının da sağlanması zorunludur (Düzeltilmemiş sanal menzil hızını sağlarken yukarıda açıklanan düzeltmeleri uygulamayın.)
Değer, "sanal menzil hızı belirsizliğini" içerir. Pozitif "düzeltilmemiş" değer, SV'nin alıcıdan uzaklaştığını gösterir.
"Düzeltilmemiş" "sanal menzil hızı"nın işareti ve "Doppler kayması"nın işaretiyle ilişkisi şu denklemle verilir: sanal menzil hızı = -k * Doppler kayması (burada k bir sabittir)
Bu, bu kanaldaki yeni sinyal ölçümlerine dayalı olarak mevcut en doğru sanal menzil hızı olmalıdır.
Bu değerin, sinyaller yeterince güçlü ve kararlı olduğunda (ör. >= 35 dB-Hz frekansındaki bir GPS simülatöründen gelen sinyaller) tipik taşıyıcı faz PRR kalitesinde (saniye başına birkaç cm/sn belirsizlik veya daha iyi) sağlanması zorunludur.
çift pseudorange_rate_uncertainty_mps |
int64_t received_sv_time_in_ns |
Ölçüm sırasında alınan GNSS haftanın günü (nanosaniye cinsinden). Bu alanın bağımsız olduğundan emin olun ( GnssMeasurement yapısının üst kısmındaki yoruma bakın).
GPS ve QZSS için bu değer: Ölçüm zamanında alınan GPS Haftanın Günü, nanosaniye cinsinden. Değer, geçerli GPS haftasının başlangıcına göredir.
Elde edilebilecek en yüksek senkronizasyon durumu göz önüne alındığında, her bir uydu için bu alanın geçerli aralığı şunlar olabilir: Arama : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A kod kilidi : [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK ayarlanır Bit senkronizasyonu : [ 0 20 ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC ayarlanır Alt çerçeve senkronizasyonu : [ 0 6 s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC ayarlanır TOW kodu çözüldü : [ 0 1 hafta ] : GNSS_MEASUREMENT_STATE_TOW_DECODED ayarlanır
Dikkat: Tam sayı milisaniyede belirsizlik varsa "durum" alanında GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS buna göre ayarlanmalıdır.
"state" != GNSS_MEASUREMENT_STATE_UNKNOWN ise bu değer doldurulmalıdır.
Glonass için bu, nanosaniye cinsinden ölçüm zamanında alınan Glonass günün saatidir.
Her bir uydu için ulaşılabilecek 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 ayarlanır Simge senkronizasyonu : [ 0 10 ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC ayarlanır Bit senkronizasyonu : [ 0 20 ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC ayarlanır Dize senkronizasyonu : [ 0 2 s ] : GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC ayarlanır Saat : [ 0 1 gün ] : GNSS_MEASUREMENT_STATE_GLO_TOD_DECODED ayarlanır
Beidou için bu değer: Ölçüm zamanında nanosaniye cinsinden alınan Beidou haftanın günü.
Elde edilebilecek en yüksek senkronizasyon durumu göz önüne alındığında, her uydu için bu alanın geçerli aralığı şunlar olabilir: Arama : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A kod kilidi: [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK ayarlanır Bit senkronizasyonu (D2): [ 0 2ms ] : GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC ayarlanır Bit senkronizasyonu (D1): [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC ayarlanır Alt çerçeve (D2): [ 0 0, 6 saniye ] : GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC ayarlanır Alt çerçeve (D1): [ 0 6 saniye ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC ayarlanır Haftanın zamanı : [ 0 1 hafta ] : GNSS_MEASUREMENT_STATE_TOW_DECODED ayarlanır
Galileo için bu değer: Ölçüm zamanında nanosaniye cinsinden alınan Galileo haftanın günü.
E1BC kod kilidi : [ 0 4ms ] : GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK ayarlandı E1C 2. kod kilidi: [ 0 100ms ] : GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK ayarlandı
E1B sayfası : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC ayarlandı Haftanın günü: [ 0 1hafta ] : GNSS_MEASUREMENT_STATE_TOW_DECODED ayarlandı
SBAS için bu değer: Ölçüm zamanında nanosaniye cinsinden alınan SBAS zamanı.
Elde edilebilecek en yüksek senkronizasyon durumu göz önüne alındığında, her bir uydu için bu alanın geçerli aralığı şunlar olabilir: Arama : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A kod kilidi: [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK ayarlanır Simge senkronizasyonu : [ 0 2 ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC ayarlanır Mesaj : [ 0 1 s ] : GNSS_MEASUREMENT_STATE_SBAS_SYNC ayarlanır
int64_t received_sv_time_uncertainty_in_ns |
size_t boyutu |
çift snr_db |
GnssMeasurementState durum |
int16_t svid |
GnssSvInfo::svid bölümünde tanımlandığı şekilde uydu aracı kimlik numarası Bu zorunlu bir değerdir.
double time_offset_ns |
Ölçümün yapıldığı zaman kayması (nanosaniye cinsinden). Referans alıcı saati, GpsData::clock::time_ns tarafından belirtilir ve GpsClock::type tarafından belirtildiği şekilde yorumlanmalıdır.
time_offset_ns değerinin işareti aşağıdaki denklemle verilir: ölçüm zamanı = 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ının dokümanları aşağıdaki dosyadan oluşturulmuştur:
- hardware/libhardware/include/hardware/ gps.h