summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorWei Chen <weic@codeaurora.org>2019-07-18 15:50:55 -0700
committerYingjie Wang <yingjiewang@codeaurora.org>2019-08-23 12:56:14 +0800
commit1a1232c5949192d555f3e69aa7427dfcdbca7134 (patch)
tree544fa0835c775b97f02b93ebb7f0ba42128a3f77 /utils
parent5ee0b62e8c53ba6a57300541dbbae6b2e9cf9a8a (diff)
downloadgps-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.h24
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 */