Referensi Struct GnssMeasurement
#include <
gps.h
>
Kolom Data |
|
size_t | size |
GnssMeasurementFlags | flag |
int16_t | svid |
GnssConstellationType | konstelasi |
ganda | time_offset_ns |
GnssMeasurementState | status |
int64_t | received_sv_time_in_ns |
int64_t | received_sv_time_uncertainty_in_ns |
ganda | c_n0_dbhz |
ganda | pseudorange_rate_mps |
ganda | pseudorange_rate_uncertainty_mps |
GnssAccumulatedDeltaRangeState | accumulated_delta_range_state |
ganda | accumulated_delta_range_m |
ganda | accumulated_delta_range_uncertainty_m |
float | carrier_frequency_hz |
int64_t | carrier_cycles |
ganda | carrier_phase |
ganda | carrier_phase_uncertainty |
GnssMultipathIndicator | multipath_indicator |
ganda | snr_db |
Deskripsi Mendetail
Mewakili Pengukuran GNSS, yang berisi informasi mentah dan yang dihitung.
Independensi - Semua informasi pengukuran sinyal (misalnya, sv_time, pseudorange_rate, multipath_indicator) yang dilaporkan dalam struct ini harus didasarkan pada pengukuran sinyal GNSS saja. Anda tidak boleh menyintesis pengukuran dengan menghitung atau melaporkan pengukuran yang diharapkan berdasarkan posisi, kecepatan, atau waktu yang diketahui atau diperkirakan.
Dokumentasi Bidang
double accumulated_delta_range_m |
Rentang delta kumulatif sejak reset channel terakhir dalam meter. Nilai positif menunjukkan bahwa SV bergerak menjauh dari penerima.
Tanda 'akumulasi rentang delta' dan hubungannya dengan tanda 'fase operator' diberikan oleh persamaan: akumulasi rentang delta = -k * fase operator (dengan k adalah konstanta)
Nilai ini harus diisi jika 'accumulated delta range state' != GPS_ADR_STATE_UNKNOWN. Namun, data diperkirakan hanya akurat jika: 'accumulated delta range state' == GPS_ADR_STATE_VALID.
GnssAccumulatedDeltaRangeState accumulated_delta_range_state |
double accumulated_delta_range_uncertainty_m |
c_n0_dbhz ganda |
int64_t carrier_cycles |
Jumlah siklus pembawa penuh antara satelit dan penerima. Frekuensi referensi diberikan oleh kolom 'carrier_frequency_hz'. Indikasi kemungkinan slip siklus dan reset dalam akumulasi nilai ini dapat disimpulkan dari flag accumulated_delta_range_state.
Jika data tersedia, 'flags' harus berisi GNSS_MEASUREMENT_HAS_CARRIER_CYCLES.
float carrier_frequency_hz |
carrier_phase ganda |
Fase RF yang terdeteksi oleh penerima, dalam rentang [0,0, 1,0]. Ini biasanya merupakan bagian pecahan dari pengukuran fase pembawa yang lengkap.
Frekuensi referensi diberikan oleh kolom 'carrier_frequency_hz'. Nilai ini berisi 'ketidakpastian fase pembawa' di dalamnya.
Jika data tersedia, 'flags' harus berisi GNSS_MEASUREMENT_HAS_CARRIER_PHASE.
carrier_phase_uncertainty ganda |
GnssConstellationType konstelasi |
Flag GnssMeasurementFlags |
GnssMultipathIndicator multipath_indicator |
Enumerasi yang menunjukkan status 'multi-jalur' peristiwa.
Indikator multi-jalur dimaksudkan untuk melaporkan keberadaan sinyal tumpang-tindih yang muncul sebagai puncak korelasi yang terdistorsi.
- jika ada bentuk puncak korelasi yang terdistorsi, laporkan bahwa multipath adalah GNSS_MULTIPATH_INDICATOR_PRESENT.
- jika tidak ada bentuk puncak korelasi yang terdistorsi, laporkan GNSS_MULTIPATH_INDICATOR_NOT_PRESENT
- jika sinyal terlalu lemah untuk membedakan informasi ini, laporkan GNSS_MULTIPATH_INDICATOR_UNKNOWN
Contoh: saat melakukan pengujian Performa Multijalur tumpang-tindih standar (3GPP TS 34.171), indikator Multijalur harus melaporkan GNSS_MULTIPATH_INDICATOR_PRESENT untuk sinyal yang dilacak, dan berisi multijalur, serta GNSS_MULTIPATH_INDICATOR_NOT_PRESENT untuk sinyal yang dilacak dan tidak berisi multijalur.
double pseudorange_rate_mps |
Kecepatan pseudorange pada stempel waktu dalam m/dtk. Koreksi nilai Kecepatan Pseudorange tertentu mencakup koreksi untuk error frekuensi penerima dan jam satelit. Pastikan kolom ini bersifat independen (lihat komentar di bagian atas struct GnssMeasurement .)
Anda harus memberikan 'kecepatan pseudorange' 'yang tidak dikoreksi', dan juga memberikan kolom 'drift' GpsClock (Saat memberikan kecepatan pseudorange yang tidak dikoreksi, jangan terapkan koreksi yang dijelaskan di atas.)
Nilai ini menyertakan 'ketidakpastian kecepatan pseudorange' di dalamnya. Nilai 'uncorrected' positif menunjukkan bahwa SV bergerak menjauh dari penerima.
Tanda 'kecepatan pseudo-rentang' yang 'tidak dikoreksi' dan hubungannya dengan tanda 'pergeseran doppler' diberikan oleh persamaan: kecepatan pseudo-rentang = -k * pergeseran doppler (dengan k adalah konstanta)
Ini harus menjadi kecepatan pseudo-rentang yang paling akurat yang tersedia, berdasarkan pengukuran sinyal baru dari saluran ini.
Nilai ini harus diberikan pada kualitas PRR fase pembawa yang khas (beberapa cm/detik per detik ketidakpastian, atau lebih baik) - jika sinyal cukup kuat & stabil, misalnya sinyal dari simulator GPS pada >= 35 dB-Hz.
double pseudorange_rate_uncertainty_mps |
int64_t received_sv_time_in_ns |
Waktu Minggu GNSS yang diterima pada waktu pengukuran, dalam nanodetik. Pastikan kolom ini bersifat independen (lihat komentar di bagian atas struct GnssMeasurement .)
Untuk GPS & QZSS, ini adalah: Waktu Mingguan GPS yang Diterima pada waktu pengukuran, dalam nanodetik. Nilai ini bersifat relatif terhadap awal minggu GPS saat ini.
Dengan status sinkronisasi tertinggi yang dapat dicapai, per setiap satelit, rentang yang valid untuk kolom ini dapat berupa: Penelusuran : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Kunci kode C/A : [ 0 1 md ] : GNSS_MEASUREMENT_STATE_CODE_LOCK ditetapkan Sinkronisasi bit : [ 0 20 md ] : GNSS_MEASUREMENT_STATE_BIT_SYNC ditetapkan Sinkronisasi subframe : [ 0 6 dtk ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC ditetapkan TOW didekode : [ 0 1 minggu ] : GNSS_MEASUREMENT_STATE_TOW_DECODED ditetapkan
Perhatikan dengan baik: jika ada ambiguitas dalam milidetik bilangan bulat, GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS harus ditetapkan sebagaimana mestinya, di kolom 'state'.
Nilai ini harus diisi jika 'state' != GNSS_MEASUREMENT_STATE_UNKNOWN.
Untuk Glonass, ini adalah: Waktu Glonass yang diterima, pada waktu pengukuran dalam nanodetik.
Dengan status sinkronisasi tertinggi yang dapat dicapai, per setiap satelit, rentang yang valid untuk kolom ini dapat berupa: Penelusuran : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A code lock : [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK is set Symbol sync : [ 0 10ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC is set Bit sync : [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC is set String sync : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC is set Time of day : [ 0 1day ] : GNSS_MEASUREMENT_STATE_GLO_TOD_DECODED is set
Untuk Beidou, ini adalah: Waktu mingguan Beidou yang diterima, pada waktu pengukuran dalam nanodetik.
Dengan status sinkronisasi tertinggi yang dapat dicapai, per setiap satelit, rentang yang valid untuk kolom ini dapat berupa: Penelusuran : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A code lock: [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK is set Bit sync (D2): [ 0 2ms ] : GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC is set Bit sync (D1): [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC is set Subframe (D2): [ 0 0.6s ] : GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC is set Subframe (D1): [ 0 6s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC is set Time of week : [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED is set
Untuk Galileo, ini adalah: Menerima waktu Galileo dalam seminggu, pada waktu pengukuran dalam nanodetik.
Kunci kode E1BC : [ 0 4 md ] : GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK ditetapkan Kunci kode ke-2 E1C: [ 0 100 md ] : GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK ditetapkan
Halaman E1B : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC ditetapkan Waktu dalam seminggu: [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED ditetapkan
Untuk SBAS, ini adalah: Waktu SBAS yang diterima, pada waktu pengukuran dalam nanodetik.
Dengan status sinkronisasi tertinggi yang dapat dicapai, per setiap satelit, rentang yang valid untuk kolom ini dapat berupa: Penelusuran : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A code lock: [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK is set Symbol sync : [ 0 2ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC is set Message : [ 0 1s ] : GNSS_MEASUREMENT_STATE_SBAS_SYNC is set
int64_t received_sv_time_uncertainty_in_ns |
snr_db ganda |
Status GnssMeasurementState |
int16_t svid |
Nomor ID kendaraan satelit, seperti yang ditentukan dalam GnssSvInfo::svid Ini adalah nilai wajib.
double time_offset_ns |
Offset waktu saat pengukuran dilakukan dalam nanodetik. Waktu penerima referensi ditentukan oleh GpsData::clock::time_ns dan harus ditafsirkan dengan cara yang sama seperti yang ditunjukkan oleh GpsClock::type .
Tanda time_offset_ns diberikan oleh persamaan berikut: waktu pengukuran = GpsClock::time_ns + time_offset_ns
Fitur ini memberikan stempel waktu individual untuk pengukuran, dan memungkinkan akurasi sub-nanodetik. Nilai ini wajib diisi.
Dokumentasi untuk struct ini dibuat dari file berikut:
- hardware/libhardware/include/hardware/ gps.h