summaryrefslogtreecommitdiff
path: root/gnss
diff options
context:
space:
mode:
authorhaohuang <haohuang@codeaurora.org>2019-06-18 18:10:43 +0800
committerhaohuang <haohuang@codeaurora.org>2019-06-18 18:22:50 +0800
commitaadad658408d14d22533991cebfff2a278c94849 (patch)
tree03e800559ccf1e2a230717617030bd116085ffd7 /gnss
parent16c0367c5b3e17d76d9a68c8057d24c50252bf84 (diff)
downloadgps-aadad658408d14d22533991cebfff2a278c94849.tar.gz
Fix SV in use mask isn't correct for multiband SVs
Fix the issue that SV in use mask isn't set correct in reportSv function in GnssAdapter.cpp. Change-Id: Ie90fc4b938875817b105745cf531ee8dc31e74bc CRs-Fixed: 2473868
Diffstat (limited to 'gnss')
-rw-r--r--gnss/GnssAdapter.cpp17
-rw-r--r--gnss/GnssAdapter.h1
2 files changed, 7 insertions, 11 deletions
diff --git a/gnss/GnssAdapter.cpp b/gnss/GnssAdapter.cpp
index 7ef46e6..d165148 100644
--- a/gnss/GnssAdapter.cpp
+++ b/gnss/GnssAdapter.cpp
@@ -97,8 +97,7 @@ GnssAdapter::GnssAdapter() :
mPowerStateCb(nullptr),
mIsE911Session(NULL),
mGnssMbSvIdUsedInPosition{},
- mGnssMbSvIdUsedInPosAvail(false),
- mGnssSignalType()
+ mGnssMbSvIdUsedInPosAvail(false)
{
LOC_LOGD("%s]: Constructor %p", __func__, this);
mLocPositionMode.mode = LOC_POSITION_MODE_INVALID;
@@ -3196,9 +3195,6 @@ GnssAdapter::reportPosition(const UlpLocation& ulpLocation,
if (locationExtended.flags & GPS_LOCATION_EXTENDED_HAS_MULTIBAND) {
mGnssMbSvIdUsedInPosAvail = true;
mGnssMbSvIdUsedInPosition = locationExtended.gnss_mb_sv_used_ids;
- for (int i = 0; i < GNSS_SV_MAX; i++) {
- mGnssSignalType[i] = locationExtended.measUsageInfo[i].gnssSignalType;
- }
}
}
@@ -3267,11 +3263,12 @@ GnssAdapter::reportSv(GnssSvNotification& svNotify)
for (int i=0; i < numSv; i++) {
svUsedIdMask = 0;
gnssSvId = svNotify.gnssSvs[i].svId;
+ GnssSignalTypeMask signalTypeMask = svNotify.gnssSvs[i].gnssSignalTypeMask;
switch (svNotify.gnssSvs[i].type) {
case GNSS_SV_TYPE_GPS:
if (mGnssSvIdUsedInPosAvail) {
if (mGnssMbSvIdUsedInPosAvail) {
- switch (mGnssSignalType[i]) {
+ switch (signalTypeMask) {
case GNSS_SIGNAL_GPS_L1CA:
svUsedIdMask = mGnssMbSvIdUsedInPosition.gps_l1ca_sv_used_ids_mask;
break;
@@ -3293,7 +3290,7 @@ GnssAdapter::reportSv(GnssSvNotification& svNotify)
case GNSS_SV_TYPE_GLONASS:
if (mGnssSvIdUsedInPosAvail) {
if (mGnssMbSvIdUsedInPosAvail) {
- switch (mGnssSignalType[i]) {
+ switch (signalTypeMask) {
case GNSS_SIGNAL_GLONASS_G1:
svUsedIdMask = mGnssMbSvIdUsedInPosition.glo_g1_sv_used_ids_mask;
break;
@@ -3309,7 +3306,7 @@ GnssAdapter::reportSv(GnssSvNotification& svNotify)
case GNSS_SV_TYPE_BEIDOU:
if (mGnssSvIdUsedInPosAvail) {
if (mGnssMbSvIdUsedInPosAvail) {
- switch (mGnssSignalType[i]) {
+ switch (signalTypeMask) {
case GNSS_SIGNAL_BEIDOU_B1I:
svUsedIdMask = mGnssMbSvIdUsedInPosition.bds_b1i_sv_used_ids_mask;
break;
@@ -3334,7 +3331,7 @@ GnssAdapter::reportSv(GnssSvNotification& svNotify)
case GNSS_SV_TYPE_GALILEO:
if (mGnssSvIdUsedInPosAvail) {
if (mGnssMbSvIdUsedInPosAvail) {
- switch (mGnssSignalType[i]) {
+ switch (signalTypeMask) {
case GNSS_SIGNAL_GALILEO_E1:
svUsedIdMask = mGnssMbSvIdUsedInPosition.gal_e1_sv_used_ids_mask;
break;
@@ -3353,7 +3350,7 @@ GnssAdapter::reportSv(GnssSvNotification& svNotify)
case GNSS_SV_TYPE_QZSS:
if (mGnssSvIdUsedInPosAvail) {
if (mGnssMbSvIdUsedInPosAvail) {
- switch (mGnssSignalType[i]) {
+ switch (signalTypeMask) {
case GNSS_SIGNAL_QZSS_L1CA:
svUsedIdMask = mGnssMbSvIdUsedInPosition.qzss_l1ca_sv_used_ids_mask;
break;
diff --git a/gnss/GnssAdapter.h b/gnss/GnssAdapter.h
index 1e6d1b8..9a727a2 100644
--- a/gnss/GnssAdapter.h
+++ b/gnss/GnssAdapter.h
@@ -147,7 +147,6 @@ class GnssAdapter : public LocAdapterBase {
bool mGnssSvIdUsedInPosAvail;
GnssSvMbUsedInPosition mGnssMbSvIdUsedInPosition;
bool mGnssMbSvIdUsedInPosAvail;
- GnssSignalTypeMask mGnssSignalType[GNSS_SV_MAX];
/* ==== CONTROL ======================================================================== */
LocationControlCallbacks mControlCallbacks;