GnssMeasurement 구조체 참조

GnssMeasurement 구조체 참조

#include < gps.h >

데이터 필드

size_t  크기
 
GnssMeasurementFlags   플래그
 
int16_t  svid
 
GnssConstellationType   별자리
 
이중  time_offset_ns
 
GnssMeasurementState   상태
 
int64_t  received_sv_time_in_ns
 
int64_t  received_sv_time_uncertainty_in_ns
 
이중  c_n0_dbhz
 
이중  pseudorange_rate_mps
 
이중  pseudorange_rate_uncertainty_mps
 
GnssAccumulatedDeltaRangeState   accumulated_delta_range_state
 
이중  accumulated_delta_range_m
 
이중  accumulated_delta_range_uncertainty_m
 
부동 소수점 수  carrier_frequency_hz
 
int64_t  carrier_cycles
 
이중  carrier_phase
 
이중  carrier_phase_uncertainty
 
GnssMultipathIndicator   multipath_indicator
 
이중  snr_db
 

상세 설명

GNSS 측정을 나타내며 원시 정보와 계산된 정보를 포함합니다.

독립성 - 이 구조체에 보고되는 모든 신호 측정 정보 (예: sv_time, pseudorange_rate, multipath_indicator)는 GNSS 신호 측정만을 기반으로 해야 합니다. 알려진 위치, 속도 또는 시간을 기반으로 예상 측정값을 계산하거나 보고하여 측정값을 합성해서는 안 됩니다.

gps.h 파일의 1656 행에 정의되어 있습니다.

필드 문서

double accumulated_delta_range_m

마지막 채널 재설정 이후 누적된 델타 범위(단위: 미터)입니다. 양수 값은 SV가 수신기에서 멀어지고 있음을 나타냅니다.

'누적된 델타 범위'의 부호와 '캐리어 위상'의 부호와의 관계는 누적된 델타 범위 = -k * 캐리어 위상 (여기서 k는 상수)이라는 방정식으로 주어집니다.

이 값은 '누적된 차동 범위 상태'가 GPS_ADR_STATE_UNKNOWN이 아닌 경우 채워야 합니다. 그러나 '누적된 차동 범위 상태' == GPS_ADR_STATE_VALID인 경우에만 데이터가 정확할 것으로 예상됩니다.

gps.h 파일의 1835 줄에 정의되어 있습니다.

GnssAccumulatedDeltaRangeState accumulated_delta_range_state

누적 델타 범위의 상태입니다. ADR이 재설정되었는지 또는 주기 미끄러짐 (잠금 손실을 나타냄)이 있는지를 나타냅니다.

필수 값입니다.

gps.h FILE의 1821 라인에 정의가 있습니다.

double accumulated_delta_range_uncertainty_m

누적된 델타 범위의 1-시그마 불확실성(단위: 미터)입니다. 이 값은 '누적된 차동 범위 상태'가 GPS_ADR_STATE_UNKNOWN이 아닌 경우 채워야 합니다.

gps.h 파일의 1841 라인에 정의되어 있습니다.

double c_n0_dbhz

일반적으로 [0, 63] 범위의 dB-Hz 단위로 표시되는 반송파 대 노이즈 밀도입니다. 안테나 포트에서 신호의 측정된 C/N0 값이 포함됩니다.

필수 값입니다.

gps.h FILE의 1778 라인에 정의가 있습니다.

int64_t carrier_cycles

위성과 수신기 간의 전체 캐리어 주기 수입니다. 참조 주파수는 'carrier_frequency_hz' 필드에 의해 제공됩니다. 이 값의 누적에서 발생할 수 있는 주기 미끄러짐 및 재설정의 징후는 accumulated_delta_range_state 플래그에서 추론할 수 있습니다.

데이터를 사용할 수 있는 경우 'flags'에 GNSS_MEASUREMENT_HAS_CARRIER_CYCLES가 포함되어야 합니다.

gps.h 파일의 1861 라인에 정의가 있습니다.

float carrier_frequency_hz

코드와 메시지가 변조되는 이동통신사 주파수로, L1 또는 L2일 수 있습니다. 이 필드를 설정하지 않으면 이동통신사 주파수가 L1으로 간주됩니다.

데이터를 사용할 수 있는 경우 'flags'에 GNSS_MEASUREMENT_HAS_CARRIER_FREQUENCY가 포함되어야 합니다.

gps.h 파일의 1850 줄에 정의되어 있습니다.

double carrier_phase

수신기에서 감지한 RF 위상이며 범위는 [0.0, 1.0]입니다. 이는 일반적으로 전체 이동통신사 위상 측정의 소수점 이하 자릿수입니다.

참조 주파수는 'carrier_frequency_hz' 필드에 의해 지정됩니다. 값에 '캐리어 위상 불확실성'이 포함되어 있습니다.

