diff options
author | Wei Chen <weic@codeaurora.org> | 2019-07-18 15:50:55 -0700 |
---|---|---|
committer | Yingjie Wang <yingjiewang@codeaurora.org> | 2019-08-23 12:56:14 +0800 |
commit | 1a1232c5949192d555f3e69aa7427dfcdbca7134 (patch) | |
tree | 544fa0835c775b97f02b93ebb7f0ba42128a3f77 /utils | |
parent | 5ee0b62e8c53ba6a57300541dbbae6b2e9cf9a8a (diff) | |
download | gps-1a1232c5949192d555f3e69aa7427dfcdbca7134.tar.gz |
GPS hw: report ppe/spe report with combined report
When DRE/PPE are also running in the system, in addition to
reporitng the combined final output, add the support to
report the unmodified SPE/PPE report received from the engine
Change-Id: Icb636824da32b175030dfcd2b270ac8b500ff75b
CRs-fixed: 2487580
Diffstat (limited to 'utils')
-rw-r--r-- | utils/gps_extended_c.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/utils/gps_extended_c.h b/utils/gps_extended_c.h index e49b088..c926992 100644 --- a/utils/gps_extended_c.h +++ b/utils/gps_extended_c.h @@ -385,6 +385,13 @@ typedef uint64_t GpsLocationExtendedFlags; #define GPS_LOCATION_EXTENDED_HAS_CALIBRATION_CONFIDENCE 0x800000000 /** GpsLocationExtended has sensor calibration status */ #define GPS_LOCATION_EXTENDED_HAS_CALIBRATION_STATUS 0x1000000000 +/** GpsLocationExtended has the engine type that produced this + * position, the bit mask will only be set when there are two + * or more position engines running in the system */ +#define GPS_LOCATION_EXTENDED_HAS_OUTPUT_ENG_TYPE 0x2000000000 + /** GpsLocationExtended has the engine mask that indicates the + * set of engines contribute to the fix. */ +#define GPS_LOCATION_EXTENDED_HAS_OUTPUT_ENG_MASK 0x4000000000 typedef uint32_t LocNavSolutionMask; /* Bitmask to specify whether SBAS ionospheric correction is used */ @@ -798,6 +805,16 @@ typedef struct { /** Sensor calibration confidence percent. Range: 0 - 100 */ uint8_t calibrationConfidence; DrCalibrationStatusMask calibrationStatus; + /* location engine type. When the fix. when the type is set to + LOC_ENGINE_SRC_FUSED, the fix is the propagated/aggregated + reports from all engines running on the system (e.g.: + DR/SPE/PPE) based proprietary algorithm. To check which + location engine contributes to the fused output, check for + locOutputEngMask. */ + LocOutputEngineType locOutputEngType; + /* when loc output eng type is set to fused, this field + indicates the set of engines contribute to the fix. */ + PositioningEngineMask locOutputEngMask; } GpsLocationExtended; enum loc_sess_status { @@ -806,6 +823,13 @@ enum loc_sess_status { LOC_SESS_FAILURE }; +// struct that contains complete position info from engine +typedef struct { + UlpLocation location; + GpsLocationExtended locationExtended; + enum loc_sess_status sessionStatus; +} EngineLocationInfo; + // Nmea sentence types mask typedef uint32_t NmeaSentenceTypesMask; #define LOC_NMEA_MASK_GGA_V02 ((NmeaSentenceTypesMask)0x00000001) /**< Enable GGA type */ |