diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-09-10 07:26:36 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-09-10 07:26:36 +0000 |
commit | 405d3cf7454124ab538b976132928dca3205dd77 (patch) | |
tree | 7d4c1f8f7580426d6dc68852da406ff811658725 | |
parent | 0977482b01d5a746e16f0195d3183df8946ab7bc (diff) | |
parent | 9fc57e29923bc4c409bca770cd1b1f8e2309527d (diff) | |
download | gps-405d3cf7454124ab538b976132928dca3205dd77.tar.gz |
release-request-946c768b-83eb-4b7b-83e7-5737856fa8ec-for-git_oc-mr1-release-4326576 snap-temp-L80300000101054689
Change-Id: I08c0a26170122a03438d07f1647ee47128c4146c
-rw-r--r-- | msm8998/gnss/GnssAdapter.cpp | 55 |
1 files changed, 33 insertions, 22 deletions
diff --git a/msm8998/gnss/GnssAdapter.cpp b/msm8998/gnss/GnssAdapter.cpp index a697391..9809125 100644 --- a/msm8998/gnss/GnssAdapter.cpp +++ b/msm8998/gnss/GnssAdapter.cpp @@ -1939,39 +1939,51 @@ GnssAdapter::reportSvEvent(const GnssSvNotification& svNotify, void GnssAdapter::reportSv(GnssSvNotification& svNotify) { - if (mGnssSvIdUsedInPosAvail) { - int numSv = svNotify.count; - int16_t gnssSvId = 0; - uint64_t svUsedIdMask = 0; - for (int i=0; i < numSv; i++) { - gnssSvId = svNotify.gnssSvs[i].svId; - switch(svNotify.gnssSvs[i].type) { + int numSv = svNotify.count; + int16_t gnssSvId = 0; + uint64_t svUsedIdMask = 0; + for (int i=0; i < numSv; i++) { + svUsedIdMask = 0; + gnssSvId = svNotify.gnssSvs[i].svId; + switch (svNotify.gnssSvs[i].type) { case GNSS_SV_TYPE_GPS: - svUsedIdMask = mGnssSvIdUsedInPosition.gps_sv_used_ids_mask; + if (mGnssSvIdUsedInPosAvail) { + svUsedIdMask = mGnssSvIdUsedInPosition.gps_sv_used_ids_mask; + } break; case GNSS_SV_TYPE_GLONASS: - svUsedIdMask = mGnssSvIdUsedInPosition.glo_sv_used_ids_mask; + if (mGnssSvIdUsedInPosAvail) { + svUsedIdMask = mGnssSvIdUsedInPosition.glo_sv_used_ids_mask; + } break; case GNSS_SV_TYPE_BEIDOU: - svUsedIdMask = mGnssSvIdUsedInPosition.bds_sv_used_ids_mask; + if (mGnssSvIdUsedInPosAvail) { + svUsedIdMask = mGnssSvIdUsedInPosition.bds_sv_used_ids_mask; + } break; case GNSS_SV_TYPE_GALILEO: - svUsedIdMask = mGnssSvIdUsedInPosition.gal_sv_used_ids_mask; + if (mGnssSvIdUsedInPosAvail) { + svUsedIdMask = mGnssSvIdUsedInPosition.gal_sv_used_ids_mask; + } break; case GNSS_SV_TYPE_QZSS: - svUsedIdMask = mGnssSvIdUsedInPosition.qzss_sv_used_ids_mask; - break; - case GNSS_SV_TYPE_SBAS: + if (mGnssSvIdUsedInPosAvail) { + svUsedIdMask = mGnssSvIdUsedInPosition.qzss_sv_used_ids_mask; + } + // QZSS SV id's need to reported as it is to framework, since + // framework expects it as it is. See GnssStatus.java. + // SV id passed to here by LocApi is 1-based. + svNotify.gnssSvs[i].svId += (QZSS_SV_PRN_MIN - 1); break; default: + svUsedIdMask = 0; break; - } + } - // If SV ID was used in previous position fix, then set USED_IN_FIX - // flag, else clear the USED_IN_FIX flag. - if (svUsedIdMask & (1 << (gnssSvId - 1))) { - svNotify.gnssSvs[i].gnssSvOptionsMask |= GNSS_SV_OPTIONS_USED_IN_FIX_BIT; - } + // If SV ID was used in previous position fix, then set USED_IN_FIX + // flag, else clear the USED_IN_FIX flag. + if (svUsedIdMask & (1 << (gnssSvId - 1))) { + svNotify.gnssSvs[i].gnssSvOptionsMask |= GNSS_SV_OPTIONS_USED_IN_FIX_BIT; } } @@ -2840,5 +2852,4 @@ bool GnssAdapter::getDebugReport(GnssDebugReport& r) LOC_LOGV("getDebugReport - satellite=%lu", r.mSatelliteInfo.size()); return true; -} - +}
\ No newline at end of file |