GnssMeasurement 구조체 참조
#include < gps.h >
데이터 필드 | |
size_t | 크기 |
Gnss측정플래그 | 깃발 |
int16_t | svid |
Gnss별자리 유형 | 별자리 |
더블 | time_offset_ns |
Gnss측정상태 | 상태 |
int64_t | received_sv_time_in_ns |
int64_t | received_sv_time_uncertainty_in_ns |
더블 | c_n0_dbhz |
더블 | 의사거리_속도_mps |
더블 | 의사범위_속도_불확실_mps |
GnssAccumulatedDeltaRangeState | 누적_델타_범위_상태 |
더블 | 누적_델타_범위_m |
더블 | 누적_델타_범위_불확실_m |
뜨다 | 반송파_주파수_hz |
int64_t | 캐리어_사이클 |
더블 | 캐리어_위상 |
더블 | Carrier_Phase_불확실성 |
Gnss다중 경로 표시기 | 다중 경로_표시기 |
더블 | snr_db |
상세 설명
GNSS 측정을 나타내며 원시 및 계산된 정보를 포함합니다.
독립성 - 이 구조체에 보고된 모든 신호 측정 정보(예: sv_time, pseudorange_rate, multipath_indicator)는 GNSS 신호 측정에만 기반해야 합니다. 알려진 또는 추정된 위치, 속도 또는 시간을 기반으로 예상 측정값을 계산하거나 보고하여 측정값을 종합할 수 없습니다.
현장 문서
이중 누적_델타_범위_m |
마지막 채널 재설정 이후 누적된 델타 범위(미터)입니다. 양수 값은 SV가 수신기에서 멀어지고 있음을 나타냅니다.
'누적 델타 범위'의 부호와 '캐리어 위상' 부호와의 관계는 다음 방정식으로 제공됩니다. 누적 델타 범위 = -k * 캐리어 위상(여기서 k는 상수)
'누적 델타 범위 상태' != GPS_ADR_STATE_UNKNOWN인 경우 이 값을 채워야 합니다. 그러나 데이터는 '누적 델타 범위 상태' == GPS_ADR_STATE_VALID인 경우에만 정확할 것으로 예상됩니다.
GnssAccumulatedDeltaRangeState Accumulated_delta_range_state |
이중 누적_델타_범위_불확실_m |
더블 c_n0_dbhz |
int64_t Carrier_cycles |
플로트 캐리어_주파수_hz |
이중 캐리어_위상 |
이중 캐리어_위상_불확실성 |
이벤트의 '다중 경로' 상태를 나타내는 열거형입니다.
다중 경로 표시기는 왜곡된 상관 피크로 나타나는 중첩 신호의 존재를 보고하기 위한 것입니다.
- 왜곡된 상관 피크 모양이 있는 경우 다중 경로가 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를 보고해야 합니다.
이중 의사 거리_속도_mps |
타임스탬프의 의사 범위 속도(m/s)입니다. 주어진 의사 거리 비율 값의 수정에는 수신기 및 위성 클럭 주파수 오류에 대한 수정이 포함됩니다. 이 필드가 독립적인지 확인하세요( GnssMeasurement 구조 상단의 설명 참조).
'수정되지 않은' '의사 거리 비율'을 제공해야 하며, GpsClock 의 '드리프트' 필드도 제공해야 합니다. (수정되지 않은 의사 거리 비율을 제공할 경우 위에서 설명한 보정을 적용하지 마세요.)
값에는 '의사 범위 비율 불확실성'이 포함됩니다. 양수 '수정되지 않음' 값은 SV가 수신기에서 멀어지고 있음을 나타냅니다.
'보정되지 않은' '의사 거리 비율'의 부호와 '도플러 편이' 부호와의 관계는 다음 방정식으로 제공됩니다. 의사 거리 비율 = -k * 도플러 편이(여기서 k는 상수)
이는 이 채널의 새로운 신호 측정을 기반으로 하는 가장 정확한 의사 거리 비율이어야 합니다.
이 값은 신호가 충분히 강력하고 안정적인 경우(예: GPS 시뮬레이터의 신호 >= 35dB-Hz) 일반적인 반송파 위상 PRR 품질(불확도가 초당 몇 cm/초 이상)로 제공되어야 합니다.
이중 의사 범위_속도_불확실성_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 1주 ] : GNSS_MEASUREMENT_STATE_TOW_DECODED가 설정됨
참고: 정수 밀리초 단위에 모호성이 있는 경우 '상태' 필드에 GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS를 그에 따라 설정해야 합니다.
'상태' != 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.6s ] : GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC가 설정됨 서브프레임(D1): [ 0 6s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC가 설정됩니다. 주 : [ 0 1주 ] : GNSS_MEASUREMENT_STATE_TOW_DECODED가 설정되었습니다.
갈릴레오의 경우 다음과 같습니다. 측정 시간(나노초)에 갈릴레오 시간을 수신합니다.
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 |
더블 snr_db |
int16_t svid |
GnssSvInfo::svid 에 정의된 위성 차량 ID 번호입니다. 이는 필수 값입니다.
이중 time_offset_ns |
측정이 수행된 시간 오프셋(나노초)입니다. 참조 수신기의 시간은 GpsData::clock::time_ns에 의해 지정되며 GpsClock::type 에 표시된 것과 동일한 방식으로 해석되어야 합니다.
time_offset_ns의 부호는 다음 방정식으로 제공됩니다. 측정 시간 = GpsClock::time_ns + time_offset_ns
이는 측정을 위한 개별 타임스탬프를 제공하고 나노초 미만의 정확도를 허용합니다. 이는 필수 값입니다.
이 구조체에 대한 문서는 다음 파일에서 생성되었습니다.
- hardware/libhardware/include/hardware/ gps.h