Add additional parameters in gps extended file

Change-Id: I667b999dc164184d84aac0c5b6c1f3b2e9c761ea
CRs-Fixed: 2183994
This commit is contained in:
Naresh Munagala 2018-03-27 11:59:37 +05:30
parent 87c52f1f37
commit 7f9ce9ddd0

View file

@ -105,6 +105,7 @@ typedef uint32_t LocPosTechMask;
#define LOC_POS_TECH_MASK_INJECTED_COARSE_POSITION ((LocPosTechMask)0x00000020) #define LOC_POS_TECH_MASK_INJECTED_COARSE_POSITION ((LocPosTechMask)0x00000020)
#define LOC_POS_TECH_MASK_AFLT ((LocPosTechMask)0x00000040) #define LOC_POS_TECH_MASK_AFLT ((LocPosTechMask)0x00000040)
#define LOC_POS_TECH_MASK_HYBRID ((LocPosTechMask)0x00000080) #define LOC_POS_TECH_MASK_HYBRID ((LocPosTechMask)0x00000080)
#define LOC_POS_TECH_MASK_PPE ((LocPosTechMask)0x00000100)
enum loc_registration_mask_status { enum loc_registration_mask_status {
LOC_REGISTRATION_MASK_ENABLED, LOC_REGISTRATION_MASK_ENABLED,
@ -305,6 +306,30 @@ typedef uint32_t GpsLocationExtendedFlags;
#define GPS_LOCATION_EXTENDED_HAS_GPS_TIME 0x20000 #define GPS_LOCATION_EXTENDED_HAS_GPS_TIME 0x20000
/** GpsLocationExtended has Extended Dilution of Precision */ /** GpsLocationExtended has Extended Dilution of Precision */
#define GPS_LOCATION_EXTENDED_HAS_EXT_DOP 0x40000 #define GPS_LOCATION_EXTENDED_HAS_EXT_DOP 0x40000
/** GpsLocationExtended has North standard deviation */
#define GPS_LOCATION_EXTENDED_HAS_NORTH_STD_DEV 0x80000
/** GpsLocationExtended has East standard deviation*/
#define GPS_LOCATION_EXTENDED_HAS_EAST_STD_DEV 0x100000
/** GpsLocationExtended has North Velocity */
#define GPS_LOCATION_EXTENDED_HAS_NORTH_VEL 0x200000
/** GpsLocationExtended has East Velocity */
#define GPS_LOCATION_EXTENDED_HAS_EAST_VEL 0x400000
/** GpsLocationExtended has up Velocity */
#define GPS_LOCATION_EXTENDED_HAS_UP_VEL 0x800000
/** GpsLocationExtended has North Velocity Uncertainty */
#define GPS_LOCATION_EXTENDED_HAS_NORTH_VEL_UNC 0x1000000
/** GpsLocationExtended has East Velocity Uncertainty */
#define GPS_LOCATION_EXTENDED_HAS_EAST_VEL_UNC 0x2000000
/** GpsLocationExtended has up Velocity Uncertainty */
#define GPS_LOCATION_EXTENDED_HAS_UP_VEL_UNC 0x4000000
/** GpsLocationExtended has up Clock Bias */
#define GPS_LOCATION_EXTENDED_HAS_CLOCK_BIAS 0x8000000
/** GpsLocationExtended has up Clock Bias std deviation*/
#define GPS_LOCATION_EXTENDED_HAS_CLOCK_BIAS_STD_DEV 0x10000000
/** GpsLocationExtended has up Clock drift*/
#define GPS_LOCATION_EXTENDED_HAS_CLOCK_DRIFT 0x20000000
/** GpsLocationExtended has up Clock drift std deviation**/
#define GPS_LOCATION_EXTENDED_HAS_CLOCK_DRIFT_STD_DEV 0x40000000
typedef uint32_t LocNavSolutionMask; typedef uint32_t LocNavSolutionMask;
/* Bitmask to specify whether SBAS ionospheric correction is used */ /* Bitmask to specify whether SBAS ionospheric correction is used */
@ -315,6 +340,12 @@ typedef uint32_t LocNavSolutionMask;
#define LOC_NAV_MASK_SBAS_CORRECTION_LONG ((LocNavSolutionMask)0x0004) #define LOC_NAV_MASK_SBAS_CORRECTION_LONG ((LocNavSolutionMask)0x0004)
/**< Bitmask to specify whether SBAS integrity information is used */ /**< Bitmask to specify whether SBAS integrity information is used */
#define LOC_NAV_MASK_SBAS_INTEGRITY ((LocNavSolutionMask)0x0008) #define LOC_NAV_MASK_SBAS_INTEGRITY ((LocNavSolutionMask)0x0008)
/**< Bitmask to specify whether Position Report is DGNSS corrected */
#define LOC_NAV_MASK_DGNSS_CORRECTION ((LocNavSolutionMask)0x0010)
/**< Bitmask to specify whether Position Report is RTK corrected */
#define LOC_NAV_MASK_RTK_CORRECTION ((LocNavSolutionMask)0x0020)
/**< Bitmask to specify whether Position Report is PPP corrected */
#define LOC_NAV_MASK_PPP_CORRECTION ((LocNavSolutionMask)0x0040)
typedef uint32_t LocPosDataMask; typedef uint32_t LocPosDataMask;
/* Bitmask to specify whether Navigation data has Forward Acceleration */ /* Bitmask to specify whether Navigation data has Forward Acceleration */
@ -425,12 +456,123 @@ typedef struct {
uint32_t gpsTimeOfWeekMs; uint32_t gpsTimeOfWeekMs;
}GPSTimeStruct; }GPSTimeStruct;
typedef uint8_t CarrierPhaseAmbiguityType;
#define CARRIER_PHASE_AMBIGUITY_RESOLUTION_NONE ((CarrierPhaseAmbiguityType)0)
#define CARRIER_PHASE_AMBIGUITY_RESOLUTION_FLOAT ((CarrierPhaseAmbiguityType)1)
#define CARRIER_PHASE_AMBIGUITY_RESOLUTION_FIXED ((CarrierPhaseAmbiguityType)2)
/** GNSS Signal Type and RF Band */
typedef uint32_t GnssSignalTypeMask;
/** GPS L1CA Signal */
#define GNSS_SIGNAL_GPS_L1CA ((GnssSignalTypeMask)0x00000001ul)
/** GPS L1C Signal */
#define GNSS_SIGNAL_GPS_L1C ((GnssSignalTypeMask)0x00000002ul)
/** GPS L2 RF Band */
#define GNSS_SIGNAL_GPS_L2 ((GnssSignalTypeMask)0x00000004ul)
/** GPS L5 RF Band */
#define GNSS_SIGNAL_GPS_L5 ((GnssSignalTypeMask)0x00000008ul)
/** GLONASS G1 (L1OF) RF Band */
#define GNSS_SIGNAL_GLONASS_G1 ((GnssSignalTypeMask)0x00000010ul)
/** GLONASS G2 (L2OF) RF Band */
#define GNSS_SIGNAL_GLONASS_G2 ((GnssSignalTypeMask)0x00000020ul)
/** GALILEO E1 RF Band */
#define GNSS_SIGNAL_GALILEO_E1 ((GnssSignalTypeMask)0x00000040ul)
/** GALILEO E5A RF Band */
#define GNSS_SIGNAL_GALILEO_E5A ((GnssSignalTypeMask)0x00000080ul)
/** GALILEO E5B RF Band */
#define GNSS_SIGNAL_GALILIEO_E5B ((GnssSignalTypeMask)0x00000100ul)
/** BEIDOU B1 RF Band */
#define GNSS_SIGNAL_BEIDOU_B1 ((GnssSignalTypeMask)0x00000200ul)
/** BEIDOU B2 RF Band */
#define GNSS_SIGNAL_BEIDOU_B2 ((GnssSignalTypeMask)0x00000400ul)
/** QZSS L1CA RF Band */
#define GNSS_SIGNAL_QZSS_L1CA ((GnssSignalTypeMask)0x00000800ul)
/** QZSS L1S RF Band */
#define GNSS_SIGNAL_QZSS_L1S ((GnssSignalTypeMask)0x00001000ul)
/** QZSS L2 RF Band */
#define GNSS_SIGNAL_QZSS_L2 ((GnssSignalTypeMask)0x00002000ul)
/** QZSS L5 RF Band */
#define GNSS_SIGNAL_QZSS_L5 ((GnssSignalTypeMask)0x00004000ul)
/** SBAS L1 RF Band */
#define GNSS_SIGNAL_SBAS_L1 ((GnssSignalTypeMask)0x00008000ul)
typedef uint16_t GnssMeasUsageStatusBitMask;
/** Used in fix */
#define GNSS_MEAS_USED_IN_PVT ((GnssMeasUsageStatusBitMask)0x00000001ul)
/** Measurement is Bad */
#define GNSS_MEAS_USAGE_STATUS_BAD_MEAS ((GnssMeasUsageStatusBitMask)0x00000002ul)
/** Measurement has too low C/N */
#define GNSS_MEAS_USAGE_STATUS_CNO_TOO_LOW ((GnssMeasUsageStatusBitMask)0x00000004ul)
/** Measurement has too low elevation */
#define GNSS_MEAS_USAGE_STATUS_ELEVATION_TOO_LOW ((GnssMeasUsageStatusBitMask)0x00000008ul)
/** No ephemeris available for this measurement */
#define GNSS_MEAS_USAGE_STATUS_NO_EPHEMERIS ((GnssMeasUsageStatusBitMask)0x00000010ul)
/** No corrections available for the measurement */
#define GNSS_MEAS_USAGE_STATUS_NO_CORRECTIONS ((GnssMeasUsageStatusBitMask)0x00000020ul)
/** Corrections has timed out for the measurement */
#define GNSS_MEAS_USAGE_STATUS_CORRECTION_TIMEOUT ((GnssMeasUsageStatusBitMask)0x00000040ul)
/** Measurement is unhealthy */
#define GNSS_MEAS_USAGE_STATUS_UNHEALTHY ((GnssMeasUsageStatusBitMask)0x00000080ul)
/** Configuration is disabled for this measurement */
#define GNSS_MEAS_USAGE_STATUS_CONFIG_DISABLED ((GnssMeasUsageStatusBitMask)0x00000100ul)
/** Measurement not used for other reasons */
#define GNSS_MEAS_USAGE_STATUS_OTHER ((GnssMeasUsageStatusBitMask)0x00000200ul)
/** Flags to indicate valid fields in epMeasUsageInfo */
typedef uint16_t GnssMeasUsageInfoValidityMask;
#define GNSS_PSEUDO_RANGE_RESIDUAL_VALID ((GnssMeasUsageInfoValidityMask)0x00000001ul)
#define GNSS_DOPPLER_RESIDUAL_VALID ((GnssMeasUsageInfoValidityMask)0x00000002ul)
#define GNSS_CARRIER_PHASE_RESIDUAL_VALID ((GnssMeasUsageInfoValidityMask)0x00000004ul)
#define GNSS_CARRIER_PHASE_AMBIGUITY_TYPE_VALID ((GnssMeasUsageInfoValidityMask)0x00000008ul)
typedef struct {
/** Specifies GNSS signal type
Mandatory Field*/
GnssSignalTypeMask gnssSignalType;
/** Specifies GNSS Constellation Type
Mandatory Field*/
Gnss_LocSvSystemEnumType gnssConstellation;
/** GNSS SV ID.
For GPS: 1 to 32
For GLONASS: 65 to 96. When slot-number to SV ID mapping is unknown, set as 255.
For SBAS: 120 to 151
For QZSS-L1CA:193 to 197
For BDS: 201 to 237
For GAL: 301 to 336 */
uint16_t gnssSvId;
/** GLONASS frequency number + 7.
Valid only for a GLONASS system and
is to be ignored for all other systems.
Range: 1 to 14 */
uint8_t gloFrequency;
/** Carrier phase ambiguity type. */
CarrierPhaseAmbiguityType carrierPhaseAmbiguityType;
/** Validity mask */
GnssMeasUsageStatusBitMask measUsageStatusMask;
/** Specifies measurement usage status
Mandatory Field*/
GnssMeasUsageInfoValidityMask validityMask;
/** Computed pseudorange residual.
Unit: Meters */
float pseudorangeResidual;
/** Computed doppler residual.
Unit: Meters/sec*/
float dopplerResidual;
/** Computed carrier phase residual.
Unit: Cycles*/
float carrierPhaseResidual;
/** Carrier phase ambiguity value.
Unit: Cycles*/
float carrierPhasAmbiguity;
} GpsMeasUsageInfo;
/** Represents gps location extended. */ /** Represents gps location extended. */
typedef struct { typedef struct {
/** set to sizeof(GpsLocationExtended) */ /** set to sizeof(GpsLocationExtended) */
size_t size; size_t size;
/** Contains GpsLocationExtendedFlags bits. */ /** Contains GpsLocationExtendedFlags bits. */
uint32_t flags; uint64_t flags;
/** Contains the Altitude wrt mean sea level */ /** Contains the Altitude wrt mean sea level */
float altitudeMeanSeaLevel; float altitudeMeanSeaLevel;
/** Contains Position Dilusion of Precision. */ /** Contains Position Dilusion of Precision. */
@ -471,8 +613,52 @@ typedef struct {
LocPositionDynamics bodyFrameData; LocPositionDynamics bodyFrameData;
/** GPS Time */ /** GPS Time */
GPSTimeStruct gpsTime; GPSTimeStruct gpsTime;
GnssSystemTime gnssSystemTime;
/** Dilution of precision associated with this position*/ /** Dilution of precision associated with this position*/
LocExtDOP extDOP; LocExtDOP extDOP;
/** North standard deviation.
Unit: Meters */
float northStdDeviation;
/** East standard deviation.
Unit: Meters */
float eastStdDeviation;
/** North Velocity.
Unit: Meters/sec */
float northVelocity;
/** East Velocity.
Unit: Meters/sec */
float eastVelocity;
/** Up Velocity.
Unit: Meters/sec */
float upVelocity;
/** North Velocity standard deviation.
Unit: Meters/sec */
float northVelocityStdDeviation;
/** East Velocity standard deviation.
Unit: Meters/sec */
float eastVelocityStdDeviation;
/** Up Velocity standard deviation
Unit: Meters/sec */
float upVelocityStdDeviation;
/** Estimated clock bias. Unit: Nano seconds */
float clockbiasMeter;
/** Estimated clock bias std deviation. Unit: Nano seconds */
float clockBiasStdDeviationMeter;
/** Estimated clock drift. Unit: Meters/sec */
float clockDrift;
/** Estimated clock drift std deviation. Unit: Meters/sec */
float clockDriftStdDeviation;
/** Number of valid reference stations. Range:[0-4] */
uint8_t numValidRefStations;
/** Reference station(s) number */
uint16_t referenceStation[4];
/** Number of measurements received for use in fix.
Shall be used as maximum index in-to svUsageInfo[].
Set to 0, if svUsageInfo reporting is not supported.
Range: 0-EP_GNSS_MAX_MEAS */
uint8_t numOfMeasReceived;
/** Measurement Usage Information */
GpsMeasUsageInfo measUsageInfo[GNSS_SV_MAX];
} GpsLocationExtended; } GpsLocationExtended;
enum loc_sess_status { enum loc_sess_status {
@ -955,7 +1141,6 @@ typedef enum
/**< SV is being tracked */ /**< SV is being tracked */
}Gnss_LocSvSearchStatusEnumT; }Gnss_LocSvSearchStatusEnumT;
typedef struct typedef struct
{ {
size_t size; size_t size;
@ -1080,6 +1265,19 @@ typedef struct
/**< Satellite Elevation /**< Satellite Elevation
- Units: radians \n - Units: radians \n
*/ */
uint64_t validMeasStatusMask;
/**< Bitmask indicating SV measurement status Validity.
Valid bitmasks: \n
If any MSB bit in 0xFFC0000000000000 DONT_USE is set, the measurement
must not be used by the client.
@MASK()
*/
bool carrierPhaseUncValid;
/**< Validity flag for SV direction */
float carrierPhaseUnc;
} Gnss_SVMeasurementStructType; } Gnss_SVMeasurementStructType;
/**< Maximum number of satellites in measurement block for given system. */ /**< Maximum number of satellites in measurement block for given system. */
@ -1141,6 +1339,9 @@ typedef struct
bool gnssMeasValid; bool gnssMeasValid;
Gnss_ClockMeasurementStructType gnssMeas; Gnss_ClockMeasurementStructType gnssMeas;
Gnss_ApTimeStampStructType timeStamp; Gnss_ApTimeStampStructType timeStamp;
/* Extended Time Information - Cumulative Number of Clock Resets */
uint8_t numClockResets_valid; /**< Must be set to true if numClockResets is being passed */
uint32_t numClockResets;
} GnssSvMeasurementSet; } GnssSvMeasurementSet;