summaryrefslogtreecommitdiffstats
path: root/gps/core/gps_extended_c.h
diff options
context:
space:
mode:
Diffstat (limited to 'gps/core/gps_extended_c.h')
-rw-r--r--gps/core/gps_extended_c.h597
1 files changed, 3 insertions, 594 deletions
diff --git a/gps/core/gps_extended_c.h b/gps/core/gps_extended_c.h
index df20bdc..73dc77d 100644
--- a/gps/core/gps_extended_c.h
+++ b/gps/core/gps_extended_c.h
@@ -60,8 +60,6 @@ extern "C" {
#define ULP_LOCATION_IS_FROM_ZPP 0x0004
/** Position is from a Geofence Breach Event */
#define ULP_LOCATION_IS_FROM_GEOFENCE 0X0008
-/** Position is from a Geofence Breach Event */
-#define ULP_LOCATION_IS_FROM_EXT_DR 0X0010
#define ULP_MIN_INTERVAL_INVALID 0xffffffff
@@ -284,11 +282,9 @@ enum loc_api_adapter_err {
LOC_API_ADAPTER_ERR_PHONE_OFFLINE = 7,
LOC_API_ADAPTER_ERR_TIMEOUT = 8,
LOC_API_ADAPTER_ERR_SERVICE_NOT_PRESENT = 9,
- LOC_API_ADAPTER_ERR_INTERNAL = 10,
- /* equating engine down to phone offline, as they are the same errror */
- LOC_API_ADAPTER_ERR_ENGINE_DOWN = LOC_API_ADAPTER_ERR_PHONE_OFFLINE,
- LOC_API_ADAPTER_ERR_FAILURE = 101,
+ LOC_API_ADAPTER_ERR_ENGINE_DOWN = 100,
+ LOC_API_ADAPTER_ERR_FAILURE,
LOC_API_ADAPTER_ERR_UNKNOWN
};
@@ -315,8 +311,6 @@ enum loc_api_adapter_event_index {
LOC_API_ADAPTER_BATCH_FULL, // Batching on full
LOC_API_ADAPTER_BATCHED_POSITION_REPORT, // Batching on fix
LOC_API_ADAPTER_BATCHED_GENFENCE_BREACH_REPORT, //
- LOC_API_ADAPTER_GNSS_MEASUREMENT_REPORT, //GNSS Measurement Report
- LOC_API_ADAPTER_GNSS_SV_POLYNOMIAL_REPORT, //GNSS SV Polynomial Report
LOC_API_ADAPTER_EVENT_MAX
};
@@ -343,598 +337,13 @@ enum loc_api_adapter_event_index {
#define LOC_API_ADAPTER_BIT_REQUEST_WIFI_AP_DATA (1<<LOC_API_ADAPTER_REQUEST_WIFI_AP_DATA)
#define LOC_API_ADAPTER_BIT_BATCH_FULL (1<<LOC_API_ADAPTER_BATCH_FULL)
#define LOC_API_ADAPTER_BIT_BATCHED_POSITION_REPORT (1<<LOC_API_ADAPTER_BATCHED_POSITION_REPORT)
-#define LOC_API_ADAPTER_BIT_GNSS_MEASUREMENT_REPORT (1<<LOC_API_ADAPTER_GNSS_MEASUREMENT_REPORT)
-#define LOC_API_ADAPTER_BIT_GNSS_SV_POLYNOMIAL_REPORT (1<<LOC_API_ADAPTER_GNSS_SV_POLYNOMIAL_REPORT)
-
-
typedef unsigned int LOC_API_ADAPTER_EVENT_MASK_T;
-/*++ ***********************************************
-** Satellite Measurement and Satellite Polynomial
-** Structure definitions
-** ***********************************************
---*/
-#define GNSS_SV_POLY_VELOCITY_COEF_MAX_SIZE 12
-#define GNSS_SV_POLY_XYZ_0_TH_ORDER_COEFF_MAX_SIZE 3
-#define GNSS_SV_POLY_XYZ_N_TH_ORDER_COEFF_MAX_SIZE 9
-#define GNSS_SV_POLY_SV_CLKBIAS_COEFF_MAX_SIZE 4
-#define GNSS_LOC_SV_MEAS_LIST_MAX_SIZE 16
-
-enum ulp_gnss_sv_measurement_valid_flags{
-
- ULP_GNSS_SV_MEAS_GPS_TIME = 0,
- ULP_GNSS_SV_MEAS_PSUEDO_RANGE,
- ULP_GNSS_SV_MEAS_MS_IN_WEEK,
- ULP_GNSS_SV_MEAS_SUB_MSEC,
- ULP_GNSS_SV_MEAS_CARRIER_PHASE,
- ULP_GNSS_SV_MEAS_DOPPLER_SHIFT,
- ULP_GNSS_SV_MEAS_CNO,
- ULP_GNSS_SV_MEAS_LOSS_OF_LOCK,
-
- ULP_GNSS_SV_MEAS_MAX_VALID_FLAGS
-};
-
-#define ULP_GNSS_SV_MEAS_BIT_GPS_TIME (1<<ULP_GNSS_SV_MEAS_GPS_TIME)
-#define ULP_GNSS_SV_MEAS_BIT_PSUEDO_RANGE (1<<ULP_GNSS_SV_MEAS_PSUEDO_RANGE)
-#define ULP_GNSS_SV_MEAS_BIT_MS_IN_WEEK (1<<ULP_GNSS_SV_MEAS_MS_IN_WEEK)
-#define ULP_GNSS_SV_MEAS_BIT_SUB_MSEC (1<<ULP_GNSS_SV_MEAS_SUB_MSEC)
-#define ULP_GNSS_SV_MEAS_BIT_CARRIER_PHASE (1<<ULP_GNSS_SV_MEAS_CARRIER_PHASE)
-#define ULP_GNSS_SV_MEAS_BIT_DOPPLER_SHIFT (1<<ULP_GNSS_SV_MEAS_DOPPLER_SHIFT)
-#define ULP_GNSS_SV_MEAS_BIT_CNO (1<<ULP_GNSS_SV_MEAS_CNO)
-#define ULP_GNSS_SV_MEAS_BIT_LOSS_OF_LOCK (1<<ULP_GNSS_SV_MEAS_LOSS_OF_LOCK)
-
-enum ulp_gnss_sv_poly_valid_flags{
-
- ULP_GNSS_SV_POLY_GLO_FREQ = 0,
- ULP_GNSS_SV_POLY_T0,
- ULP_GNSS_SV_POLY_IODE,
- ULP_GNSS_SV_POLY_FLAG,
- ULP_GNSS_SV_POLY_POLYCOEFF_XYZ0,
- ULP_GNSS_SV_POLY_POLYCOEFF_XYZN,
- ULP_GNSS_SV_POLY_POLYCOEFF_OTHER,
- ULP_GNSS_SV_POLY_SV_POSUNC,
- ULP_GNSS_SV_POLY_IONODELAY,
- ULP_GNSS_SV_POLY_IONODOT,
- ULP_GNSS_SV_POLY_SBAS_IONODELAY,
- ULP_GNSS_SV_POLY_SBAS_IONODOT,
- ULP_GNSS_SV_POLY_TROPODELAY,
- ULP_GNSS_SV_POLY_ELEVATION,
- ULP_GNSS_SV_POLY_ELEVATIONDOT,
- ULP_GNSS_SV_POLY_ELEVATIONUNC,
- ULP_GNSS_SV_POLY_VELO_COEFF,
-
- ULP_GNSS_SV_POLY_VALID_FLAGS
-
-};
-
-#define ULP_GNSS_SV_POLY_BIT_GLO_FREQ (1<<ULP_GNSS_SV_POLY_GLO_FREQ)
-#define ULP_GNSS_SV_POLY_BIT_T0 (1<<ULP_GNSS_SV_POLY_T0)
-#define ULP_GNSS_SV_POLY_BIT_IODE (1<<ULP_GNSS_SV_POLY_IODE)
-#define ULP_GNSS_SV_POLY_BIT_FLAG (1<<ULP_GNSS_SV_POLY_FLAG)
-#define ULP_GNSS_SV_POLY_BIT_POLYCOEFF_XYZ0 (1<<ULP_GNSS_SV_POLY_POLYCOEFF_XYZ0)
-#define ULP_GNSS_SV_POLY_BIT_POLYCOEFF_XYZN (1<<ULP_GNSS_SV_POLY_POLYCOEFF_XYZN)
-#define ULP_GNSS_SV_POLY_BIT_POLYCOEFF_OTHER (1<<ULP_GNSS_SV_POLY_POLYCOEFF_OTHER)
-#define ULP_GNSS_SV_POLY_BIT_SV_POSUNC (1<<ULP_GNSS_SV_POLY_SV_POSUNC)
-#define ULP_GNSS_SV_POLY_BIT_IONODELAY (1<<ULP_GNSS_SV_POLY_IONODELAY)
-#define ULP_GNSS_SV_POLY_BIT_IONODOT (1<<ULP_GNSS_SV_POLY_IONODOT)
-#define ULP_GNSS_SV_POLY_BIT_SBAS_IONODELAY (1<<ULP_GNSS_SV_POLY_SBAS_IONODELAY)
-#define ULP_GNSS_SV_POLY_BIT_SBAS_IONODOT (1<<ULP_GNSS_SV_POLY_SBAS_IONODOT)
-#define ULP_GNSS_SV_POLY_BIT_TROPODELAY (1<<ULP_GNSS_SV_POLY_TROPODELAY)
-#define ULP_GNSS_SV_POLY_BIT_ELEVATION (1<<ULP_GNSS_SV_POLY_ELEVATION)
-#define ULP_GNSS_SV_POLY_BIT_ELEVATIONDOT (1<<ULP_GNSS_SV_POLY_ELEVATIONDOT)
-#define ULP_GNSS_SV_POLY_BIT_ELEVATIONUNC (1<<ULP_GNSS_SV_POLY_ELEVATIONUNC)
-#define ULP_GNSS_SV_POLY_BIT_VELO_COEFF (1<<ULP_GNSS_SV_POLY_VELO_COEFF)
-
-
-typedef enum
-{
- GNSS_LOC_SV_SYSTEM_GPS = 1,
- /**< GPS satellite. */
- GNSS_LOC_SV_SYSTEM_GALILEO = 2,
- /**< GALILEO satellite. */
- GNSS_LOC_SV_SYSTEM_SBAS = 3,
- /**< SBAS satellite. */
- GNSS_LOC_SV_SYSTEM_COMPASS = 4,
- /**< COMPASS satellite. */
- GNSS_LOC_SV_SYSTEM_GLONASS = 5,
- /**< GLONASS satellite. */
- GNSS_LOC_SV_SYSTEM_BDS = 6
- /**< BDS satellite. */
-} Gnss_LocSvSystemEnumType;
-
-typedef enum
-{
- GNSS_LOC_FREQ_SOURCE_INVALID = 0,
- /**< Source of the frequency is invalid */
- GNSS_LOC_FREQ_SOURCE_EXTERNAL = 1,
- /**< Source of the frequency is from external injection */
- GNSS_LOC_FREQ_SOURCE_PE_CLK_REPORT = 2,
- /**< Source of the frequency is from Navigation engine */
- GNSS_LOC_FREQ_SOURCE_UNKNOWN = 3
- /**< Source of the frequency is unknown */
-} Gnss_LocSourceofFreqEnumType;
-
-typedef struct
-{
- size_t size;
- float clockDrift;
- /**< Receiver clock Drift \n
- - Units: meter per sec \n
- */
- float clockDriftUnc;
- /**< Receiver clock Drift uncertainty \n
- - Units: meter per sec \n
- */
- Gnss_LocSourceofFreqEnumType sourceOfFreq;
-}Gnss_LocRcvrClockFrequencyInfoStructType;
-
-typedef struct
-{
- size_t size;
- uint8_t leapSec;
- /**< GPS time leap second delta to UTC time \n
- - Units: sec \n
- */
- uint8_t leapSecUnc;
- /**< Uncertainty for GPS leap second \n
- - Units: sec \n
- */
-}Gnss_LeapSecondInfoStructType;
-
-typedef enum
-{
- GNSS_LOC_SYS_TIME_BIAS_VALID = 0x01,
- /**< System time bias valid */
- GNSS_LOC_SYS_TIME_BIAS_UNC_VALID = 0x02,
- /**< System time bias uncertainty valid */
-}Gnss_LocInterSystemBiasValidMaskType;
-
-typedef struct
-{
- size_t size;
- uint32_t validMask;
- /* Validity mask as per Gnss_LocInterSystemBiasValidMaskType */
-
- float timeBias;
- /**< System-1 to System-2 Time Bias \n
- - Units: msec \n
- */
- float timeBiasUnc;
- /**< System-1 to System-2 Time Bias uncertainty \n
- - Units: msec \n
- */
-}Gnss_InterSystemBiasStructType;
-
-
-typedef struct
-{
- size_t size;
- uint16_t systemWeek;
- /**< System week number for GPS, BDS and GAL satellite systems. \n
- Set to 65535 when invalid or not available. \n
- Not valid for GLONASS system. \n
- */
-
- uint32_t systemMsec;
- /**< System time msec. Time of Week for GPS, BDS, GAL and
- Time of Day for GLONASS.
- - Units: msec \n
- */
- float systemClkTimeBias;
- /**< System clock time bias \n
- - Units: msec \n
- System time = systemMsec - systemClkTimeBias \n
- */
- float systemClkTimeUncMs;
- /**< Single sided maximum time bias uncertainty \n
- - Units: msec \n
- */
-}Gnss_LocSystemTimeStructType;
-
-typedef struct {
-
- size_t size;
- uint8_t gloFourYear;
- /**< GLONASS four year number from 1996. Refer to GLONASS ICD.\n
- Applicable only for GLONASS and shall be ignored for other constellations. \n
- If unknown shall be set to 255
- */
-
- uint16_t gloDays;
- /**< GLONASS day number in four years. Refer to GLONASS ICD.
- Applicable only for GLONASS and shall be ignored for other constellations. \n
- If unknown shall be set to 65535
- */
-
- uint32_t gloMsec;
- /**< GLONASS time of day in msec. Refer to GLONASS ICD.
- - Units: msec \n
- */
-
- float gloClkTimeBias;
- /**< System clock time bias (sub-millisecond) \n
- - Units: msec \n
- System time = systemMsec - systemClkTimeBias \n
- */
-
- float gloClkTimeUncMs;
- /**< Single sided maximum time bias uncertainty \n
- - Units: msec \n
- */
-}Gnss_LocGloTimeStructType; /* Type */
-
-typedef struct {
-
- size_t size;
- uint32_t refFCount;
- /**< Receiver frame counter value at reference tick */
-
- uint8_t systemRtc_valid;
- /**< Validity indicator for System RTC */
-
- uint64_t systemRtcMs;
- /**< Platform system RTC value \n
- - Units: msec \n
- */
-
- uint32_t sourceOfTime;
- /**< Source of time information */
-
-}Gnss_LocGnssTimeExtStructType;
-
-
-
-typedef enum
-{
- GNSS_LOC_MEAS_STATUS_NULL = 0x00000000,
- /**< No information state */
- GNSS_LOC_MEAS_STATUS_SM_VALID = 0x00000001,
- /**< Code phase is known */
- GNSS_LOC_MEAS_STATUS_SB_VALID = 0x00000002,
- /**< Sub-bit time is known */
- GNSS_LOC_MEAS_STATUS_MS_VALID = 0x00000004,
- /**< Satellite time is known */
- GNSS_LOC_MEAS_STATUS_BE_CONFIRM = 0x00000008,
- /**< Bit edge is confirmed from signal */
- GNSS_LOC_MEAS_STATUS_VELOCITY_VALID = 0x00000010,
- /**< Satellite Doppler measured */
- GNSS_LOC_MEAS_STATUS_VELOCITY_FINE = 0x00000020,
- /**< TRUE: Fine Doppler measured, FALSE: Coarse Doppler measured */
- GNSS_LOC_MEAS_STATUS_FROM_RNG_DIFF = 0x00000200,
- /**< Range update from Satellite differences */
- GNSS_LOC_MEAS_STATUS_FROM_VE_DIFF = 0x00000400,
- /**< Doppler update from Satellite differences */
- GNSS_LOC_MEAS_STATUS_DONT_USE_X = 0x00000800,
- /**< Don't use measurement if bit is set */
- GNSS_LOC_MEAS_STATUS_DONT_USE_M = 0x000001000,
- /**< Don't use measurement if bit is set */
- GNSS_LOC_MEAS_STATUS_DONT_USE_D = 0x000002000,
- /**< Don't use measurement if bit is set */
- GNSS_LOC_MEAS_STATUS_DONT_USE_S = 0x000004000,
- /**< Don't use measurement if bit is set */
- GNSS_LOC_MEAS_STATUS_DONT_USE_P = 0x000008000
- /**< Don't use measurement if bit is set */
-}Gnss_LocSvMeasStatusMaskType;
-
-typedef struct
-{
- size_t size;
- uint32_t svMs;
- /**< Satellite time milisecond.\n
- For GPS, BDS, GAL range of 0 thru (604800000-1) \n
- For GLONASS range of 0 thru (86400000-1) \n
- Valid when PD_LOC_MEAS_STATUS_MS_VALID bit is set in measurement status \n
- Note: All SV times in the current measurement block are alredy propagated to common reference time epoch. \n
- - Units: msec \n
- */
- float svSubMs;
- /**<Satellite time sub-millisecond. \n
- Total SV Time = svMs + svSubMs \n
- - Units: msec \n
- */
- float svTimeUncMs;
- /**< Satellite Time uncertainty \n
- - Units: msec \n
- */
- float dopplerShift;
- /**< Satellite Doppler \n
- - Units: meter per sec \n
- */
- float dopplerShiftUnc;
- /**< Satellite Doppler uncertainty\n
- - Units: meter per sec \n
- */
-}Gnss_LocSVTimeSpeedStructType;
-
-typedef enum
-{
- GNSS_SV_STATE_IDLE = 0,
- GNSS_SV_STATE_SEARCH = 1,
- GNSS_SV_STATE_SEARCH_VERIFY = 2,
- GNSS_SV_STATE_BIT_EDGE = 3,
- GNSS_SV_STATE_VERIFY_TRACK = 4,
- GNSS_SV_STATE_TRACK = 5,
- GNSS_SV_STATE_RESTART = 6,
- GNSS_SV_STATE_DPO_TRACK = 7
-} Gnss_LocSVStateEnumType;
-
-typedef enum
-{
- GNSS_LOC_SVINFO_MASK_HAS_EPHEMERIS = 0x01,
- /**< Ephemeris is available for this SV */
- GNSS_LOC_SVINFO_MASK_HAS_ALMANAC = 0x02
- /**< Almanac is available for this SV */
-}Gnss_LocSvInfoMaskT;
-
-typedef enum
-{
- GNSS_LOC_SV_SRCH_STATUS_IDLE = 1,
- /**< SV is not being actively processed */
- GNSS_LOC_SV_SRCH_STATUS_SEARCH = 2,
- /**< The system is searching for this SV */
- GNSS_LOC_SV_SRCH_STATUS_TRACK = 3
- /**< SV is being tracked */
-}Gnss_LocSvSearchStatusEnumT;
-
-
-typedef struct
-{
- size_t size;
- uint16_t gnssSvId;
- /**< GNSS SV ID.
- \begin{itemize1}
- \item Range: \begin{itemize1}
- \item For GPS: 1 to 32
- \item For GLONASS: 1 to 32
- \item For SBAS: 120 to 151
- \item For BDS: 201 to 237
- \end{itemize1} \end{itemize1}
- The GPS and GLONASS SVs can be disambiguated using the system field.
- */
- uint8_t gloFrequency;
- /**< GLONASS frequency number + 7 \n
- Valid only for GLONASS System \n
- Shall be ignored for all other systems \n
- - Range: 1 to 14 \n
- */
- Gnss_LocSvSearchStatusEnumT svStatus;
- /**< Satellite search state \n
- @ENUM()
- */
- bool healthStatus_valid;
- /**< SV Health Status validity flag\n
- - 0: Not valid \n
- - 1: Valid \n
- */
- uint8_t healthStatus;
- /**< Health status.
- \begin{itemize1}
- \item Range: 0 to 1; 0 = unhealthy, \n 1 = healthy, 2 = unknown
- \vspace{-0.18in} \end{itemize1}
- */
- Gnss_LocSvInfoMaskT svInfoMask;
- /**< Indicates whether almanac and ephemeris information is available. \n
- @MASK()
- */
- uint64_t measurementStatus;
- /**< Bitmask indicating SV measurement status.
- Valid bitmasks: \n
- @MASK()
- */
- uint16_t CNo;
- /**< Carrier to Noise ratio \n
- - Units: 0.1 dBHz \n
- */
- uint16_t gloRfLoss;
- /**< GLONASS Rf loss reference to Antenna. \n
- - Units: dB, Scale: 0.1 \n
- */
- bool lossOfLock;
- /**< Loss of signal lock indicator \n
- - 0: Signal in continuous track \n
- - 1: Signal not in track \n
- */
- int16_t measLatency;
- /**< Age of the measurement. Positive value means measurement precedes ref time. \n
- - Units: msec \n
- */
- Gnss_LocSVTimeSpeedStructType svTimeSpeed;
- /**< Unfiltered SV Time and Speed information
- */
- float dopplerAccel;
- /**< Satellite Doppler Accelertion\n
- - Units: Hz/s \n
- */
- bool multipathEstValid;
- /**< Multipath estimate validity flag\n
- - 0: Multipath estimate not valid \n
- - 1: Multipath estimate valid \n
- */
- float multipathEstimate;
- /**< Estimate of multipath in measurement\n
- - Units: Meters \n
- */
- bool fineSpeedValid;
- /**< Fine speed validity flag\n
- - 0: Fine speed not valid \n
- - 1: Fine speed valid \n
- */
- float fineSpeed;
- /**< Carrier phase derived speed \n
- - Units: m/s \n
- */
- bool fineSpeedUncValid;
- /**< Fine speed uncertainty validity flag\n
- - 0: Fine speed uncertainty not valid \n
- - 1: Fine speed uncertainty valid \n
- */
- float fineSpeedUnc;
- /**< Carrier phase derived speed \n
- - Units: m/s \n
- */
- bool carrierPhaseValid;
- /**< Carrier Phase measurement validity flag\n
- - 0: Carrier Phase not valid \n
- - 1: Carrier Phase valid \n
- */
- double carrierPhase;
- /**< Carrier phase measurement [L1 cycles] \n
- */
- bool cycleSlipCountValid;
- /**< Cycle slup count validity flag\n
- - 0: Not valid \n
- - 1: Valid \n
- */
- uint8_t cycleSlipCount;
- /**< Increments when a CSlip is detected */
-
- bool svDirectionValid;
- /**< Validity flag for SV direction */
-
- float svAzimuth;
- /**< Satellite Azimuth
- - Units: radians \n
- */
- float svElevation;
- /**< Satellite Elevation
- - Units: radians \n
- */
-} Gnss_SVMeasurementStructType;
-
-/**< Maximum number of satellites in measurement block for given system. */
-
-typedef struct
-{
- size_t size;
- Gnss_LocSvSystemEnumType system;
- /**< Specifies the Satellite System Type
- */
- bool isSystemTimeValid;
- /**< Indicates whether System Time is Valid:\n
- - 0x01 (TRUE) -- System Time is valid \n
- - 0x00 (FALSE) -- System Time is not valid
- */
- Gnss_LocSystemTimeStructType systemTime;
- /**< System Time Information \n
- */
- bool isGloTime_valid;
- Gnss_LocGloTimeStructType gloTime;
-
- bool isSystemTimeExt_valid;
- Gnss_LocGnssTimeExtStructType systemTimeExt;
-
- uint8_t numSvs;
- /* Number of SVs in this report block */
-
- Gnss_SVMeasurementStructType svMeasurement[GNSS_LOC_SV_MEAS_LIST_MAX_SIZE];
- /**< Satellite measurement Information \n
- */
-} Gnss_ClockMeasurementStructType;
-
-typedef struct
-{
- size_t size;
- uint8_t seqNum;
- /**< Current message Number */
- uint8_t maxMessageNum;
- /**< Maximum number of message that will be sent for present time epoch. */
-
- bool leapSecValid;
- Gnss_LeapSecondInfoStructType leapSec;
-
- Gnss_InterSystemBiasStructType gpsGloInterSystemBias;
-
- Gnss_InterSystemBiasStructType gpsBdsInterSystemBias;
-
- Gnss_InterSystemBiasStructType gpsGalInterSystemBias;
-
- Gnss_InterSystemBiasStructType bdsGloInterSystemBias;
-
- Gnss_InterSystemBiasStructType galGloInterSystemBias;
-
- Gnss_InterSystemBiasStructType galBdsInterSystemBias;
-
- bool clockFreqValid;
- Gnss_LocRcvrClockFrequencyInfoStructType clockFreq; /* Freq */
- bool gnssMeasValid;
- Gnss_ClockMeasurementStructType gnssMeas;
-} GnssSvMeasurementSet;
-
-typedef enum
-{
- GNSS_SV_POLY_COEFF_VALID = 0x01,
- /**< SV position in orbit coefficients are valid */
- GNSS_SV_POLY_IONO_VALID = 0x02,
- /**< Iono estimates are valid */
-
- GNSS_SV_POLY_TROPO_VALID = 0x04,
- /**< Tropo estimates are valid */
-
- GNSS_SV_POLY_ELEV_VALID = 0x08,
- /**< Elevation, rate, uncertainty are valid */
-
- GNSS_SV_POLY_SRC_ALM_CORR = 0x10,
- /**< Polynomials based on XTRA */
-
- GNSS_SV_POLY_SBAS_IONO_VALID = 0x20,
- /**< SBAS IONO and rate are valid */
-
- GNSS_SV_POLY_GLO_STR4 = 0x40
- /**< GLONASS String 4 has been received */
-}Gnss_SvPolyStatusMaskType;
-
-
-typedef struct
-{
- size_t size;
- uint8_t gnssSvId;
- /* GPS: 1-32, GLO: 65-96, 0: Invalid
- All others are reserved
- */
- int8_t freqNum;
- /* Freq index, only valid if u_SysInd is GLO */
-
- uint8_t svPolyFlags;
- /* Indicate the validity of the elements
- as per Gnss_SvPolyStatusMaskType
- */
-
- uint16_t is_valid;
-
- uint8_t iode;
- /* Ephemeris reference time
- GPS:Issue of Data Ephemeris used [unitless].
- GLO: Tb 7-bit, refer to ICD02
- */
- double T0;
- /* Reference time for polynominal calculations
- GPS: Secs in week.
- GLO: Full secs since Jan/01/96
- */
- double polyCoeffXYZ0[GNSS_SV_POLY_XYZ_0_TH_ORDER_COEFF_MAX_SIZE];
- /* C0X, C0Y, C0Z */
- double polyCoefXYZN[GNSS_SV_POLY_XYZ_N_TH_ORDER_COEFF_MAX_SIZE];
- /* C1X, C2X ... C2Z, C3Z */
- float polyCoefOther[GNSS_SV_POLY_SV_CLKBIAS_COEFF_MAX_SIZE];
- /* C0T, C1T, C2T, C3T */
- float svPosUnc; /* SV position uncertainty [m]. */
- float ionoDelay; /* Ionospheric delay at d_T0 [m]. */
- float ionoDot; /* Iono delay rate [m/s]. */
- float sbasIonoDelay;/* SBAS Ionospheric delay at d_T0 [m]. */
- float sbasIonoDot; /* SBAS Iono delay rate [m/s]. */
- float tropoDelay; /* Tropospheric delay [m]. */
- float elevation; /* Elevation [rad] at d_T0 */
- float elevationDot; /* Elevation rate [rad/s] */
- float elevationUnc; /* SV elevation [rad] uncertainty */
- double velCoef[GNSS_SV_POLY_VELOCITY_COEF_MAX_SIZE];
- /* Coefficients of velocity poly */
-} GnssSvPolynomial;
-
-
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* GPS_EXTENDED_C_H */
+