Tham chiếu cấu trúc GnssMeasurement
#include <
gps.h
>
Trường dữ liệu |
|
size_t | size |
GnssMeasurementFlags | cờ |
int16_t | svid |
GnssConstellationType | chòm sao |
double | time_offset_ns |
GnssMeasurementState | trạng thái |
int64_t | received_sv_time_in_ns |
int64_t | received_sv_time_uncertainty_in_ns |
double | c_n0_dbhz |
double | pseudorange_rate_mps |
double | pseudorange_rate_uncertainty_mps |
GnssAccumulatedDeltaRangeState | accumulated_delta_range_state |
double | accumulated_delta_range_m |
double | accumulated_delta_range_uncertainty_m |
float | carrier_frequency_hz |
int64_t | carrier_cycles |
double | carrier_phase |
double | carrier_phase_uncertainty |
GnssMultipathIndicator | multipath_indicator |
double | snr_db |
Nội dung mô tả chi tiết
Biểu thị một phép đo GNSS, chứa thông tin thô và thông tin được tính toán.
Độ độc lập – Tất cả thông tin đo lường tín hiệu (ví dụ: sv_time, pseudorange_rate, multipath_indicator) được báo cáo trong cấu trúc này chỉ được dựa trên thông tin đo lường tín hiệu GNSS. Bạn không được tổng hợp các phép đo bằng cách tính toán hoặc báo cáo các phép đo dự kiến dựa trên vị trí, tốc độ hoặc thời gian đã biết hoặc ước tính.
Tài liệu về trường
double accumulated_delta_range_m |
Phạm vi delta tích luỹ kể từ lần đặt lại kênh gần đây nhất (tính bằng mét). Giá trị dương cho biết SV đang di chuyển ra xa bộ thu.
Dấu của "dải delta tích luỹ" và mối quan hệ của dấu này với dấu của "pha sóng mang" được đưa ra theo phương trình: dải delta tích luỹ = -k * pha sóng mang (trong đó k là hằng số)
Bạn phải điền giá trị này nếu "trạng thái phạm vi delta tích luỹ" != GPS_ADR_STATE_UNKNOWN. Tuy nhiên, dữ liệu chỉ chính xác khi: "trạng thái phạm vi delta tích luỹ" == GPS_ADR_STATE_VALID.
GnssAccumulatedDeltaRangeState accumulated_delta_range_state |
double accumulated_delta_range_uncertainty_m |
double c_n0_dbhz |
int64_t carrier_cycles |
Số chu kỳ sóng mang đầy đủ giữa vệ tinh và bộ thu. Tần số tham chiếu được cung cấp bởi trường "carrier_frequency_hz". Bạn có thể suy ra các dấu hiệu về việc có thể trượt chu kỳ và đặt lại trong quá trình tích luỹ giá trị này từ cờ accumulated_delta_range_state.
Nếu có dữ liệu, "cờ" phải chứa GNSS_MEASUREMENT_HAS_CARRIER_CYCLES.
float carrier_frequency_hz |
carrier_phase đôi |
Pha RF do bộ thu phát hiện, trong phạm vi [0,0, 1,0]. Đây thường là phần thập phân của phép đo pha sóng mang hoàn chỉnh.
Tần số tham chiếu được cung cấp bởi trường "carrier_frequency_hz". Giá trị này chứa "mức độ không chắc chắn về pha sóng mang".
Nếu có dữ liệu, "cờ" phải chứa GNSS_MEASUREMENT_HAS_CARRIER_PHASE.
double carrier_phase_uncertainty |
GnssConstellationType constellation |
GnssMultipathIndicator multipath_indicator |
Một enum cho biết trạng thái "đa đường dẫn" của sự kiện.
Chỉ báo nhiều đường truyền dùng để báo cáo sự hiện diện của các tín hiệu chồng chéo thể hiện dưới dạng các đỉnh tương quan bị méo.
- nếu có hình dạng đỉnh tương quan bị méo, hãy báo cáo rằng đa đường truyền là GNSS_MULTIPATH_INDICATOR_PRESENT.
- nếu không có hình dạng đỉnh tương quan bị méo, hãy báo cáo GNSS_MULTIPATH_INDICATOR_NOT_PRESENT
- nếu tín hiệu quá yếu để phân biệt thông tin này, hãy báo cáo GNSS_MULTIPATH_INDICATOR_UNKNOWN
Ví dụ: khi thực hiện kiểm thử hiệu suất nhiều đường truyền chồng chéo được chuẩn hoá (3GPP TS 34.171), chỉ báo Nhiều đường truyền sẽ báo cáo GNSS_MULTIPATH_INDICATOR_PRESENT cho những tín hiệu được theo dõi và chứa nhiều đường truyền, cũng như GNSS_MULTIPATH_INDICATOR_NOT_PRESENT cho những tín hiệu được theo dõi và không chứa nhiều đường truyền.
double pseudorange_rate_mps |
Tốc độ phạm vi giả lập tại dấu thời gian tính bằng m/giây. Giá trị sửa lỗi của Tốc độ dải giả định nhất định bao gồm cả các giá trị sửa lỗi cho lỗi tần số đồng hồ vệ tinh và lỗi máy thu. Đảm bảo rằng trường này độc lập (xem nhận xét ở đầu cấu trúc GnssMeasurement ).
Bạn bắt buộc phải cung cấp "tốc độ khoảng cách giả" "chưa được hiệu chỉnh" và cũng phải cung cấp trường "sai số" của GpsClock (Khi cung cấp tốc độ khoảng cách giả chưa được hiệu chỉnh, đừng áp dụng các thông tin hiệu chỉnh được mô tả ở trên.)
Giá trị này bao gồm "mức độ không chắc chắn về tốc độ phạm vi giả". Giá trị "chưa được hiệu chỉnh" dương cho biết SV đang di chuyển ra xa bộ thu.
Dấu của "tốc độ khoảng cách giả" "chưa được hiệu chỉnh" và mối quan hệ của tốc độ này với dấu của "độ lệch doppler" được cho bởi phương trình: tốc độ khoảng cách giả = -k * độ lệch doppler (trong đó k là hằng số)
Đây là tốc độ giả lập chính xác nhất hiện có, dựa trên các phép đo tín hiệu mới từ kênh này.
Bạn bắt buộc phải cung cấp giá trị này ở chất lượng PRR pha sóng mang thông thường (vài cm/giây mỗi giây không chắc chắn hoặc tốt hơn) – khi tín hiệu đủ mạnh và ổn định, ví dụ: tín hiệu từ trình mô phỏng GPS ở mức >= 35 dB-Hz.
double pseudorange_rate_uncertainty_mps |
int64_t received_sv_time_in_ns |
Thời gian trong tuần theo GNSS đã nhận được tại thời điểm đo lường, tính bằng nano giây. Đảm bảo rằng trường này độc lập (xem nhận xét ở đầu cấu trúc GnssMeasurement ).
Đối với GPS và QZSS, giá trị này là: Thời gian trong tuần của GPS đã nhận được tại thời điểm đo lường, tính bằng nano giây. Giá trị này tương ứng với thời điểm bắt đầu tuần GPS hiện tại.
Với trạng thái đồng bộ hoá cao nhất có thể đạt được, đối với mỗi vệ tinh, phạm vi hợp lệ cho trường này có thể là: Tìm kiếm : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Khoá mã C/A : [ 0 1 mili giây ] : GNSS_MEASUREMENT_STATE_CODE_LOCK được đặt Đồng bộ hoá bit : [ 0 20 mili giây ] : GNSS_MEASUREMENT_STATE_BIT_SYNC được đặt Đồng bộ hoá khung hình phụ : [ 0 6 giây ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC được đặt TOW được giải mã : [ 0 1 tuần ] : GNSS_MEASUREMENT_STATE_TOW_DECODED được đặt
Lưu ý: nếu có bất kỳ sự không rõ ràng nào trong số nguyên mili giây, bạn nên đặt GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS cho phù hợp trong trường "trạng thái".
Bạn phải điền giá trị này nếu "trạng thái" != GNSS_MEASUREMENT_STATE_UNKNOWN.
Đối với Glonass, thông tin này là: Thời gian Glonass đã nhận được trong ngày, tại thời điểm đo lường tính bằng nano giây.
Với trạng thái đồng bộ hoá cao nhất có thể đạt được, đối với mỗi vệ tinh, phạm vi hợp lệ cho trường này có thể là: Tìm kiếm : [ 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
Đối với Beidou, đây là: Thời gian trong tuần của Beidou đã nhận được, tại thời điểm đo lường tính bằng nano giây.
Với trạng thái đồng bộ hoá cao nhất có thể đạt được, đối với mỗi vệ tinh, phạm vi hợp lệ cho trường này có thể là: Tìm kiếm : [ 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
Đối với Galileo, đây là: Thời gian Galileo đã nhận được trong tuần, tại thời điểm đo lường tính bằng nano giây.
Khoá mã E1BC : [ 0 4ms ] : GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK được đặt Khoá mã E1C thứ hai: [ 0 100ms ] : GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK được đặt
Trang E1B : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC được đặt Thời gian trong tuần: [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED được đặt
Đối với SBAS, đây là: Thời gian nhận SBAS, tại thời điểm đo lường tính bằng nano giây.
Với trạng thái đồng bộ hoá cao nhất có thể đạt được, đối với mỗi vệ tinh, phạm vi hợp lệ cho trường này có thể là: Tìm kiếm : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Khoá mã C/A: [ 0 1 mili giây ] : GNSS_MEASUREMENT_STATE_CODE_LOCK được đặt Đồng bộ hoá ký hiệu : [ 0 2 mili giây ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC được đặt Thông báo : [ 0 1 giây ] : GNSS_MEASUREMENT_STATE_SBAS_SYNC được đặt
int64_t received_sv_time_uncertainty_in_ns |
double snr_db |
Trạng thái GnssMeasurementState |
int16_t svid |
Số nhận dạng xe vệ tinh, như được xác định trong GnssSvInfo::svid Đây là giá trị bắt buộc.
double time_offset_ns |
Độ lệch thời gian tại thời điểm đo lường (tính bằng nano giây). Thời gian của bộ thu tham chiếu được chỉ định bởi GpsData::clock::time_ns và phải được diễn giải theo cách tương tự như được chỉ định bởi GpsClock::type .
Dấu của time_offset_ns được đưa ra theo phương trình sau: thời gian đo = GpsClock::time_ns + time_offset_ns
API này cung cấp một dấu thời gian riêng cho phép đo lường và cho phép độ chính xác dưới nano giây. Đây là giá trị bắt buộc.
Tài liệu cho cấu trúc này được tạo từ tệp sau:
- hardware/libhardware/include/hardware/ gps.h