데이터를 사용할 수 있는 경우 'flags'에 GNSS_MEASUREMENT_HAS_CARRIER_PHASE가 포함되어야 합니다.

gps.h 파일의 1873 행에 정의가 있습니다.

double carrier_phase_uncertainty

캐리어 위상의 1시그마 불확실성입니다. 데이터를 사용할 수 있는 경우 'flags'에 GNSS_MEASUREMENT_HAS_CARRIER_PHASE_UNCERTAINTY가 포함되어야 합니다.

gps.h 파일의 1880 행에 정의되어 있습니다.

지정된 SV의 컨스텔레이션을 정의합니다. 값은 GNSS_CONSTELLATION_* 상수 중 하나여야 합니다.

gps.h 파일의 1673 라인에 정의가 있습니다.

이 데이터 구조의 필드 유효성을 나타내는 플래그 집합입니다.

gps.h 파일의 1661 행에 있는 정의입니다.

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를 보고해야 합니다.

gps.h 파일의 1901 라인에 정의되어 있습니다.

double pseudorange_rate_mps

타임스탬프의 의사 거리 비율(m/s)입니다. 주어진 의사 거리 비율 값의 수정에는 수신기 및 위성 시계 주파수 오류에 대한 수정이 포함됩니다. 이 필드는 독립적입니다 ( GnssMeasurement 구조체 상단의 주석 참고).

'수정되지 않은' '의사거리 속도'를 제공하고 GpsClock '드리프트' 필드도 제공해야 합니다 (수정되지 않은 의사거리 속도를 제공할 때는 위에 설명된 수정사항을 적용하지 마세요).

이 값에는 '의사거리 속도 불확실성'이 포함됩니다. 양수 'uncorrected' 값은 SV가 수신기에서 멀어지고 있음을 나타냅니다.

'수정되지 않은' '의사거리 속도'의 부호와 '도플러 이동'의 부호와의 관계는 다음 방정식으로 주어집니다. 의사거리 속도 = -k * 도플러 이동 (여기서 k는 상수)

이 값은 이 채널의 최신 신호 측정치를 기반으로 제공되는 가장 정확한 가상 거리 속도입니다.

이 값은 신호가 충분히 강하고 안정적인 경우(예: 35dB-Hz 이상의 GPS 시뮬레이터 신호) 일반적인 이동통신사 위상 PRR 품질(불확실성 초당 몇 cm/sec 이하)로 제공해야 합니다.

gps.h FILE의 1805 라인에 정의가 있습니다.

double pseudorange_rate_uncertainty_mps

pseudorange_rate_mps의 1-Sigma 불확실성입니다. 불확실성은 절대 (단측) 값으로 표시됩니다.

필수 값입니다.

gps.h 파일의 1813 라인에 정의가 있습니다.

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가 설정됨

gps.h 파일의 1763 줄에 정의되어 있습니다.

int64_t received_sv_time_uncertainty_in_ns

수신된 GPS 요일 시간의 1시그마 불확실성(나노초)입니다.

'state'가 GPS_MEASUREMENT_STATE_UNKNOWN이 아닌 경우 이 값을 채워야 합니다.

gps.h 파일의 1770 라인에 정의가 있습니다.

size_t 크기

sizeof(GpsMeasurement)로 설정

gps.h FILE의 1658 라인에 정의가 있습니다.

double snr_db

상관기 출력의 신호 대 노이즈 비율(dB)입니다. 데이터를 사용할 수 있는 경우 'flags'에 GNSS_MEASUREMENT_HAS_SNR이 포함되어야 합니다. '관찰된 노이즈 플로어 위의 상관성 최대값 높이'와 '노이즈 RMS'의 전력 비율입니다.

gps.h FILE의 1909 라인에 정의되어 있습니다.

위성별 동기화 상태 연결된 위성의 현재 동기화 상태를 나타냅니다. 동기화 상태에 따라 '수신된 GPS 견인' 필드를 적절하게 해석해야 합니다.

필수 값입니다.

gps.h FILE의 1694 라인에 정의가 있습니다.

int16_t svid

GnssSvInfo::svid 에 정의된 위성 차량 ID 번호입니다. mandatory 값입니다.

gps.h 파일의 1667 행에 정의가 있습니다.

double time_offset_ns

측정이 이루어진 시간 오프셋(나노초)입니다. 참조 수신기의 시간은 GpsData::clock::time_ns로 지정되며 GpsClock::type 에서 표시된 것과 동일한 방식으로 해석해야 합니다.

time_offset_ns의 부호는 다음 방정식으로 주어집니다. 측정 시간 = GpsClock::time_ns + time_offset_ns

측정에 대한 개별 타임스탬프를 제공하며 나노초 미만의 정밀도를 허용합니다. 필수 값입니다.

gps.h 파일의 1686 라인에 정의가 있습니다.


이 구조체에 관한 문서는 다음 파일에서 생성되었습니다.
  • hardware/libhardware/include/hardware/ gps.h