anbox-platform-sdk
1.23.0
Anbox Platform SDK API documentation
|
#include <types.h>
Public Attributes | |
int16_t | svid |
GnssConstellationType | constellation |
GnssMeasurementState | state |
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 |
float | carrier_frequency_hz |
Represents a GNSS Measurement, it contains raw and computed information.
Independence - All signal measurement information (e.g. sv_time, pseudorange_rate, multipath_indicator) reported in this struct should be based on GNSS signal measurements only. You may not synthesize measurements by calculating or reporting expected measurements based on known or estimated position, velocity, or time.
double GnssMeasurement::c_n0_dbhz |
float GnssMeasurement::carrier_frequency_hz |
GnssConstellationType GnssMeasurement::constellation |
double GnssMeasurement::pseudorange_rate_mps |
Pseudorange rate at the timestamp in m/s. The correction of a given Pseudorange Rate value includes corrections for receiver and satellite clock frequency errors. Ensure that this field is independent (see comment at top of GnssMeasurement struct.)
It is mandatory to provide the 'uncorrected' 'pseudorange rate', and provide GpsClock's 'drift' field as well (When providing the uncorrected pseudorange rate, do not apply the corrections described above.)
The value includes the 'pseudorange rate uncertainty' in it. A positive 'uncorrected' value indicates that the SV is moving away from the receiver.
The sign of the 'uncorrected' 'pseudorange rate' and its relation to the sign of 'doppler shift' is given by the equation: pseudorange rate = -k * doppler shift (where k is a constant)
This should be the most accurate pseudorange rate available, based on fresh signal measurements from this channel.
It is mandatory that this value be provided at typical carrier phase PRR quality (few cm/sec per second of uncertainty, or better) - when signals are sufficiently strong & stable, e.g. signals from a GPS simulator at >= 35 dB-Hz.
double GnssMeasurement::pseudorange_rate_uncertainty_mps |
int64_t GnssMeasurement::received_sv_time_in_ns |
The received GNSS Time-of-Week at the measurement time, in nanoseconds. Ensure that this field is independent (see comment at top of GnssMeasurement struct.)
For GPS & QZSS, this is: Received GPS Time-of-Week at the measurement time, in nanoseconds. The value is relative to the beginning of the current GPS week.
Given the highest sync state that can be achieved, per each satellite, valid range for this field can be: Searching : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A code lock : [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK is set Bit sync : [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC is set Subframe sync : [ 0 6s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC is set TOW decoded : [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED is set
Note well: if there is any ambiguity in integer millisecond, GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS should be set accordingly, in the 'state' field.
This value must be populated if 'state' != GNSS_MEASUREMENT_STATE_UNKNOWN.
For Glonass, this is: Received Glonass time of day, at the measurement time in nanoseconds.
Given the highest sync state that can be achieved, per each satellite, valid range for this field can be: Searching : [ 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
For Beidou, this is: Received Beidou time of week, at the measurement time in nanoseconds.
Given the highest sync state that can be achieved, per each satellite, valid range for this field can be: Searching : [ 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
For Galileo, this is: Received Galileo time of week, at the measurement time in nanoseconds.
E1BC code lock : [ 0 4ms ] : GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK is set E1C 2nd code lock: [ 0 100ms ] : GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK is set
E1B page : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC is set Time of week: [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED is set
For SBAS, this is: Received SBAS time, at the measurement time in nanoseconds.
Given the highest sync state that can be achieved, per each satellite, valid range for this field can be: Searching : [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A code lock: [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK is set Symbol sync : [ 0 2ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC is set Message : [ 0 1s ] : GNSS_MEASUREMENT_STATE_SBAS_SYNC is set
int64_t GnssMeasurement::received_sv_time_uncertainty_in_ns |
GnssMeasurementState GnssMeasurement::state |
int16_t GnssMeasurement::svid |