summaryrefslogtreecommitdiff
path: root/location/LocationDataTypes.h
diff options
context:
space:
mode:
authorWei Chen <weic@codeaurora.org>2019-04-19 15:21:27 -0700
committerHarikrishnan Hariharan <hahariha@codeaurora.org>2019-06-19 15:03:39 +0530
commit49f7e15a816f9c4139ac3406374a608c2168f50b (patch)
tree8576c104b2d73918c57b7ddba83108130acd2cc8 /location/LocationDataTypes.h
parent16c0367c5b3e17d76d9a68c8057d24c50252bf84 (diff)
downloadgps-49f7e15a816f9c4139ac3406374a608c2168f50b.tar.gz
GnssAdapter: add support for ppe fix type and calibration info
(1) Add support to report out calibration confidence in position report (2) Update gps quality of GGA, mode indicator for GMC and VTG NMEA sentences Change-Id: Ia1aa5283deffed6638172b90a41b481c2d199229 CRs-fixed: 2438838
Diffstat (limited to 'location/LocationDataTypes.h')
-rw-r--r--location/LocationDataTypes.h28
1 files changed, 25 insertions, 3 deletions
diff --git a/location/LocationDataTypes.h b/location/LocationDataTypes.h
index 406a75c..0d0753f 100644
--- a/location/LocationDataTypes.h
+++ b/location/LocationDataTypes.h
@@ -172,8 +172,9 @@ typedef enum {
GNSS_LOCATION_INFO_UP_VEL_UNC_BIT = (1<<21),// valid Up Velocity Uncertainty
GNSS_LOCATION_INFO_LEAP_SECONDS_BIT = (1<<22),// valid leap seconds
GNSS_LOCATION_INFO_TIME_UNC_BIT = (1<<23),// valid time uncertainty
- GNSS_LOCATION_INFO_NUM_SV_USED_IN_POSITION_BIT = (1<<24) // number of SV used in position
-
+ GNSS_LOCATION_INFO_NUM_SV_USED_IN_POSITION_BIT = (1<<24), // number of SV used in position
+ GNSS_LOCATION_INFO_CALIBRATION_CONFIDENCE_BIT = (1<<25), // valid sensor cal confidence
+ GNSS_LOCATION_INFO_CALIBRATION_STATUS_BIT = (1<<26), // valid sensor cal status
} GnssLocationInfoFlagBits;
typedef enum {
@@ -601,6 +602,8 @@ typedef enum
{
GNSS_LOC_SV_SYSTEM_UNKNOWN = 0,
/** unknown sv system. */
+ GNSS_LOC_SV_SYSTEM_MIN = 1,
+ /**< Min enum of valid SV system. */
GNSS_LOC_SV_SYSTEM_GPS = 1,
/**< GPS satellite. */
GNSS_LOC_SV_SYSTEM_GALILEO = 2,
@@ -613,8 +616,10 @@ typedef enum
/**< BDS satellite. */
GNSS_LOC_SV_SYSTEM_QZSS = 6,
/**< QZSS satellite. */
- GNSS_LOC_SV_SYSTEM_NAVIC = 7
+ GNSS_LOC_SV_SYSTEM_NAVIC = 7,
/**< QZSS satellite. */
+ GNSS_LOC_SV_SYSTEM_MAX = 7,
+ /**< Max enum of valid SV system. */
} Gnss_LocSvSystemEnumType;
typedef enum {
@@ -695,6 +700,20 @@ typedef struct {
GnssAidingDataCommon common; // common aiding data
} GnssAidingData;
+typedef uint16_t DrCalibrationStatusMask;
+typedef enum {
+ // Indicate that roll calibration is needed. Need to take more turns on level ground
+ DR_ROLL_CALIBRATION_NEEDED = (1<<0),
+ // Indicate that pitch calibration is needed. Need to take more turns on level ground
+ DR_PITCH_CALIBRATION_NEEDED = (1<<1),
+ // Indicate that yaw calibration is needed. Need to accelerate in a straight line
+ DR_YAW_CALIBRATION_NEEDED = (1<<2),
+ // Indicate that odo calibration is needed. Need to accelerate in a straight line
+ DR_ODO_CALIBRATION_NEEDED = (1<<3),
+ // Indicate that gyro calibration is needed. Need to take more turns on level ground
+ DR_GYRO_CALIBRATION_NEEDED = (1<<4)
+} DrCalibrationStatusBits;
+
typedef struct {
uint32_t size; // set to sizeof(Location)
LocationFlagsMask flags; // bitwise OR of LocationFlagsBits to mark which params are valid
@@ -975,6 +994,9 @@ typedef struct {
GnssMeasUsageInfo measUsageInfo[GNSS_SV_MAX]; // GNSS Measurement Usage info
uint8_t leapSeconds; // leap second
float timeUncMs; // Time uncertainty in milliseconds
+ uint8_t calibrationConfidence; // Sensor calibration confidence percent,
+ // in range of [0, 100]
+ DrCalibrationStatusMask calibrationStatus; // Sensor calibration status
} GnssLocationInfoNotification;
typedef struct {