GnssMeasurement 구조체 참조
#include <
gps.h
>
상세 설명
GNSS 측정을 나타내며 원시 정보와 계산된 정보를 포함합니다.
독립성 - 이 구조체에 보고되는 모든 신호 측정 정보 (예: sv_time, pseudorange_rate, multipath_indicator)는 GNSS 신호 측정만을 기반으로 해야 합니다. 알려진 위치, 속도 또는 시간을 기반으로 예상 측정값을 계산하거나 보고하여 측정값을 합성해서는 안 됩니다.
필드 문서
double accumulated_delta_range_m |
마지막 채널 재설정 이후 누적된 델타 범위(단위: 미터)입니다. 양수 값은 SV가 수신기에서 멀어지고 있음을 나타냅니다.
'누적된 델타 범위'의 부호와 '캐리어 위상'의 부호와의 관계는 누적된 델타 범위 = -k * 캐리어 위상 (여기서 k는 상수)이라는 방정식으로 주어집니다.
이 값은 '누적된 차동 범위 상태'가 GPS_ADR_STATE_UNKNOWN이 아닌 경우 채워야 합니다. 그러나 '누적된 차동 범위 상태' == GPS_ADR_STATE_VALID인 경우에만 데이터가 정확할 것으로 예상됩니다.
GnssAccumulatedDeltaRangeState accumulated_delta_range_state |
double accumulated_delta_range_uncertainty_m |
double c_n0_dbhz |
int64_t carrier_cycles |
float carrier_frequency_hz |
double carrier_phase |
double carrier_phase_uncertainty |
GnssConstellationType constellation |
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를 보고해야 합니다.
double pseudorange_rate_mps |
타임스탬프의 의사 거리 비율(m/s)입니다. 주어진 의사 거리 비율 값의 수정에는 수신기 및 위성 시계 주파수 오류에 대한 수정이 포함됩니다. 이 필드는 독립적입니다 ( GnssMeasurement 구조체 상단의 주석 참고).
'수정되지 않은' '의사거리 속도'를 제공하고 GpsClock '드리프트' 필드도 제공해야 합니다 (수정되지 않은 의사거리 속도를 제공할 때는 위에 설명된 수정사항을 적용하지 마세요).
이 값에는 '의사거리 속도 불확실성'이 포함됩니다. 양수 'uncorrected' 값은 SV가 수신기에서 멀어지고 있음을 나타냅니다.
'수정되지 않은' '의사거리 속도'의 부호와 '도플러 이동'의 부호와의 관계는 다음 방정식으로 주어집니다. 의사거리 속도 = -k * 도플러 이동 (여기서 k는 상수)
이 값은 이 채널의 최신 신호 측정치를 기반으로 제공되는 가장 정확한 가상 거리 속도입니다.
이 값은 신호가 충분히 강하고 안정적인 경우(예: 35dB-Hz 이상의 GPS 시뮬레이터 신호) 일반적인 이동통신사 위상 PRR 품질(불확실성 초당 몇 cm/sec 이하)로 제공해야 합니다.
double pseudorange_rate_uncertainty_mps |
int64_t received_sv_time_in_ns |
측정 시간에 수신된 GNSS 요일 시간(나노초)입니다. 이 필드는 독립적입니다 ( GnssMeasurement 구조체 상단의 주석 참고).
GPS 및 QZSS의 경우 측정 시 수신된 GPS 요일 시간(나노초)입니다. 이 값은 현재 GPS 주 시작을 기준으로 합니다.
위성별로 달성할 수 있는 가장 높은 동기화 상태를 고려할 때 이 필드의 유효 범위는 다음과 같습니다. 검색: [ 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가 설정됨
참고: 정수 밀리초에 모호한 부분이 있는 경우 'state' 필드에서 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.6초 ] : GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC가 설정됨 하위 프레임 (D1): [ 0 6초 ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC가 설정됨 요일: [ 0 1주 ] : GNSS_MEASUREMENT_STATE_TOW_DECODED가 설정됨
Galileo의 경우 측정 시간의 Galileo 일주일 시간(나노초)입니다.
E1BC 코드 잠금 : [ 0 4ms ] : GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK이 설정됩니다. E1C 2차 코드 잠금: [ 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가 설정됨
SBAS의 경우 측정 시간에 수신된 SBAS 시간(나노초)입니다.
위성별로 달성할 수 있는 가장 높은 동기화 상태를 고려할 때 이 필드의 유효 범위는 다음과 같습니다. 검색: [ 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가 설정됨
int64_t received_sv_time_uncertainty_in_ns |
double snr_db |
int16_t svid |
GnssSvInfo::svid 에 정의된 위성 차량 ID 번호입니다. mandatory 값입니다.
double time_offset_ns |
측정이 이루어진 시간 오프셋(나노초)입니다. 참조 수신기의 시간은 GpsData::clock::time_ns로 지정되며 GpsClock::type 에서 표시된 것과 동일한 방식으로 해석해야 합니다.
time_offset_ns의 부호는 다음 방정식으로 주어집니다. 측정 시간 = GpsClock::time_ns + time_offset_ns
측정에 대한 개별 타임스탬프를 제공하며 나노초 미만의 정밀도를 허용합니다. 필수 값입니다.
이 구조체에 관한 문서는 다음 파일에서 생성되었습니다.
- hardware/libhardware/include/hardware/ gps.h