Merge "Fix failure in CTS testcase GnssStatusTest"

This commit is contained in:
Linux Build Service Account 2017-07-11 18:06:32 -07:00 committed by Gerrit - the friendly Code Review server
commit 558a20a01f

View file

@ -1978,38 +1978,51 @@ GnssAdapter::reportSvEvent(const GnssSvNotification& svNotify,
void void
GnssAdapter::reportSv(GnssSvNotification& svNotify) GnssAdapter::reportSv(GnssSvNotification& svNotify)
{ {
if (mGnssSvIdUsedInPosAvail) { int numSv = svNotify.count;
int numSv = svNotify.count; int16_t gnssSvId = 0;
int16_t gnssSvId = 0; uint64_t svUsedIdMask = 0;
uint64_t svUsedIdMask = 0; for (int i=0; i < numSv; i++) {
for (int i=0; i < numSv; i++) { svUsedIdMask = 0;
gnssSvId = svNotify.gnssSvs[i].svId; gnssSvId = svNotify.gnssSvs[i].svId;
switch (svNotify.gnssSvs[i].type) { switch (svNotify.gnssSvs[i].type) {
case GNSS_SV_TYPE_GPS: case GNSS_SV_TYPE_GPS:
if (mGnssSvIdUsedInPosAvail) {
svUsedIdMask = mGnssSvIdUsedInPosition.gps_sv_used_ids_mask; svUsedIdMask = mGnssSvIdUsedInPosition.gps_sv_used_ids_mask;
break; }
case GNSS_SV_TYPE_GLONASS: break;
case GNSS_SV_TYPE_GLONASS:
if (mGnssSvIdUsedInPosAvail) {
svUsedIdMask = mGnssSvIdUsedInPosition.glo_sv_used_ids_mask; svUsedIdMask = mGnssSvIdUsedInPosition.glo_sv_used_ids_mask;
break; }
case GNSS_SV_TYPE_BEIDOU: break;
case GNSS_SV_TYPE_BEIDOU:
if (mGnssSvIdUsedInPosAvail) {
svUsedIdMask = mGnssSvIdUsedInPosition.bds_sv_used_ids_mask; svUsedIdMask = mGnssSvIdUsedInPosition.bds_sv_used_ids_mask;
break; }
case GNSS_SV_TYPE_GALILEO: break;
case GNSS_SV_TYPE_GALILEO:
if (mGnssSvIdUsedInPosAvail) {
svUsedIdMask = mGnssSvIdUsedInPosition.gal_sv_used_ids_mask; svUsedIdMask = mGnssSvIdUsedInPosition.gal_sv_used_ids_mask;
break; }
case GNSS_SV_TYPE_QZSS: break;
case GNSS_SV_TYPE_QZSS:
if (mGnssSvIdUsedInPosAvail) {
svUsedIdMask = mGnssSvIdUsedInPosition.qzss_sv_used_ids_mask; svUsedIdMask = mGnssSvIdUsedInPosition.qzss_sv_used_ids_mask;
break; }
default: // QZSS SV id's need to reported as it is to framework, since
svUsedIdMask = 0; // framework expects it as it is. See GnssStatus.java.
break; // 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 // If SV ID was used in previous position fix, then set USED_IN_FIX
// flag, else clear the USED_IN_FIX flag. // flag, else clear the USED_IN_FIX flag.
if (svUsedIdMask & (1 << (gnssSvId - 1))) { if (svUsedIdMask & (1 << (gnssSvId - 1))) {
svNotify.gnssSvs[i].gnssSvOptionsMask |= GNSS_SV_OPTIONS_USED_IN_FIX_BIT; svNotify.gnssSvs[i].gnssSvOptionsMask |= GNSS_SV_OPTIONS_USED_IN_FIX_BIT;
}
} }
} }