diff options
author | Mike Cailean <mcailean@codeaurora.org> | 2018-02-06 16:36:27 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2018-06-16 11:27:26 -0700 |
commit | 7dfa87b244f3acc601c7db5721d6d5ebc50320f3 (patch) | |
tree | b0e99684d2c8b7326d55a2e40fa3e1cc1ef9082b | |
parent | 271cfd8a00f97f13a937877cc8ef66ef0392a087 (diff) | |
download | gps-7dfa87b244f3acc601c7db5721d6d5ebc50320f3.tar.gz |
Support Multiband feature
Add carrierFrequency to GNSS Measurements
reporting. Also, add AGC level from QMI LOC
message to GNSS measurements (as opposed to
adding it from NMEA debug messages).
CRs-fixed: 2186144
Change-Id: Ia3995ba9e09ef4c68e8922b7570f7af0eb50098a
-rw-r--r-- | android/location_api/GnssAPIClient.cpp | 3 | ||||
-rw-r--r-- | core/LocApiBase.cpp | 3 | ||||
-rw-r--r-- | location/LocationDataTypes.h | 9 | ||||
-rw-r--r-- | utils/gps_extended_c.h | 2 | ||||
-rw-r--r-- | utils/loc_gps.h | 1 |
5 files changed, 14 insertions, 4 deletions
diff --git a/android/location_api/GnssAPIClient.cpp b/android/location_api/GnssAPIClient.cpp index 24d94aa..9fbbb27 100644 --- a/android/location_api/GnssAPIClient.cpp +++ b/android/location_api/GnssAPIClient.cpp @@ -525,6 +525,7 @@ static void convertGnssSvStatus(GnssSvNotification& in, IGnssCallback::GnssSvSta info.cN0Dbhz = in.gnssSvs[i].cN0Dbhz; info.elevationDegrees = in.gnssSvs[i].elevation; info.azimuthDegrees = in.gnssSvs[i].azimuth; + info.carrierFrequencyHz = in.gnssSvs[i].carrierFrequencyHz; info.svFlag = static_cast<uint8_t>(IGnssCallback::GnssSvFlags::NONE); if (in.gnssSvs[i].gnssSvOptionsMask & GNSS_SV_OPTIONS_HAS_EPHEMER_BIT) info.svFlag |= IGnssCallback::GnssSvFlags::HAS_EPHEMERIS_DATA; @@ -532,6 +533,8 @@ static void convertGnssSvStatus(GnssSvNotification& in, IGnssCallback::GnssSvSta info.svFlag |= IGnssCallback::GnssSvFlags::HAS_ALMANAC_DATA; if (in.gnssSvs[i].gnssSvOptionsMask & GNSS_SV_OPTIONS_USED_IN_FIX_BIT) info.svFlag |= IGnssCallback::GnssSvFlags::USED_IN_FIX; + if (in.gnssSvs[i].gnssSvOptionsMask & GNSS_SV_OPTIONS_HAS_CARRIER_FREQUENCY_BIT) + info.svFlag |= IGnssCallback::GnssSvFlags::HAS_CARRIER_FREQUENCY; } } diff --git a/core/LocApiBase.cpp b/core/LocApiBase.cpp index 650de92..30fecec 100644 --- a/core/LocApiBase.cpp +++ b/core/LocApiBase.cpp @@ -320,7 +320,7 @@ void LocApiBase::reportSv(GnssSvNotification& svNotify) sizeof(constellationString) / sizeof(constellationString[0]) - 1) { svNotify.gnssSvs[i].type = GNSS_SV_TYPE_UNKNOWN; } - LOC_LOGV(" %03zu: %*s %02d %f %f %f 0x%02X", + LOC_LOGV(" %03zu: %*s %02d %f %f %f %f 0x%02X", i, 13, constellationString[svNotify.gnssSvs[i].type], @@ -328,6 +328,7 @@ void LocApiBase::reportSv(GnssSvNotification& svNotify) svNotify.gnssSvs[i].cN0Dbhz, svNotify.gnssSvs[i].elevation, svNotify.gnssSvs[i].azimuth, + svNotify.gnssSvs[i].carrierFrequencyHz, svNotify.gnssSvs[i].gnssSvOptionsMask); } // loop through adapters, and deliver to all adapters. diff --git a/location/LocationDataTypes.h b/location/LocationDataTypes.h index 1ebcb33..29bae91 100644 --- a/location/LocationDataTypes.h +++ b/location/LocationDataTypes.h @@ -345,9 +345,10 @@ typedef enum { typedef uint16_t GnssSvOptionsMask; typedef enum { - GNSS_SV_OPTIONS_HAS_EPHEMER_BIT = (1<<0), - GNSS_SV_OPTIONS_HAS_ALMANAC_BIT = (1<<1), - GNSS_SV_OPTIONS_USED_IN_FIX_BIT = (1<<2), + GNSS_SV_OPTIONS_HAS_EPHEMER_BIT = (1<<0), + GNSS_SV_OPTIONS_HAS_ALMANAC_BIT = (1<<1), + GNSS_SV_OPTIONS_USED_IN_FIX_BIT = (1<<2), + GNSS_SV_OPTIONS_HAS_CARRIER_FREQUENCY_BIT = (1<<3), } GnssSvOptionsBits; typedef enum { @@ -454,6 +455,7 @@ typedef enum { GNSS_AIDING_DATA_SV_NO_EXIST_BIT = (1<<8), // SV does not exist GNSS_AIDING_DATA_SV_IONOSPHERE_BIT = (1<<9), // ionosphere correction GNSS_AIDING_DATA_SV_TIME_BIT = (1<<10),// reset satellite time + GNSS_AIDING_DATA_SV_MB_DATA = (1 << 11),// delete multiband data } GnssAidingDataSvBits; typedef uint32_t GnssAidingDataSvTypeMask; @@ -794,6 +796,7 @@ typedef struct { float elevation; // elevation of SV (in degrees) float azimuth; // azimuth of SV (in degrees) GnssSvOptionsMask gnssSvOptionsMask; // Bitwise OR of GnssSvOptionsBits + float carrierFrequencyHz; // carrier frequency of the signal tracked } GnssSv; struct GnssConfigSetAssistanceServer { diff --git a/utils/gps_extended_c.h b/utils/gps_extended_c.h index f2b5b9f..481889f 100644 --- a/utils/gps_extended_c.h +++ b/utils/gps_extended_c.h @@ -57,6 +57,8 @@ extern "C" { /** LocGpsLocation has valid map index */ #define LOC_GPS_LOCATION_HAS_MAP_INDEX 0x0200 +#define GNSS_INVALID_JAMMER_IND 0x7FFFFFFF + /** Sizes for indoor fields */ #define GPS_LOCATION_MAP_URL_SIZE 400 #define GPS_LOCATION_MAP_INDEX_SIZE 16 diff --git a/utils/loc_gps.h b/utils/loc_gps.h index 95d0c21..505060c 100644 --- a/utils/loc_gps.h +++ b/utils/loc_gps.h @@ -151,6 +151,7 @@ typedef uint16_t LocGpsAidingData; #define LOC_GPS_DELETE_SVSTEER 0x0100 #define LOC_GPS_DELETE_SADATA 0x0200 #define LOC_GPS_DELETE_RTI 0x0400 +#define LOC_GPS_DELETE_MB_DATA 0x0800 #define LOC_GPS_DELETE_CELLDB_INFO 0x8000 #define LOC_GPS_DELETE_ALL 0xFFFF |