Referencia de la estructura GnssMeasurement
#include <
gps.h
>
Campos de datos |
|
size_t | tamaño |
GnssMeasurementFlags | marcas |
int16_t | svid |
GnssConstellationType | constelación |
doble | time_offset_ns |
GnssMeasurementState | estado |
int64_t | received_sv_time_in_ns |
int64_t | received_sv_time_uncertainty_in_ns |
doble | c_n0_dbhz |
doble | pseudorange_rate_mps |
doble | pseudorange_rate_uncertainty_mps |
GnssAccumulatedDeltaRangeState | accumulated_delta_range_state |
doble | accumulated_delta_range_m |
doble | accumulated_delta_range_uncertainty_m |
flotante | carrier_frequency_hz |
int64_t | carrier_cycles |
doble | carrier_phase |
doble | carrier_phase_uncertainty |
GnssMultipathIndicator | multipath_indicator |
doble | snr_db |
Descripción detallada
Representa una medición del GNSS y contiene información sin procesar y calculada.
Independencia: Toda la información de medición de la señal (p.ej., sv_time, pseudorange_rate, multipath_indicator) que se informa en esta estructura debe basarse solo en mediciones de la señal del GNSS. No puedes sintetizar mediciones calculando o informando mediciones esperadas en función de la posición, la velocidad o el tiempo conocidos o estimados.
Documentación de campos
double accumulated_delta_range_m |
Rango delta acumulado desde el último restablecimiento del canal en metros. Un valor positivo indica que la SV se aleja del receptor.
El signo del "rango delta acumulado" y su relación con el signo de la "fase de portadora" se da mediante la ecuación: rango delta acumulado = -k * fase de portadora (donde k es una constante).
Este valor se debe propagar si "estado de rango delta acumulado" != GPS_ADR_STATE_UNKNOWN. Sin embargo, se espera que los datos solo sean precisos cuando "estado del rango delta acumulado" == GPS_ADR_STATE_VALID.
GnssAccumulatedDeltaRangeState accumulated_delta_range_state |
double accumulated_delta_range_uncertainty_m |
doble c_n0_dbhz |
int64_t carrier_cycles |
Es la cantidad de ciclos de portadora completa entre el satélite y el receptor. El campo "carrier_frequency_hz" proporciona la frecuencia de referencia. Las indicaciones de posibles deslizamientos de ciclo y restablecimientos en la acumulación de este valor se pueden inferir de las marcas de estado de acumulado_delta_range_state.
Si los datos están disponibles, "flags" debe contener GNSS_MEASUREMENT_HAS_CARRIER_CYCLES.
float carrier_frequency_hz |
Es la frecuencia portadora a la que se modulan los códigos y los mensajes, puede ser L1 o L2. Si no se establece el campo, se supone que la frecuencia portadora es L1.
Si los datos están disponibles, "flags" debe contener GNSS_MEASUREMENT_HAS_CARRIER_FREQUENCY.
carrier_phase doble |
Es la fase de RF que detecta el receptor, en el rango [0.0, 1.0]. Por lo general, es la parte fraccionaria de la medición completa de la fase portadora.
El campo "carrier_frequency_hz" proporciona la frecuencia de referencia. El valor contiene la "incertidumbre de fase de portadora".
Si los datos están disponibles, "flags" debe contener GNSS_MEASUREMENT_HAS_CARRIER_PHASE.
carrier_phase_uncertainty doble |
GnssConstellationType constelación |
Marcas GnssMeasurementFlags |
GnssMultipathIndicator multipath_indicator |
Es una enumeración que indica el estado "multipath" del evento.
El indicador de múltiples rutas de acceso está diseñado para informar la presencia de indicadores superpuestos que se manifiestan como picos de correlación distorsionados.
- Si hay una forma de pico de correlación distorsionada, informa que la multiplicidad de rutas es GNSS_MULTIPATH_INDICATOR_PRESENT.
- Si no hay una forma de pico de correlación distorsionada, informa GNSS_MULTIPATH_INDICATOR_NOT_PRESENT.
- Si las señales son demasiado débiles para discernir esta información, informa GNSS_MULTIPATH_INDICATOR_UNKNOWN.
Ejemplo: Cuando se realiza la prueba de rendimiento de multiplicidad de señales superpuestas estandarizada (3GPP TS 34.171), el indicador de multiplicidad de señales debe informar GNSS_MULTIPATH_INDICATOR_PRESENT para los indicadores de seguimiento que contienen multiplicidad de señales y GNSS_MULTIPATH_INDICATOR_NOT_PRESENT para los indicadores de seguimiento que no contienen multiplicidad de señales.
doble pseudorange_rate_mps |
Es la velocidad de pseudorrango en la marca de tiempo, expresada en m/s. La corrección de un valor determinado de la velocidad de pseudorrango incluye correcciones para los errores de frecuencia del reloj del receptor y del satélite. Asegúrate de que este campo sea independiente (consulta el comentario en la parte superior de la estructura GnssMeasurement ).
Es obligatorio proporcionar la "tasa de pseudorango" "sin corregir" y también el campo "desplazamiento" de GpsClock . (Cuando proporciones la tasa de pseudorango sin corregir, no apliques las correcciones descritas anteriormente).
El valor incluye la "incertidumbre de la tasa de pseudorango". Un valor "no corregido" positivo indica que la SV se está alejando del receptor.
El signo de la “tasa de pseudorrango” “no corregida” y su relación con el signo del “desplazamiento Doppler” se da mediante la ecuación: tasa de pseudorrango = -k * desplazamiento Doppler (donde k es una constante).
Esta debería ser la tasa de pseudorango más precisa disponible, según las mediciones de señal nuevas de este canal.
Es obligatorio que este valor se proporcione con una calidad de PRR de fase portadora típica (unos pocos cm/s por segundo de incertidumbre o mejor) cuando las señales sean lo suficientemente fuertes y estables, p.ej., las señales de un simulador de GPS a más de 35 dB-Hz.
doble pseudorange_rate_uncertainty_mps |
int64_t received_sv_time_in_ns |
La hora del día del GNSS recibida en el momento de la medición, en nanosegundos. Asegúrate de que este campo sea independiente (consulta el comentario en la parte superior de la estructura GnssMeasurement ).
Para GPS y QZSS, es la hora del día del GPS recibida en el momento de la medición, en nanosegundos. El valor es relativo al comienzo de la semana GPS actual.
Dado el estado de sincronización más alto que se puede lograr, por cada satélite, el rango válido para este campo puede ser el siguiente: Búsqueda : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Bloqueo de código C/A : [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK está establecido Sincronización de bits : [ 0 20 ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC está establecido Sincronización de tramas secundarias : [ 0 6 s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC está establecido TOW decodificado : [ 0 1 semana ] : GNSS_MEASUREMENT_STATE_TOW_DECODED está establecido
Nota: Si hay alguna ambigüedad en el número entero de milisegundos, se debe establecer GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS según corresponda, en el campo "state".
Este valor se debe propagar si "state" != GNSS_MEASUREMENT_STATE_UNKNOWN.
Para Glonass, es la hora del día recibida de Glonass, en el momento de la medición, en nanosegundos.
Dado el estado de sincronización más alto que se puede lograr, por cada satélite, el rango válido para este campo puede ser el siguiente: Búsqueda : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Bloqueo de código C/A : [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK está establecido Sincronización de símbolos : [ 0 10 ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC está establecido Sincronización de bits : [ 0 20 ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC está establecido Sincronización de cadenas : [ 0 2 s ] : GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC está establecido Hora del día : [ 0 1 día ] : GNSS_MEASUREMENT_STATE_GLO_TOD_DECODED está establecido
Para Beidou, es la hora de la semana recibida de Beidou, en el momento de la medición en nanosegundos.
Dado el estado de sincronización más alto que se puede lograr, por cada satélite, el rango válido para este campo puede ser el siguiente: Búsqueda : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Bloqueo de código C/A: [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK se establece Sincronización de bits (D2): [ 0 2 ms ] : GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC se establece Sincronización de bits (D1): [ 0 20 ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC se establece Subtramas (D2): [ 0 0.6 s ] : GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC se establece Subtramas (D1): [ 0 6 s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC se establece Hora de la semana : [ 0 1 semana ] : GNSS_MEASUREMENT_STATE_TOW_DECODED se establece
Para Galileo, es la hora de la semana recibida de Galileo, en el momento de la medición, en nanosegundos.
Bloqueo de código E1BC : [ 0 4ms ] : Se establece GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK. Segundo bloqueo de código E1C: [ 0 100ms ] : Se establece GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK.
Página E1B : [ 0 2s ] : Se estableció GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC. Hora de la semana: [ 0 1week ] : Se estableció GNSS_MEASUREMENT_STATE_TOW_DECODED.
Para SBAS, es la hora de SBAS recibida en el momento de la medición en nanosegundos.
Dado el estado de sincronización más alto que se puede lograr, por cada satélite, el rango válido para este campo puede ser el siguiente: Búsqueda : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN Bloqueo de código C/A: [ 0 1 ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK se establece Sincronización de símbolos : [ 0 2 ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC se establece Mensaje : [ 0 1 s ] : GNSS_MEASUREMENT_STATE_SBAS_SYNC se establece
int64_t received_sv_time_uncertainty_in_ns |
tamaño de size_t |
doble snr_db |
Es la relación señal-ruido en la salida del correlador, expresada en dB. Si los datos están disponibles, "flags" debe contener GNSS_MEASUREMENT_HAS_SNR. Esta es la relación de potencia de la "altura del pico de correlación sobre el piso de ruido observado" a "la RMS de ruido".
GnssMeasurementState estado |
int16_t svid |
Número de ID del vehículo satelital, como se define en GnssSvInfo::svid . Este es un valor obligatorio.
double time_offset_ns |
Desfase de tiempo en el que se realizó la medición, expresado en nanosegundos. GpsData::clock::time_ns especifica la hora del receptor de referencia y se debe interpretar de la misma manera que se indica en GpsClock::type .
El signo de time_offset_ns se obtiene de la siguiente ecuación: tiempo de medición = GpsClock::time_ns + time_offset_ns.
Proporciona una marca de tiempo individual para la medición y permite una precisión de menos de nanosegundos. Este es un valor obligatorio.
La documentación de esta struct se generó a partir del siguiente archivo:
- hardware/libhardware/include/hardware/ gps.h