From cb64a3c4a8fb54b40dbec512895f87d448f13b05 Mon Sep 17 00:00:00 2001 From: Bhavna Sharma Date: Wed, 16 Feb 2022 11:57:59 -0800 Subject: [PATCH] sky: gps: Move qualityLevelAccepted field into LocationOptions CRs-Fixed: 3131344 Change-Id: Ifec0a57325ea8127f76b8e1896124a64666f41ce --- gps/location/LocationDataTypes.h | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/gps/location/LocationDataTypes.h b/gps/location/LocationDataTypes.h index 34a7500..8278cca 100644 --- a/gps/location/LocationDataTypes.h +++ b/gps/location/LocationDataTypes.h @@ -1034,6 +1034,12 @@ typedef enum { LOC_OUTPUT_ENGINE_COUNT, } LocOutputEngineType; +typedef enum { + QUALITY_HIGH_ACCU_FIX_ONLY = 0, /* Only allow valid fix with high accuracy */ + QUALITY_ANY_VALID_FIX, /* Allow fix with any accuracy, like intermediate fix */ + QUALITY_ANY_OR_FAILED_FIX, /* Allow fix of any type, even failed fix */ +} FixQualityLevel; + struct LocationOptions { uint32_t size; // set to sizeof(LocationOptions) uint32_t minInterval; // in milliseconds @@ -1044,10 +1050,12 @@ struct LocationOptions { // if engine hub is running, this will be fused fix, // if engine hub is not running, this will be SPE fix LocReqEngineTypeMask locReqEngTypeMask; + FixQualityLevel qualityLevelAccepted; /* Send through position reports with which accuracy. */ inline LocationOptions() : size(0), minInterval(0), minDistance(0), mode(GNSS_SUPL_MODE_STANDALONE), - locReqEngTypeMask((LocReqEngineTypeMask)0) {} + locReqEngTypeMask((LocReqEngineTypeMask)0), + qualityLevelAccepted(QUALITY_HIGH_ACCU_FIX_ONLY) {} }; typedef enum { @@ -1059,34 +1067,26 @@ typedef enum { GNSS_POWER_MODE_M5 /* Background Mode */ } GnssPowerMode; -typedef enum { - QUALITY_HIGH_ACCU_FIX_ONLY = 0, /* Only allow valid fix with high accuracy */ - QUALITY_ANY_VALID_FIX, /* Allow fix with any accuracy, like intermediate fix */ - QUALITY_ANY_OR_FAILED_FIX, /* Allow fix of any type, even failed fix */ -} FixQualityLevel; - struct TrackingOptions : LocationOptions { GnssPowerMode powerMode; /* Power Mode to be used for time based tracking sessions */ uint32_t tbm; /* Time interval between measurements specified in millis. Applicable to background power modes */ - FixQualityLevel qualityLevelAccepted; /* Send through position reports with which accuracy. */ inline TrackingOptions() : - LocationOptions(), powerMode(GNSS_POWER_MODE_INVALID), tbm(0), - qualityLevelAccepted(QUALITY_HIGH_ACCU_FIX_ONLY) {} + LocationOptions(), powerMode(GNSS_POWER_MODE_INVALID), tbm(0) {} inline TrackingOptions(uint32_t s, GnssPowerMode m, uint32_t t) : - LocationOptions(), powerMode(m), tbm(t), - qualityLevelAccepted(QUALITY_HIGH_ACCU_FIX_ONLY) { LocationOptions::size = s; } + LocationOptions(), powerMode(m), tbm(t) { + LocationOptions::size = s; } inline TrackingOptions(const LocationOptions& options) : - LocationOptions(options), powerMode(GNSS_POWER_MODE_INVALID), tbm(0), - qualityLevelAccepted(QUALITY_HIGH_ACCU_FIX_ONLY) {} + LocationOptions(options), powerMode(GNSS_POWER_MODE_INVALID), tbm(0) {} inline void setLocationOptions(const LocationOptions& options) { size = sizeof(TrackingOptions); minInterval = options.minInterval; minDistance = options.minDistance; mode = options.mode; locReqEngTypeMask = options.locReqEngTypeMask; + qualityLevelAccepted = options.qualityLevelAccepted; } inline LocationOptions getLocationOptions() { LocationOptions locOption; @@ -1095,6 +1095,7 @@ struct TrackingOptions : LocationOptions { locOption.minInterval = minInterval; locOption.mode = mode; locOption.locReqEngTypeMask = locReqEngTypeMask; + locOption.qualityLevelAccepted = qualityLevelAccepted; return locOption; } };