summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-09-10 07:26:36 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-09-10 07:26:36 +0000
commit405d3cf7454124ab538b976132928dca3205dd77 (patch)
tree7d4c1f8f7580426d6dc68852da406ff811658725
parent0977482b01d5a746e16f0195d3183df8946ab7bc (diff)
parent9fc57e29923bc4c409bca770cd1b1f8e2309527d (diff)
downloadgps-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.cpp55
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